diff options
author | Tom Stellard <thomas.stellard@amd.com> | 2013-10-23 00:44:32 +0000 |
---|---|---|
committer | Tom Stellard <thomas.stellard@amd.com> | 2013-10-23 00:44:32 +0000 |
commit | af7754324418aab9566cd6c97392d0b3f88df62b (patch) | |
tree | ea2e0faf72c5b41233c587e6e47d916bdbac9deb /llvm/lib/Target/R600/AMDGPUTargetMachine.cpp | |
parent | 8d7d4deafe1fbb2a26be821eaa0ae7cb8fae8a0b (diff) | |
download | llvm-af7754324418aab9566cd6c97392d0b3f88df62b.zip llvm-af7754324418aab9566cd6c97392d0b3f88df62b.tar.gz llvm-af7754324418aab9566cd6c97392d0b3f88df62b.tar.bz2 |
R600: Fix handling of vector kernel arguments
The SelectionDAGBuilder was promoting vector kernel arguments to legal
types, but this won't work for R600 and SI since kernel arguments are
stored in memory and can't be promoted. In order to handle vector
arguments correctly we need to look at the original types from the LLVM IR
function.
llvm-svn: 193215
Diffstat (limited to 'llvm/lib/Target/R600/AMDGPUTargetMachine.cpp')
-rw-r--r-- | llvm/lib/Target/R600/AMDGPUTargetMachine.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Target/R600/AMDGPUTargetMachine.cpp b/llvm/lib/Target/R600/AMDGPUTargetMachine.cpp index 9722e7d..b19277d 100644 --- a/llvm/lib/Target/R600/AMDGPUTargetMachine.cpp +++ b/llvm/lib/Target/R600/AMDGPUTargetMachine.cpp @@ -59,8 +59,9 @@ AMDGPUTargetMachine::AMDGPUTargetMachine(const Target &T, StringRef TT, LLVMTargetMachine(T, TT, CPU, FS, Options, RM, CM, OptLevel), Subtarget(TT, CPU, FS), Layout(Subtarget.getDataLayout()), - FrameLowering(TargetFrameLowering::StackGrowsUp, 16 // Stack Alignment - , 0), + FrameLowering(TargetFrameLowering::StackGrowsUp, + 64 * 16 // Maximum stack alignment (long16) + , 0), IntrinsicInfo(this), InstrItins(&Subtarget.getInstrItineraryData()) { // TLInfo uses InstrInfo so it must be initialized after. |