summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2016-06-22 17:47:39 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2016-06-22 17:47:39 +0000
commit0e5befe31536edbb89ccfc6f156c57b433adf84e (patch)
tree04a347ddf4700657bf9871a5fe783e5b07374b92 /llvm
parent4fe43f9b4a30b595a7688a4bab5370a550264a5f (diff)
downloadbcm5719-llvm-0e5befe31536edbb89ccfc6f156c57b433adf84e.tar.gz
bcm5719-llvm-0e5befe31536edbb89ccfc6f156c57b433adf84e.zip
AMDGPU: Make FrameLowering stack alignment 16
We don't need it to be that high. The natural alignment for a single workitem's stack is 16. llvm-svn: 273448
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
index 63b19acea20..70603374bc9 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
@@ -107,7 +107,8 @@ AMDGPUSubtarget::AMDGPUSubtarget(const Triple &TT, StringRef GPU, StringRef FS,
initializeSubtargetDependencies(TT, GPU, FS);
- const unsigned MaxStackAlign = 64 * 16; // Maximum stack alignment (long16)
+ // Scratch is allocated in 256 dword per wave blocks.
+ const unsigned StackAlign = 4 * 256 / getWavefrontSize();
if (getGeneration() <= AMDGPUSubtarget::NORTHERN_ISLANDS) {
InstrInfo.reset(new R600InstrInfo(*this));
@@ -116,14 +117,14 @@ AMDGPUSubtarget::AMDGPUSubtarget(const Triple &TT, StringRef GPU, StringRef FS,
// FIXME: Should have R600 specific FrameLowering
FrameLowering.reset(new AMDGPUFrameLowering(
TargetFrameLowering::StackGrowsUp,
- MaxStackAlign,
+ StackAlign,
0));
} else {
InstrInfo.reset(new SIInstrInfo(*this));
TLInfo.reset(new SITargetLowering(TM, *this));
FrameLowering.reset(new SIFrameLowering(
TargetFrameLowering::StackGrowsUp,
- MaxStackAlign,
+ StackAlign,
0));
#ifndef LLVM_BUILD_GLOBAL_ISEL
GISelAccessor *GISel = new GISelAccessor();
OpenPOWER on IntegriCloud