llvm/lib/Target
Nate Begeman d4c8bea47f Enable optimization suggested by Chris Lattner to not emit reloc stubs for
static global variables whose addresses are taken.  This allows us to
convert the following code for taking the address of a static function foo

        addis r2, r30, ha16(Ll1__2E_foo_2$non_lazy_ptr-"L00001$pb")
        lwz r3, lo16(Ll1__2E_foo_2$non_lazy_ptr-"L00001$pb")(r2)

which also includes linker stub code emitted at the end of the .s file not
shown here, and replace it with this:

        addis r2, r30, ha16(l1__2E_foo_2-"L00001$pb")
        la r3, lo16(l1__2E_foo_2-"L00001$pb")(r2)

which in addition to not needing linker help, also has no load instruction.
For those not up on PowerPC mnemonics, la is shorthand for add immediate.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18239 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-25 07:09:01 +00:00
..
CBackend Hack around stupidity in GCC, fixing Burg with the CBE and 2004-11-13 22:21:56 +00:00
PowerPC Enable optimization suggested by Chris Lattner to not emit reloc stubs for 2004-11-25 07:09:01 +00:00
Skeleton ignore generated files 2004-11-21 00:01:54 +00:00
Sparc Update list of failing benchmarks. 2004-11-24 04:07:42 +00:00
SparcV8 Update list of failing benchmarks. 2004-11-24 04:07:42 +00:00
SparcV9 Forced branches to be first to be scheduled. 2004-11-24 01:49:10 +00:00
X86 Do not push two return addresses on the stack when we call external functions who have their addresses taken. This fixes test-call.ll 2004-11-22 22:25:30 +00:00
Makefile Fix file comment header 2004-11-19 22:09:21 +00:00
MRegisterInfo.cpp Move destructor out of line to avoid vtable emission in every file that includes the header. Thanks to sabre. 2004-10-27 06:00:53 +00:00
Target.td Add isLittleEndianEncoding to InstrInfo class, defaults to `off' 2004-10-14 05:53:40 +00:00
TargetData.cpp Fix this function to not say that longs have 8-byte alignment on X86/PPC. 2004-11-02 22:18:18 +00:00
TargetFrameInfo.cpp Remove dead methods 2004-08-12 18:37:15 +00:00
TargetInstrInfo.cpp ConstantTypeMustBeLoaded has been incorporated into SparcV9PreSelection, its 2004-07-27 21:43:38 +00:00
TargetMachine.cpp Changes For Bug 352 2004-09-01 22:55:40 +00:00
TargetMachineRegistry.cpp Implement TargetRegistrationListener 2004-07-11 06:03:21 +00:00
TargetSchedInfo.cpp Remove dead assert 2004-10-25 19:04:01 +00:00