v3d: Add an optimization pass for redundant flags updates.
authorEric Anholt <eric@anholt.net>
Fri, 22 Feb 2019 22:26:26 +0000 (14:26 -0800)
committerEric Anholt <eric@anholt.net>
Thu, 11 Apr 2019 16:24:02 +0000 (09:24 -0700)
commit8f065596d22ab000c53ffe926d4340f4c9aeed97
treeef6520367c9e9f3ba70fa184c41cbb5152e123be
parent3dd2001993409d08e7b0fbc9d817e4a2181b52b1
v3d: Add an optimization pass for redundant flags updates.

Our exec masking introduces lots of redundant flags updates, and even
without that there will be cases where NIR comparisons on the same sources
for different reasons may generate the same comparison instruction before
the selection.

total instructions in shared programs: 6492930 -> 6460934 (-0.49%)
total uniforms in shared programs: 2117460 -> 2115106 (-0.11%)
total spills in shared programs: 4983 -> 4987 (0.08%)
total fills in shared programs: 6408 -> 6416 (0.12%)
src/broadcom/Makefile.sources
src/broadcom/compiler/meson.build
src/broadcom/compiler/v3d_compiler.h
src/broadcom/compiler/vir.c
src/broadcom/compiler/vir_opt_redundant_flags.c [new file with mode: 0644]