summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBob Wilson <bob.wilson@apple.com>2010-07-01 22:26:26 +0000
committerBob Wilson <bob.wilson@apple.com>2010-07-01 22:26:26 +0000
commit8a99b730a9edea8d369d84c0c909b101373a8718 (patch)
tree64655c817a4217e1f47ba97f040004dd8203b428
parent4e8b5fb1eb7138482b61fda9188ef19bcc14918f (diff)
downloadbcm5719-llvm-8a99b730a9edea8d369d84c0c909b101373a8718.tar.gz
bcm5719-llvm-8a99b730a9edea8d369d84c0c909b101373a8718.zip
ARM function alignments were off by a power of two. svn 83242 changed
getFunctionAlignment and the corresponding use of that value in the ARM asm printer, but now we're using the standard asm printer. The result of this was that function alignments were dropped completely for Thumb functions. Radar 8143571. llvm-svn: 107435
-rw-r--r--llvm/lib/Target/ARM/ARMISelLowering.cpp2
-rw-r--r--llvm/test/CodeGen/Thumb/2010-07-01-FuncAlign.ll6
2 files changed, 7 insertions, 1 deletions
diff --git a/llvm/lib/Target/ARM/ARMISelLowering.cpp b/llvm/lib/Target/ARM/ARMISelLowering.cpp
index 5f07eee0d5d..d8b08d8e2ea 100644
--- a/llvm/lib/Target/ARM/ARMISelLowering.cpp
+++ b/llvm/lib/Target/ARM/ARMISelLowering.cpp
@@ -647,7 +647,7 @@ TargetRegisterClass *ARMTargetLowering::getRegClassFor(EVT VT) const {
/// getFunctionAlignment - Return the Log2 alignment of this function.
unsigned ARMTargetLowering::getFunctionAlignment(const Function *F) const {
- return getTargetMachine().getSubtarget<ARMSubtarget>().isThumb() ? 0 : 1;
+ return getTargetMachine().getSubtarget<ARMSubtarget>().isThumb() ? 1 : 2;
}
Sched::Preference ARMTargetLowering::getSchedulingPreference(SDNode *N) const {
diff --git a/llvm/test/CodeGen/Thumb/2010-07-01-FuncAlign.ll b/llvm/test/CodeGen/Thumb/2010-07-01-FuncAlign.ll
new file mode 100644
index 00000000000..8e09441feba
--- /dev/null
+++ b/llvm/test/CodeGen/Thumb/2010-07-01-FuncAlign.ll
@@ -0,0 +1,6 @@
+; RUN: llc < %s -mtriple=thumb-apple-darwin | FileCheck %s
+; Radar 8143571: Function alignments were off by a power of two.
+; CHECK: .align 1
+define void @test() {
+ ret void
+}
OpenPOWER on IntegriCloud