[Mesa-dev] [PATCH 0/2] Prevent regression with changes to nir_opt_if

Ian Romanick idr at freedesktop.org
Fri Jun 1 00:21:24 UTC 2018


This series fixes the most agregious regressions caused by the
nir_opt_if changes, and it's somewhat helpful in its own right.

The i965 driver already has a pass in the backend that cleans up
if-then-else sequence that have one block (the then-block or the
else-block) that is empty.  As a result, there's not much benefit.  I
looked at several of the shaders that were changed.  It appears that all
changes are due to changes in register allocation and scheduling.  A lot
of shaders were helped or hurt by one or two instructions due to using
fewere or more move instructions to handle phi nodes.  On some platforms
that saved a spill and a fill, and that change accounted for most-helped
shaders.

Skylake
total instructions in shared programs: 14369555 -> 14369377 (<.01%)
instructions in affected programs: 132939 -> 132761 (-0.13%)
helped: 175
HURT: 243
helped stats (abs) min: 1 max: 27 x̄: 2.43 x̃: 2
helped stats (rel) min: 0.31% max: 6.52% x̄: 1.69% x̃: 1.05%
HURT stats (abs)   min: 1 max: 2 x̄: 1.02 x̃: 1
HURT stats (rel)   min: 0.08% max: 1.39% x̄: 0.44% x̃: 0.25%
95% mean confidence interval for instructions value: -0.65 -0.20
95% mean confidence interval for instructions %-change: -0.59% -0.32%
Instructions are helped.

total cycles in shared programs: 532425743 -> 532398150 (<.01%)
cycles in affected programs: 3619466 -> 3591873 (-0.76%)
helped: 240
HURT: 265
helped stats (abs) min: 1 max: 2700 x̄: 128.51 x̃: 16
helped stats (rel) min: <.01% max: 24.11% x̄: 4.96% x̃: 1.11%
HURT stats (abs)   min: 1 max: 288 x̄: 12.26 x̃: 3
HURT stats (rel)   min: <.01% max: 22.74% x̄: 0.67% x̃: 0.37%
95% mean confidence interval for cycles value: -70.36 -38.92
95% mean confidence interval for cycles %-change: -2.50% -1.51%
Cycles are helped.

total spills in shared programs: 8114 -> 8111 (-0.04%)
spills in affected programs: 50 -> 47 (-6.00%)
helped: 1
HURT: 0

total fills in shared programs: 11082 -> 11077 (-0.05%)
fills in affected programs: 68 -> 63 (-7.35%)
helped: 1
HURT: 0


Broadwell
total instructions in shared programs: 14689170 -> 14689155 (<.01%)
instructions in affected programs: 118611 -> 118596 (-0.01%)
helped: 106
HURT: 243
helped stats (abs) min: 1 max: 9 x̄: 2.47 x̃: 2
helped stats (rel) min: 0.31% max: 6.52% x̄: 2.18% x̃: 2.33%
HURT stats (abs)   min: 1 max: 2 x̄: 1.02 x̃: 1
HURT stats (rel)   min: 0.08% max: 1.39% x̄: 0.43% x̃: 0.25%
95% mean confidence interval for instructions value: -0.24 0.16
95% mean confidence interval for instructions %-change: -0.51% -0.21%
Inconclusive result (value mean confidence interval includes 0).

total cycles in shared programs: 559122343 -> 559123022 (<.01%)
cycles in affected programs: 2993783 -> 2994462 (0.02%)
helped: 178
HURT: 273
helped stats (abs) min: 1 max: 2422 x̄: 46.89 x̃: 10
helped stats (rel) min: <.01% max: 13.69% x̄: 1.40% x̃: 0.71%
HURT stats (abs)   min: 1 max: 5414 x̄: 33.06 x̃: 4
HURT stats (rel)   min: <.01% max: 17.22% x̄: 0.54% x̃: 0.38%
95% mean confidence interval for cycles value: -25.51 28.53
95% mean confidence interval for cycles %-change: -0.43% -0.03%
Inconclusive result (value mean confidence interval includes 0).



More information about the mesa-dev mailing list