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: <!12033>
- src/freedreno/ci/deqp-freedreno-a630-fails.txt 0 additions, 221 deletionssrc/freedreno/ci/deqp-freedreno-a630-fails.txt
- src/freedreno/ci/deqp-freedreno-a630-skips.txt 5 additions, 0 deletionssrc/freedreno/ci/deqp-freedreno-a630-skips.txt
- src/freedreno/ir3/disasm-a3xx.c 3 additions, 0 deletionssrc/freedreno/ir3/disasm-a3xx.c
- src/freedreno/ir3/instr-a3xx.h 3 additions, 0 deletionssrc/freedreno/ir3/instr-a3xx.h
- src/freedreno/ir3/ir3.h 14 additions, 0 deletionssrc/freedreno/ir3/ir3.h
- src/freedreno/ir3/ir3_compiler.c 1 addition, 0 deletionssrc/freedreno/ir3/ir3_compiler.c
- src/freedreno/ir3/ir3_compiler.h 1 addition, 0 deletionssrc/freedreno/ir3/ir3_compiler.h
- src/freedreno/ir3/ir3_lower_spill.c 163 additions, 0 deletionssrc/freedreno/ir3/ir3_lower_spill.c
- src/freedreno/ir3/ir3_merge_regs.c 18 additions, 2 deletionssrc/freedreno/ir3/ir3_merge_regs.c
- src/freedreno/ir3/ir3_ra.c 184 additions, 13 deletionssrc/freedreno/ir3/ir3_ra.c
- src/freedreno/ir3/ir3_ra.h 10 additions, 0 deletionssrc/freedreno/ir3/ir3_ra.h
- src/freedreno/ir3/ir3_spill.c 1725 additions, 82 deletionssrc/freedreno/ir3/ir3_spill.c
- src/freedreno/ir3/ir3_validate.c 2 additions, 1 deletionsrc/freedreno/ir3/ir3_validate.c
- src/freedreno/ir3/meson.build 1 addition, 0 deletionssrc/freedreno/ir3/meson.build
- src/gallium/drivers/freedreno/ci/piglit-freedreno-a630-fails.txt 0 additions, 5 deletions...lium/drivers/freedreno/ci/piglit-freedreno-a630-fails.txt