pan/bi: Allow CSEing LEA_BUF_IMM
Cleans up the code gen a lot in varying shaders. Instruction count regression due to how we handle 64-bit on Valhall. (TODO: A better solution for that...) total instructions in shared programs: 2730186 -> 2736193 (0.22%) instructions in affected programs: 775825 -> 781832 (0.77%) helped: 2010 HURT: 4433 helped stats (abs) min: 1.0 max: 18.0 x̄: 2.16 x̃: 2 helped stats (rel) min: 0.16% max: 26.67% x̄: 3.75% x̃: 2.22% HURT stats (abs) min: 1.0 max: 10.0 x̄: 2.33 x̃: 2 HURT stats (rel) min: 0.20% max: 23.08% x̄: 4.79% x̃: 2.79% 95% mean confidence interval for instructions value: 0.87 1.00 95% mean confidence interval for instructions %-change: 1.98% 2.27% Instructions are HURT. total cycles in shared programs: 161178.77 -> 144303.77 (-10.47%) cycles in affected programs: 85720 -> 68845 (-19.69%) helped: 6910 HURT: 0 helped stats (abs) min: 1.0 max: 18.0 x̄: 2.44 x̃: 2 helped stats (rel) min: 1.05% max: 41.18% x̄: 19.72% x̃: 20.00% 95% mean confidence interval for cycles value: -2.48 -2.41 95% mean confidence interval for cycles %-change: -19.86% -19.58% Cycles are helped. total cvt in shared programs: 13655.45 -> 14013 (2.62%) cvt in affected programs: 2978.06 -> 3335.61 (12.01%) helped: 381 HURT: 5242 helped stats (abs) min: 0.015625 max: 0.0625 x̄: 0.02 x̃: 0 helped stats (rel) min: 0.37% max: 50.00% x̄: 7.61% x̃: 3.85% HURT stats (abs) min: 0.015625 max: 0.296875 x̄: 0.07 x̃: 0 HURT stats (rel) min: 0.00% max: 400.00% x̄: 28.51% x̃: 16.00% 95% mean confidence interval for cvt value: 0.06 0.06 95% mean confidence interval for cvt %-change: 25.13% 27.00% Cvt are HURT. total ls in shared programs: 147856 -> 130980 (-11.41%) ls in affected programs: 85725 -> 68849 (-19.69%) helped: 6911 HURT: 0 helped stats (abs) min: 1.0 max: 18.0 x̄: 2.44 x̃: 2 helped stats (rel) min: 1.05% max: 41.18% x̄: 19.72% x̃: 20.00% 95% mean confidence interval for ls value: -2.48 -2.41 95% mean confidence interval for ls %-change: -19.86% -19.58% Ls are helped. total quadwords in shared programs: 1483576 -> 1486872 (0.22%) quadwords in affected programs: 73816 -> 77112 (4.47%) helped: 286 HURT: 698 helped stats (abs) min: 8.0 max: 8.0 x̄: 8.00 x̃: 8 helped stats (rel) min: 2.38% max: 50.00% x̄: 16.83% x̃: 16.67% HURT stats (abs) min: 8.0 max: 8.0 x̄: 8.00 x̃: 8 HURT stats (rel) min: 2.78% max: 100.00% x̄: 37.38% x̃: 16.67% 95% mean confidence interval for quadwords value: 2.89 3.80 95% mean confidence interval for quadwords %-change: 19.02% 24.22% Quadwords are HURT. total threads in shared programs: 53186 -> 53189 (<.01%) threads in affected programs: 3 -> 6 (100.00%) helped: 3 HURT: 0 helped stats (abs) min: 1.0 max: 1.0 x̄: 1.00 x̃: 1 helped stats (rel) min: 100.00% max: 100.00% x̄: 100.00% x̃: 100.00% total fills in shared programs: 2172 -> 2163 (-0.41%) fills in affected programs: 11 -> 2 (-81.82%) helped: 1 HURT: 0 Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16710>
This commit is contained in:
parent
f2a6535901
commit
96d9093c19
|
@ -126,7 +126,10 @@ instr_can_cse(const bi_instr *I)
|
|||
break;
|
||||
}
|
||||
|
||||
if (bi_opcode_props[I->op].message)
|
||||
/* Be conservative about which message-passing instructions we CSE,
|
||||
* since most are not pure even within a thread.
|
||||
*/
|
||||
if (bi_opcode_props[I->op].message && I->op != BI_OPCODE_LEA_BUF_IMM)
|
||||
return false;
|
||||
|
||||
if (I->branch_target)
|
||||
|
|
Loading…
Reference in New Issue