diff options
author | Kenneth Graunke <[email protected]> | 2020-04-18 01:20:42 -0700 |
---|---|---|
committer | Marge Bot <[email protected]> | 2020-04-21 21:42:21 +0000 |
commit | b7c47c4f7cfd0513ee2b98179cc22f402e5b3817 (patch) | |
tree | fc201ae36ab246441040e12862501ae82d5002f9 /src/intel/compiler/brw_vec4.h | |
parent | fdd0ce12ac88e433c7712acd5226fa07dc870057 (diff) |
intel/compiler: Drop nir_lower_to_source_mods() and related handling.
I think we're unanimous in wanting to drop nir_lower_to_source_mods.
It's a bit of complexity to handle in the backend, but perhaps more
importantly, would be even more complexity to handle in nir_search.
And, it turns out that since we made other compiler improvements in the
last few years, they no longer appear to buy us anything of value.
Summarizing the results from shader-db from this patch:
- Icelake (scalar mode)
Instruction counts:
- 411 helped, 598 hurt (out of 139,470 shaders)
- 99.2% of shaders remain unaffected. The average increase in
instruction count in hurt programs is 1.78 instructions.
- total instructions in shared programs: 17214951 -> 17215206 (<.01%)
- instructions in affected programs: 1143879 -> 1144134 (0.02%)
Cycles:
- 1042 helped, 1357 hurt
- total cycles in shared programs: 365613294 -> 365882263 (0.07%)
- cycles in affected programs: 138155497 -> 138424466 (0.19%)
- Haswell (both scalar and vector modes)
Instruction counts:
- 73 helped, 1680 hurt (out of 139,470 shaders)
- 98.7% of shaders remain unaffected. The average increase in
instruction count in hurt programs is 1.9 instructions.
- total instructions in shared programs: 14199527 -> 14202262 (0.02%)
- instructions in affected programs: 446499 -> 449234 (0.61%)
Cycles:
- 5253 helped, 5559 hurt
- total cycles in shared programs: 359996545 -> 360038731 (0.01%)
- cycles in affected programs: 155897127 -> 155939313 (0.03%)
Given that ~99% of shader-db remains unaffected, and the affected
programs are hurt by about 1-2 instructions - which are all cheap
ALU instructions - this is unlikely to be measurable in terms of
any real performance impact that would affect users.
So, drop them and simplify the backend, and hopefully enable other
future simplifications in NIR.
Reviewed-by: Eric Anholt <[email protected]> [v1]
Reviewed-by: Jason Ekstrand <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4616>
Diffstat (limited to 'src/intel/compiler/brw_vec4.h')
-rw-r--r-- | src/intel/compiler/brw_vec4.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/intel/compiler/brw_vec4.h b/src/intel/compiler/brw_vec4.h index ab1b87de38b..1f2d922b186 100644 --- a/src/intel/compiler/brw_vec4.h +++ b/src/intel/compiler/brw_vec4.h @@ -312,8 +312,8 @@ public: bool optimize_predicate(nir_alu_instr *instr, enum brw_predicate *predicate); - void emit_conversion_from_double(dst_reg dst, src_reg src, bool saturate); - void emit_conversion_to_double(dst_reg dst, src_reg src, bool saturate); + void emit_conversion_from_double(dst_reg dst, src_reg src); + void emit_conversion_to_double(dst_reg dst, src_reg src); vec4_instruction *shuffle_64bit_data(dst_reg dst, src_reg src, bool for_write, |