diff options
author | Eric Anholt <eric@anholt.net> | 2011-03-11 13:03:54 -0800 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2011-03-15 09:49:00 -0700 |
commit | d3a444af2d4c42a23e9ec78dbef4c3ee45e1e50c (patch) | |
tree | c402751f371330afb142ea2dd2fe15f497748def /src/glsl | |
parent | b0fff8d17eb65368db018f6ccc226482ccf46763 (diff) |
glsl: Skip processing expression trees in optimize_redundant_jumps()
Cuts the time spent in this function during glean texCombine by 2/3.
Diffstat (limited to 'src/glsl')
-rw-r--r-- | 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 edf4bb6c224..f350fa947c9 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) |