diff options
| author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-06-22 17:47:39 +0000 |
|---|---|---|
| committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-06-22 17:47:39 +0000 |
| commit | 0e5befe31536edbb89ccfc6f156c57b433adf84e (patch) | |
| tree | 04a347ddf4700657bf9871a5fe783e5b07374b92 /llvm | |
| parent | 4fe43f9b4a30b595a7688a4bab5370a550264a5f (diff) | |
| download | bcm5719-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.cpp | 7 |
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(); |

