[X86TTI] Make constant base pointers for getElementPtr opaque.

If getElementPtr uses a constant as base pointer, then make the constant opaque.
This prevents constant folding it with the offset. The offset can usually be
encoded in the load/store instruction itself and the base address doesn't have
to be rematerialized several times.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204739 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Juergen Ributzka 2014-03-25 18:01:25 +00:00
parent e987eb12b6
commit feaa46379a

View File

@ -798,8 +798,9 @@ unsigned X86TTI::getIntImmCost(unsigned Opcode, unsigned Idx, const APInt &Imm,
switch (Opcode) {
default: return TCC_Free;
case Instruction::GetElementPtr:
if (Idx != 0)
return TCC_Free;
if (Idx == 0)
return 2 * TCC_Basic;
return TCC_Free;
case Instruction::Store:
ImmIdx = 0;
break;