[llvm] r204739 - [X86TTI] Make constant base pointers for getElementPtr opaque.

Eric Christopher echristo at gmail.com
Mon Mar 31 16:13:20 PDT 2014


Testcase? Comment? Anything?

-eric

On Tue, Mar 25, 2014 at 11:01 AM, Juergen Ributzka <juergen at apple.com> wrote:
> Author: ributzka
> Date: Tue Mar 25 13:01:25 2014
> New Revision: 204739
>
> URL: http://llvm.org/viewvc/llvm-project?rev=204739&view=rev
> Log:
> [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.
>
> Modified:
>     llvm/trunk/lib/Target/X86/X86TargetTransformInfo.cpp
>
> Modified: llvm/trunk/lib/Target/X86/X86TargetTransformInfo.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86TargetTransformInfo.cpp?rev=204739&r1=204738&r2=204739&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/X86/X86TargetTransformInfo.cpp (original)
> +++ llvm/trunk/lib/Target/X86/X86TargetTransformInfo.cpp Tue Mar 25 13:01:25 2014
> @@ -798,8 +798,9 @@ unsigned X86TTI::getIntImmCost(unsigned
>    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;
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits



More information about the llvm-commits mailing list