diff options
| author | Bob Wilson <bob.wilson@apple.com> | 2010-07-01 22:26:26 +0000 |
|---|---|---|
| committer | Bob Wilson <bob.wilson@apple.com> | 2010-07-01 22:26:26 +0000 |
| commit | 8a99b730a9edea8d369d84c0c909b101373a8718 (patch) | |
| tree | 64655c817a4217e1f47ba97f040004dd8203b428 | |
| parent | 4e8b5fb1eb7138482b61fda9188ef19bcc14918f (diff) | |
| download | bcm5719-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.cpp | 2 | ||||
| -rw-r--r-- | llvm/test/CodeGen/Thumb/2010-07-01-FuncAlign.ll | 6 |
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 +} |

