diff options
author | Evan Cheng <evan.cheng@apple.com> | 2011-01-17 08:03:18 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2011-01-17 08:03:18 +0000 |
commit | dfce83c8f5326f23df0897b35c67c25f6763012a (patch) | |
tree | 0ef4d0dcbaea41ee611e975665285f2e22ea9982 /llvm/lib/Target/ARM/ARMConstantIslandPass.cpp | |
parent | 67431d79434516483c852b70bfb87432f5db00b1 (diff) | |
download | bcm5719-llvm-dfce83c8f5326f23df0897b35c67c25f6763012a.tar.gz bcm5719-llvm-dfce83c8f5326f23df0897b35c67c25f6763012a.zip |
Materialize GA addresses with movw + movt pairs for Darwin in PIC mode. e.g.
movw r0, :lower16:(L_foo$non_lazy_ptr-(LPC0_0+4))
movt r0, :upper16:(L_foo$non_lazy_ptr-(LPC0_0+4))
LPC0_0:
add r0, pc, r0
It's not yet enabled by default as some tests are failing. I suspect bugs in
down stream tools.
llvm-svn: 123619
Diffstat (limited to 'llvm/lib/Target/ARM/ARMConstantIslandPass.cpp')
-rw-r--r-- | llvm/lib/Target/ARM/ARMConstantIslandPass.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/Target/ARM/ARMConstantIslandPass.cpp b/llvm/lib/Target/ARM/ARMConstantIslandPass.cpp index 4915bae1cde..84499b118eb 100644 --- a/llvm/lib/Target/ARM/ARMConstantIslandPass.cpp +++ b/llvm/lib/Target/ARM/ARMConstantIslandPass.cpp @@ -316,7 +316,7 @@ bool ARMConstantIslands::runOnMachineFunction(MachineFunction &MF) { } /// The next UID to take is the first unused one. - AFI->initConstPoolEntryUId(CPEMIs.size()); + AFI->initPICLabelUId(CPEMIs.size()); // Do the initial scan of the function, building up information about the // sizes of each block, the location of all the water, and finding all of the @@ -1245,7 +1245,7 @@ bool ARMConstantIslands::HandleConstantPoolUser(MachineFunction &MF, // No existing clone of this CPE is within range. // We will be generating a new clone. Get a UID for it. - unsigned ID = AFI->createConstPoolEntryUId(); + unsigned ID = AFI->createPICLabelUId(); // Look for water where we can place this CPE. MachineBasicBlock *NewIsland = MF.CreateMachineBasicBlock(); |