summaryrefslogtreecommitdiff
path: root/lib/Target/ARM/ARMConstantIslandPass.cpp
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2011-12-06 21:55:35 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2011-12-06 21:55:35 +0000
commit305e5fe797cbba32d8091d687d47e98c8f3ee1f4 (patch)
treef8f1465b9c3304ebd27cd58c36dc1696dfaf9582 /lib/Target/ARM/ARMConstantIslandPass.cpp
parent581ac2723c5cb5182114092591eb5e21ceea2e77 (diff)
downloadllvm-305e5fe797cbba32d8091d687d47e98c8f3ee1f4.tar.gz
llvm-305e5fe797cbba32d8091d687d47e98c8f3ee1f4.tar.bz2
llvm-305e5fe797cbba32d8091d687d47e98c8f3ee1f4.tar.xz
Remove alignment from deserted constant islands.
ARMConstantIslandPass may sometimes leave empty constant islands behind (it really shouldn't). Remove the alignment from the empty islands so the size calculations are still correct. This should fix the many Thumb1 assembler errors in the nightly test suite. The reduced test case for this problem is way too big. That is to be expected for ARMConstantIslandPass bugs. <rdar://problem/10534709> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145970 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMConstantIslandPass.cpp')
-rw-r--r--lib/Target/ARM/ARMConstantIslandPass.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/Target/ARM/ARMConstantIslandPass.cpp b/lib/Target/ARM/ARMConstantIslandPass.cpp
index 017e908206..c8b2fc11be 100644
--- a/lib/Target/ARM/ARMConstantIslandPass.cpp
+++ b/lib/Target/ARM/ARMConstantIslandPass.cpp
@@ -1355,6 +1355,9 @@ void ARMConstantIslands::RemoveDeadCPEMI(MachineInstr *CPEMI) {
Size += BBSizes[CPEBB->getNumber()];
BBSizes[CPEBB->getNumber()] = 0;
}
+
+ // This block no longer needs to be aligned. <rdar://problem/10534709>.
+ CPEBB->setAlignment(0);
}
AdjustBBOffsetsAfter(CPEBB, -Size);
// An island has only one predecessor BB and one successor BB. Check if