summaryrefslogtreecommitdiffstats
path: root/src/compiler/Makefile.sources
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2016-08-08 13:57:29 -0700
committerTimothy Arceri <[email protected]>2017-01-12 09:47:29 +1100
commitfd957b17511b9a7654e70e0f4a21c2c7547f95c6 (patch)
treeda402384b559b927f890fbc6e43c8702caf2b6b4 /src/compiler/Makefile.sources
parente8328e55e7ac26bbf3b3a47a1bb1cae4ab9130a2 (diff)
nir: Introduce a nir_opt_move_comparisons() pass.
This tries to move comparisons (a common source of boolean values) closer to their first use. For GPUs which use condition codes, this can eliminate a lot of temporary booleans and comparisons which reload the condition code register based on a boolean. V2: (Timothy Arceri) - fix move comparision for phis so we dont end up with: vec1 32 ssa_227 = phi block_34: ssa_1, block_38: ssa_240 vec1 32 ssa_235 = feq ssa_227, ssa_1 vec1 32 ssa_230 = phi block_34: ssa_221, block_38: ssa_235 - add nir_op_i2b/nir_op_f2b to the list of comparisons. V3: (Timothy Arceri) - tidy up suggested by Jason. - add inot/fnot to move comparison list V4: (Jason Ekstrand) - clean up move_comparison_source - get rid of the tuple - rework phi handling Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Ian Romanick <[email protected]> [v1] Reviewed-by: Jason Ekstrand <[email protected]>
Diffstat (limited to 'src/compiler/Makefile.sources')
-rw-r--r--src/compiler/Makefile.sources1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/compiler/Makefile.sources b/src/compiler/Makefile.sources
index 7479afae047..063cf50be5b 100644
--- a/src/compiler/Makefile.sources
+++ b/src/compiler/Makefile.sources
@@ -246,6 +246,7 @@ NIR_FILES = \
nir/nir_opt_global_to_local.c \
nir/nir_opt_if.c \
nir/nir_opt_loop_unroll.c \
+ nir/nir_opt_move_comparisons.c \
nir/nir_opt_peephole_select.c \
nir/nir_opt_remove_phis.c \
nir/nir_opt_trivial_continues.c \