diff options
author | Christudasan Devadasan <Christudasan.Devadasan@amd.com> | 2020-03-27 03:46:51 -0400 |
---|---|---|
committer | Christudasan Devadasan <Christudasan.Devadasan@amd.com> | 2020-05-05 23:02:58 +0530 |
commit | 375cec4b6c85f463f891458867a84bed53eabd71 (patch) | |
tree | 4d3c734c8316fb04d946745df5db98f5c128d8fb /llvm/lib/Support/Path.cpp | |
parent | 6fb7e9a195b3a43bedfd1c7eebfe24bd5ae0d9fe (diff) | |
download | llvm-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