> Optimize PIC implementation. GOTOFF can be used when the symbol is > defined > and used in the same module.
Does this work for weak symbols? -Chris > > --- > Diffs of the changes: (+1 -1) > > ARMISelLowering.cpp | 2 +- > 1 files changed, 1 insertion(+), 1 deletion(-) > > > Index: llvm/lib/Target/ARM/ARMISelLowering.cpp > diff -u llvm/lib/Target/ARM/ARMISelLowering.cpp:1.50 llvm/lib/ > Target/ARM/ARMISelLowering.cpp:1.51 > --- llvm/lib/Target/ARM/ARMISelLowering.cpp:1.50 Thu May 3 > 19:26:58 2007 > +++ llvm/lib/Target/ARM/ARMISelLowering.cpp Mon May 14 13:46:23 2007 > @@ -792,7 +792,7 @@ > GlobalValue *GV = cast<GlobalAddressSDNode>(Op)->getGlobal(); > Reloc::Model RelocM = getTargetMachine().getRelocationModel(); > if (RelocM == Reloc::PIC_) { > - bool UseGOTOFF = GV->hasInternalLinkage(); > + bool UseGOTOFF = !GV->isDeclaration(); > ARMConstantPoolValue *CPV = > new ARMConstantPoolValue(GV, ARMCP::CPValue, UseGOTOFF ? > "GOTOFF":"GOT"); > SDOperand CPAddr = DAG.getTargetConstantPool(CPV, PtrVT, 2); > > > > _______________________________________________ > llvm-commits mailing list > llvm-commits@cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits