nir: allow nir_lower_phis_to_scalar() on more src types
authorTimothy Arceri <tarceri@itsqueeze.com>
Fri, 22 Feb 2019 05:59:13 +0000 (16:59 +1100)
committerTimothy Arceri <tarceri@itsqueeze.com>
Sat, 23 Feb 2019 00:11:51 +0000 (11:11 +1100)
commitf48527e51ac54d4f0ae0db3dbc1acd1c64eb70b4
tree0c63db1676da1f2a810970be6c0aa018895cea09
parent6053499f2eafde606b13a9663016e9be8e4089eb
nir: allow nir_lower_phis_to_scalar() on more src types

Rather than only lowering if all srcs are scalarizable we instead
check that at least one src is scalarizable.

We change undef type to return false otherwise it will cause
regressions when it is the only scalarizable src.

total instructions in shared programs: 13219105 -> 13024547 (-1.47%)
instructions in affected programs: 1153797 -> 959239 (-16.86%)
helped: 581
HURT: 74

total cycles in shared programs: 333968972 -> 324807922 (-2.74%)
cycles in affected programs: 129809402 -> 120648352 (-7.06%)
helped: 571
HURT: 131

total spills in shared programs: 57947 -> 29130 (-49.73%)
spills in affected programs: 53364 -> 24547 (-54.00%)
helped: 351
HURT: 0

total fills in shared programs: 51310 -> 25468 (-50.36%)
fills in affected programs: 44882 -> 19040 (-57.58%)
helped: 351
HURT: 0

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
src/compiler/nir/nir_lower_phis_to_scalar.c