diff options
author | Samuel Iglesias Gonsálvez <[email protected]> | 2017-01-20 08:47:05 +0100 |
---|---|---|
committer | Francisco Jerez <[email protected]> | 2017-04-14 14:56:07 -0700 |
commit | aeecc82d057adf43189d08214b21ca5166ad9682 (patch) | |
tree | e1eb456a4d5371a10d853d12c1da9468cc968d97 /src/intel/compiler/brw_fs.cpp | |
parent | 94ffeb7fa2257af3eb416a1e720e08911835665b (diff) |
i965/fs: generalize the legalization d2x pass
Generalize it to lower any unsupported narrower conversion.
v2 (Curro):
- Add supports_type_conversion()
- Reuse existing intruction instead of cloning it.
- Generalize d2x to narrower and equal size conversions.
v3 (Curro):
- Make supports_type_conversion() const and improve it.
- Use foreach_block_and_inst to process added instructions.
- Simplify code.
- Add assert and improve comments.
- Remove redundant mov.
- Remove useless comment.
- Remove saturate == false assert and add support for saturation
when fixing the conversion.
- Add get_exec_type() function.
v4 (Curro):
- Use get_exec_type() function to get sources' type.
Signed-off-by: Samuel Iglesias Gonsálvez <[email protected]>
Reviewed-by: Francisco Jerez <[email protected]>
Diffstat (limited to 'src/intel/compiler/brw_fs.cpp')
-rw-r--r-- | src/intel/compiler/brw_fs.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/intel/compiler/brw_fs.cpp b/src/intel/compiler/brw_fs.cpp index 086b1a04855..8eb8789905c 100644 --- a/src/intel/compiler/brw_fs.cpp +++ b/src/intel/compiler/brw_fs.cpp @@ -5694,11 +5694,6 @@ fs_visitor::optimize() OPT(dead_code_eliminate); } - if (OPT(lower_d2x)) { - OPT(opt_copy_propagation); - OPT(dead_code_eliminate); - } - OPT(lower_simd_width); /* After SIMD lowering just in case we had to unroll the EOT send. */ @@ -5745,6 +5740,12 @@ fs_visitor::optimize() OPT(dead_code_eliminate); } + if (OPT(lower_d2x)) { + OPT(opt_copy_propagation); + OPT(dead_code_eliminate); + OPT(lower_simd_width); + } + lower_uniform_pull_constant_loads(); validate(); |