[llvm-commits] [llvm] r164138 - in /llvm/trunk: lib/Target/PowerPC/PPCISelLowering.cpp test/CodeGen/PowerPC/ppc64-calls.ll

Eli Friedman eli.friedman at gmail.com
Tue Sep 18 11:17:33 PDT 2012


On Tue, Sep 18, 2012 at 9:47 AM, Roman Divacky <rdivacky at freebsd.org> wrote:
> Author: rdivacky
> Date: Tue Sep 18 11:47:58 2012
> New Revision: 164138
>
> URL: http://llvm.org/viewvc/llvm-project?rev=164138&view=rev
> Log:
> Optimize local func calls to not emit nop for TOC restoration.
>
> Patch by Adhemerval Zanella.
>
> Added:
>     llvm/trunk/test/CodeGen/PowerPC/ppc64-calls.ll
> Modified:
>     llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp
>
> Modified: llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp?rev=164138&r1=164137&r2=164138&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp (original)
> +++ llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp Tue Sep 18 11:47:58 2012
> @@ -2808,6 +2808,14 @@
>    return CallOpc;
>  }
>
> +static
> +bool isLocalCall(const SDValue &Callee)
> +{
> +  if (GlobalAddressSDNode *G = dyn_cast<GlobalAddressSDNode>(Callee))
> +    return !G->getGlobal()->isDeclaration();
> +  return false;
> +}

I think you also need to check "G->getGlobal()->isWeakForLinker()";
just because we have a definition doesn't mean it'll get used.

-Eli



More information about the llvm-commits mailing list