From: Matt Arsenault Date: Wed, 22 Jun 2016 17:47:39 +0000 (+0000) Subject: AMDGPU: Make FrameLowering stack alignment 16 X-Git-Tag: android-x86-7.1-r4~31412 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=6ef04515db5d4ddb807b6c45c8bbba62b609998e;p=android-x86%2Fexternal-llvm.git 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273448 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/AMDGPU/AMDGPUSubtarget.cpp b/lib/Target/AMDGPU/AMDGPUSubtarget.cpp index 63b19acea20..70603374bc9 100644 --- a/lib/Target/AMDGPU/AMDGPUSubtarget.cpp +++ b/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();