Mesa (master): glsl: Skip processing expression trees in optimize_redundant_jumps()

Eric Anholt anholt at kemper.freedesktop.org
Tue Mar 15 17:23:03 UTC 2011


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

Author: Eric Anholt <eric at anholt.net>
Date:   Fri Mar 11 13:03:54 2011 -0800

glsl: Skip processing expression trees in optimize_redundant_jumps()

Cuts the time spent in this function during glean texCombine by 2/3.

---

 src/glsl/opt_redundant_jumps.cpp |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/src/glsl/opt_redundant_jumps.cpp b/src/glsl/opt_redundant_jumps.cpp
index edf4bb6..f350fa9 100644
--- a/src/glsl/opt_redundant_jumps.cpp
+++ b/src/glsl/opt_redundant_jumps.cpp
@@ -37,10 +37,19 @@ public:
 
    virtual ir_visitor_status visit_leave(ir_if *);
    virtual ir_visitor_status visit_leave(ir_loop *);
+   virtual ir_visitor_status visit_enter(ir_assignment *);
 
    bool progress;
 };
 
+/* We only care about the top level instructions, so don't descend
+ * into expressions.
+ */
+ir_visitor_status
+redundant_jumps_visitor::visit_enter(ir_assignment *ir)
+{
+   return visit_continue_with_parent;
+}
 
 ir_visitor_status
 redundant_jumps_visitor::visit_leave(ir_if *ir)




More information about the mesa-commit mailing list