aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Support/Path.cpp
diff options
context:
space:
mode:
authorChristudasan Devadasan <Christudasan.Devadasan@amd.com>2020-03-27 03:46:51 -0400
committerChristudasan Devadasan <Christudasan.Devadasan@amd.com>2020-05-05 23:02:58 +0530
commit375cec4b6c85f463f891458867a84bed53eabd71 (patch)
tree4d3c734c8316fb04d946745df5db98f5c128d8fb /llvm/lib/Support/Path.cpp
parent6fb7e9a195b3a43bedfd1c7eebfe24bd5ae0d9fe (diff)
downloadllvm-375cec4b6c85f463f891458867a84bed53eabd71.zip
llvm-375cec4b6c85f463f891458867a84bed53eabd71.tar.gz
llvm-375cec4b6c85f463f891458867a84bed53eabd71.tar.bz2
[AMDGPU] Introduce more scratch registers in the ABI.
The AMDGPU target has a convention that defined all VGPRs (execept the initial 32 argument registers) as callee-saved. This convention is not efficient always, esp. when the callee requiring more registers, ended up emitting a large number of spills, even though its caller requires only a few. This patch revises the ABI by introducing more scratch registers that a callee can freely use. The 256 vgpr registers now become: 32 argument registers 112 scratch registers and 112 callee saved registers. The scratch registers and the CSRs are intermixed at regular intervals (a split boundary of 8) to obtain a better occupancy. Reviewers: arsenm, t-tye, rampitec, b-sumner, mjbedy, tpr Reviewed By: arsenm, t-tye Differential Revision: https://reviews.llvm.org/D76356
Diffstat (limited to 'llvm/lib/Support/Path.cpp')
0 files changed, 0 insertions, 0 deletions