summaryrefslogtreecommitdiff
path: root/lib/Target/R600/AMDGPUTargetMachine.cpp
diff options
context:
space:
mode:
authorTom Stellard <thomas.stellard@amd.com>2013-10-23 00:44:32 +0000
committerTom Stellard <thomas.stellard@amd.com>2013-10-23 00:44:32 +0000
commitf95b1621887e3409ceec2db47e1b44271d934735 (patch)
tree8b2655eb7bf40d51eedf9649d0a929e1fc2c6cb1 /lib/Target/R600/AMDGPUTargetMachine.cpp
parentd0716b064744598ba7df33b8b47de0375c450570 (diff)
downloadllvm-f95b1621887e3409ceec2db47e1b44271d934735.tar.gz
llvm-f95b1621887e3409ceec2db47e1b44271d934735.tar.bz2
llvm-f95b1621887e3409ceec2db47e1b44271d934735.tar.xz
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193215 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/R600/AMDGPUTargetMachine.cpp')
-rw-r--r--lib/Target/R600/AMDGPUTargetMachine.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/Target/R600/AMDGPUTargetMachine.cpp b/lib/Target/R600/AMDGPUTargetMachine.cpp
index 9722e7dddf..b19277d97b 100644
--- a/lib/Target/R600/AMDGPUTargetMachine.cpp
+++ b/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.