glsl: Skip processing of expression trees in discard simplification.

It only cares about "if", "loop", and "discard".
This commit is contained in:
Eric Anholt 2011-03-11 13:23:13 -08:00
parent 05cf1ad82e
commit 2b13e13594

View file

@ -95,6 +95,7 @@ public:
ir_visitor_status visit_enter(ir_if *);
ir_visitor_status visit_enter(ir_loop *);
ir_visitor_status visit_enter(ir_assignment *);
bool progress;
};
@ -117,6 +118,15 @@ is_only_instruction(ir_discard *discard)
discard->next->is_tail_sentinel());
}
/* We only care about the top level instructions, so don't descend
* into expressions.
*/
ir_visitor_status
discard_simplifier::visit_enter(ir_assignment *ir)
{
return visit_continue_with_parent;
}
ir_visitor_status
discard_simplifier::visit_enter(ir_if *ir)
{