No idea. Lauro? Evan On May 3, 2007, at 5:33 PM, Chris Lattner wrote:
> > On May 3, 2007, at 5:27 PM, Evan Cheng wrote: > >> >> >> Changes in directory llvm/lib/Target/ARM: >> >> ARMISelLowering.cpp updated: 1.49 -> 1.50 >> --- >> Log message: >> >> On Mac OS X, GV requires an extra load only when relocation-model >> is non-static. > > Does ELF do something similar? If not, this should probably be > method on ARMSubTarget, like the X86 backend does. > > -Chris > >> --- >> Diffs of the changes: (+6 -5) >> >> ARMISelLowering.cpp | 11 ++++++----- >> 1 files changed, 6 insertions(+), 5 deletions(-) >> >> >> Index: llvm/lib/Target/ARM/ARMISelLowering.cpp >> diff -u llvm/lib/Target/ARM/ARMISelLowering.cpp:1.49 llvm/lib/ >> Target/ARM/ARMISelLowering.cpp:1.50 >> --- llvm/lib/Target/ARM/ARMISelLowering.cpp:1.49 Thu May 3 >> 15:28:35 2007 >> +++ llvm/lib/Target/ARM/ARMISelLowering.cpp Thu May 3 19:26:58 2007 >> @@ -812,10 +812,11 @@ >> } >> >> /// GVIsIndirectSymbol - true if the GV will be accessed via an >> indirect symbol >> -/// even in dynamic-no-pic mode. >> -static bool GVIsIndirectSymbol(GlobalValue *GV) { >> - return (GV->hasWeakLinkage() || GV->hasLinkOnceLinkage() || >> - (GV->isDeclaration() && !GV->hasNotBeenReadFromBytecode >> ())); >> +/// even in non-static mode. >> +static bool GVIsIndirectSymbol(GlobalValue *GV, Reloc::Model >> RelocM) { >> + return RelocM != Reloc::Static && >> + (GV->hasWeakLinkage() || GV->hasLinkOnceLinkage() || >> + (GV->isDeclaration() && !GV->hasNotBeenReadFromBytecode())); >> } >> >> SDOperand ARMTargetLowering::LowerGlobalAddressDarwin(SDOperand Op, >> @@ -823,7 +824,7 @@ >> MVT::ValueType PtrVT = getPointerTy(); >> GlobalValue *GV = cast<GlobalAddressSDNode>(Op)->getGlobal(); >> Reloc::Model RelocM = getTargetMachine().getRelocationModel(); >> - bool IsIndirect = GVIsIndirectSymbol(GV); >> + bool IsIndirect = GVIsIndirectSymbol(GV, RelocM); >> SDOperand CPAddr; >> if (RelocM == Reloc::Static) >> CPAddr = DAG.getTargetConstantPool(GV, 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 _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits