diff options
author | Jason Ekstrand <[email protected]> | 2015-09-08 16:45:57 -0700 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2015-09-17 08:21:31 -0700 |
commit | fc11dbe13f3470ff2a4cb91c6b063db2456664da (patch) | |
tree | 71405e7f421887251bb5eb476fe97307a9124fc9 /src | |
parent | a6c467d6c574baf6636814b51f1dafe2557e22f6 (diff) |
i965/vec4: Use nir_move_vec_src_uses_to_dest
The idea here is not that it gives register coalescing a little bit of a
helping hand. It doesn't actually fix the coalescing problems, but it
seems to help a good bit.
Shader-db results for vec4 programs on Haswell:
total instructions in shared programs: 1746280 -> 1683959 (-3.57%)
instructions in affected programs: 1259166 -> 1196845 (-4.95%)
helped: 11363
HURT: 148
v2 (Jason Ekstrand):
- Run nir_move_vec_src_uses_to_dest after going out of SSA
- New shader-db numbers
Reviewed-by: Eduardo Lima Mitev <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_nir.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_nir.c b/src/mesa/drivers/dri/i965/brw_nir.c index f326b239d74..9a0bbb06847 100644 --- a/src/mesa/drivers/dri/i965/brw_nir.c +++ b/src/mesa/drivers/dri/i965/brw_nir.c @@ -187,6 +187,9 @@ brw_create_nir(struct brw_context *brw, nir_validate_shader(nir); if (!is_scalar) { + nir_move_vec_src_uses_to_dest(nir); + nir_validate_shader(nir); + nir_lower_vec_to_movs(nir); nir_validate_shader(nir); } |