Mesa (main): ir3: Initial support for spilling non-shared registers
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Fri Aug 20 10:57:11 UTC 2021
Module: Mesa
Branch: main
Commit: 613eaac7b53bfbfcd6ef536412be6c9c63cdea4f
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=613eaac7b53bfbfcd6ef536412be6c9c63cdea4f
Author: Connor Abbott <cwabbott0 at gmail.com>
Date: Fri Jul 23 13:12:30 2021 +0200
ir3: Initial support for spilling non-shared registers
Support for spilling shared registers to normal registers is still TODO.
There are also several improvements to be made, like rematerialization.
Note, there is one behavior change to register pressure accounting: we
now include half registers in the current full pressure directly in
mergedregs mode, rather than adding the max half pressure to the max
full pressure afterwards, which might result in lower calculated max
pressure in some cases with half registers. This is needed for spilling,
since we need to make sure the total pressure including half registers
is below the maximum at each instruction. Because the entire pass is
rewritten, including the register pressure calculating parts, it didn't
seem worth it to separate out this change.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12033>
---
src/freedreno/ci/deqp-freedreno-a630-fails.txt | 221 ---
src/freedreno/ci/deqp-freedreno-a630-skips.txt | 5 +
src/freedreno/ir3/disasm-a3xx.c | 3 +
src/freedreno/ir3/instr-a3xx.h | 3 +
src/freedreno/ir3/ir3.h | 14 +
src/freedreno/ir3/ir3_compiler.c | 1 +
src/freedreno/ir3/ir3_compiler.h | 1 +
src/freedreno/ir3/ir3_lower_spill.c | 163 ++
src/freedreno/ir3/ir3_merge_regs.c | 20 +-
src/freedreno/ir3/ir3_ra.c | 197 ++-
src/freedreno/ir3/ir3_ra.h | 10 +
src/freedreno/ir3/ir3_spill.c | 1807 +++++++++++++++++++-
src/freedreno/ir3/ir3_validate.c | 3 +-
src/freedreno/ir3/meson.build | 1 +
.../freedreno/ci/piglit-freedreno-a630-fails.txt | 5 -
15 files changed, 2130 insertions(+), 324 deletions(-)
Diff: http://cgit.freedesktop.org/mesa/mesa/diff/?id=613eaac7b53bfbfcd6ef536412be6c9c63cdea4f
More information about the mesa-commit
mailing list