aco: make exec non-temporary
Based on !8807 (merged)
As we had quite some issues to correctly calculate the register demand in presence of exec masks, this series makes all occasions of exec non-temporaries. This means that the current exec mask is always just a register while saved exec masks (the maintained stack for CF handling) are kept as variables. This corresponds to how the hardware actually works: While the current exec mask resides in a special register, all saved masks are kept in general SGPRs.
This patch mitigates most of the regressions from !8807 (merged)
Stats with Navi10 (incl !8807 (merged)):
PERCENTAGE DELTAS Shaders SGPRs VGPRs SpillSGPRs CodeSize Instrs Cycles VMEM SMEM SClause Copies Branches PreSGPRs
ls/assassins_creed_origins 2104 +0.11% . . -0.00% -0.00% -0.00% +0.05% +0.14% -0.01% +0.00% . -0.04%
ls/battlefront2 4568 . . . -0.00% -0.00% -0.00% +0.00% -0.03% +0.00% -0.01% . .
ls/britannia 465 . . . . . . +0.00% -0.01% . . . .
ls/control_msaa4x 752 . . . -0.00% -0.00% -0.00% . -0.05% . . . .
ls/control_no_msaa 752 . . . -0.00% -0.00% -0.00% . -0.05% . . . .
ls/dark_souls_1_remastered 4249 . . . -0.01% -0.01% -0.01% +0.02% +0.02% . -0.25% . .
ls/dark_souls_2_sotfs 6876 +0.16% -0.01% . -0.00% +0.00% +0.00% +0.03% -0.06% +0.02% -0.00% . .
ls/dark_souls_3 8912 +0.00% . . +0.00% +0.00% +0.00% -0.00% +0.01% -0.00% . . .
ls/death_stranding 1467 . . . -0.00% -0.00% -0.01% +0.00% +0.02% -0.00% -0.01% . .
ls/detroit_become_human 19959 . . -1.32% -0.00% +0.00% +0.00% . +0.01% +0.00% +0.02% +0.04% .
ls/deus_ex_md 8063 -0.00% . . -0.00% -0.00% -0.00% +0.00% -0.07% +0.05% . . .
ls/dirt4 4030 . . . -0.00% -0.00% -0.00% . -0.01% +0.00% -0.00% . .
ls/doom_2016 2963 . . . -0.00% -0.00% -0.00% -0.00% -0.10% +0.01% -0.04% . -0.01%
ls/doom_eternal 1211 . . . . . . . . . . . .
ls/dota2 1015 . . . . . . . . . . . .
ls/dow3 280 . . . . . . . +0.01% . . . .
ls/evilwithin_demo 740 +0.44% . . -0.00% -0.00% -0.00% . -0.01% . . . .
ls/f12017 5503 +0.05% . . -0.01% -0.01% -0.00% +0.06% -0.17% . -0.00% . .
ls/gtav 2987 . . . -0.00% -0.00% -0.00% -0.00% +0.01% +0.00% -0.01% . .
ls/hitman 2785 +0.42% . . -0.00% -0.00% -0.00% . -0.17% +0.00% . . .
PERCENTAGE DELTAS Shaders SGPRs VGPRs SpillSGPRs CodeSize Instrs Cycles VMEM SMEM SClause Copies Branches PreSGPRs
ls/madmax 948 . . . . . . . -0.00% . . . .
ls/nier 5492 +0.01% . . -0.00% -0.00% -0.00% -0.01% +0.15% +0.00% -0.01% . .
ls/parallel-rdp/small_subgroup 246 . . . . . . . . . . . .
ls/parallel-rdp/small_uber_subgroup 55 . . . +1.07% +0.81% +0.84% +0.03% +0.04% . +2.53% +0.04% .
ls/parallel-rdp/subgroup 327 . . . . . . . . . . . .
ls/parallel-rdp/uber_subgroup 55 . . . +0.08% +0.12% +0.12% +0.03% . . +0.25% . .
ls/rdr2 3888 +0.05% +0.00% -0.14% -0.00% +0.00% +0.00% +0.02% +0.00% . +0.00% +0.00% .
ls/redout 2509 +0.01% . . +0.00% +0.00% +0.00% . +0.02% . -0.00% . .
ls/rottr 8120 . . . -0.00% -0.00% -0.00% +0.00% +0.00% . -0.01% . .
ls/sottr_demo 5705 . . . +0.00% +0.00% +0.00% +0.76% -0.11% +0.00% -0.00% . -0.00%
ls/strange_brigade 1417 . . . . . . . +0.03% . . . .
ls/talos 794 . . . . . . . . . . . .
ls/thewitness 3150 . . . . . . . . . . . .
ls/threekingdoms 844 . . . . . . +0.00% +0.01% . . . .
ls/tomb_raider 16230 . -0.01% . +0.00% -0.00% -0.00% +0.03% -0.03% . -0.00% . .
ls/warhammer2 1803 . . . -0.00% -0.00% -0.00% . +0.02% . . . .
ls/wolfenstein2_fp16 1012 . . . . . . . -0.08% . . . .
ls/worldofwarships 5590 +0.02% . . +0.00% -0.00% -0.00% -0.00% -0.03% -0.03% . . .
ls/youngblood 843 . . . . . . +0.00% -0.05% . . . .
ls/youngblood_fp16 682 . . . . . . . -0.08% . . . .
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
All affected 5472 +0.43% -0.02% -1.20% +0.01% +0.01% +0.05% +1.11% -0.53% +0.02% +0.14% +0.09% -0.01%
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 139391 +0.02% -0.00% -1.01% +0.00% +0.00% +0.01% +0.04% -0.02% +0.00% +0.02% +0.02% -0.00%