Mesa (master): vc4: Allow multi-instruction QIR nodes to get VPM optimization.

Eric Anholt anholt at kemper.freedesktop.org
Sat Apr 9 01:42:21 UTC 2016


Module: Mesa
Branch: master
Commit: e46b48963a6f336049af3d10649bab48cd12fdee
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e46b48963a6f336049af3d10649bab48cd12fdee

Author: Eric Anholt <eric at anholt.net>
Date:   Mon Mar 21 12:18:07 2016 -0700

vc4: Allow multi-instruction QIR nodes to get VPM optimization.

There used to be multi-instruction operations that would use src[] twice,
which is why we couldn't do some optimizations on them.  This is no longer
the case.

total instructions in shared programs: 77973 -> 77969 (-0.01%)
instructions in affected programs:     84 -> 80 (-4.76%)
total estimated cycles in shared programs: 234165 -> 234157 (-0.00%)
estimated cycles in affected programs:     92 -> 84 (-8.70%)

---

 src/gallium/drivers/vc4/vc4_opt_vpm.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/vc4/vc4_opt_vpm.c b/src/gallium/drivers/vc4/vc4_opt_vpm.c
index d15b0c1..d31b673 100644
--- a/src/gallium/drivers/vc4/vc4_opt_vpm.c
+++ b/src/gallium/drivers/vc4/vc4_opt_vpm.c
@@ -65,7 +65,7 @@ qir_opt_vpm(struct vc4_compile *c)
          * result, try to move the instruction up in place of the VPM read.
          */
         list_for_each_entry(struct qinst, inst, &c->instructions, link) {
-                if (!inst || qir_is_multi_instruction(inst))
+                if (!inst)
                         continue;
 
                 if (qir_depends_on_flags(inst) || inst->sf)
@@ -132,7 +132,7 @@ qir_opt_vpm(struct vc4_compile *c)
                         continue;
 
                 struct qinst *inst = c->defs[temp];
-                if (!inst || qir_is_multi_instruction(inst))
+                if (!inst)
                         continue;
 
                 if (qir_depends_on_flags(inst) || inst->sf)




More information about the mesa-commit mailing list