Skip to content

Enable GCM and make opt_if_loop_last_continue() more aggressive

Timothy Arceri requested to merge tarceri/mesa:continue_opt_and_gcm into master

Without GCM the final patch causes a bunch of spilling, mainly in Deus EX.

A large amount of the cycle hurt in shader-db from GCM appears to be due to calling discard earlier in fragment shaders.

Shader-db results (SKL):

total instructions in shared programs: 15422340 -> 15015725 (-2.64%)
instructions in affected programs: 2744968 -> 2338353 (-14.81%)
helped: 4402
HURT: 465

total cycles in shared programs: 358373791 -> 243554152 (-32.04%)
cycles in affected programs: 213519287 -> 98699648 (-53.77%)
helped: 3930
HURT: 1034

total loops in shared programs: 4366 -> 4362 (-0.09%)
loops in affected programs: 8 -> 4 (-50.00%)
helped: 4
HURT: 0

total spills in shared programs: 23673 -> 16143 (-31.81%)
spills in affected programs: 18904 -> 11374 (-39.83%)
helped: 343
HURT: 65

total fills in shared programs: 32036 -> 29845 (-6.84%)
fills in affected programs: 18381 -> 16190 (-11.92%)
helped: 345
HURT: 65

LOST:   10
GAINED: 6

Shader-db results (SKL) - Dolphin Uber shader results removed:

total instructions in shared programs: 15239852 -> 14811490 (-2.81%)
instructions in affected programs: 2562485 -> 2134123 (-16.72%)
helped: 4387
HURT: 425

total cycles in shared programs: 291098452 -> 203050594 (-30.25%)
cycles in affected programs: 146243972 -> 58196114 (-60.21%)
helped: 3875
HURT: 1034

total loops in shared programs: 3666 -> 3662 (-0.11%)
loops in affected programs: 8 -> 4 (-50.00%)
helped: 4
HURT: 0

total spills in shared programs: 21099 -> 5755 (-72.72%)
spills in affected programs: 16330 -> 986 (-93.96%)
helped: 343
HURT: 10

total fills in shared programs: 28481 -> 15614 (-45.18%)
fills in affected programs: 14826 -> 1959 (-86.79%)
helped: 345
HURT: 10

LOST:   11
GAINED: 6

Shader-db results (SKL) - Dolphin Uber and Deus-Ex shader results removed:

total instructions in shared programs: 13596456 -> 13545174 (-0.38%)
instructions in affected programs: 1538081 -> 1486799 (-3.33%)
helped: 3736
HURT: 422
 
total cycles in shared programs: 154429067 -> 153949773 (-0.31%)
cycles in affected programs: 18702937 -> 18223643 (-2.56%)
helped: 3251
HURT: 985
 
total loops in shared programs: 2381 -> 2377 (-0.17%)
loops in affected programs: 8 -> 4 (-50.00%)
helped: 4
HURT: 0
 
total spills in shared programs: 3914 -> 4163 (6.36%)
spills in affected programs: 597 -> 846 (41.71%)
helped: 1
HURT: 10
 
total fills in shared programs: 13618 -> 13745 (0.93%)
fills in affected programs: 1421 -> 1548 (8.94%)
helped: 3
HURT: 8
 
LOST:   11
GAINED: 5
Edited by Timothy Arceri

Merge request reports