The "fail" flag is set if loop_unroll_count encounters a nested loop;
calling the flag "nested_loop" is a bit clearer.
The original reasoning was that count is inaccurate (too small) if there
are nested loops, as we don't do any sort of analysis on the inner loop.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
class loop_unroll_count : public ir_hierarchical_visitor {
public:
int nodes;
- bool fail;
+ /* If there are nested loops, the node count will be inaccurate. */
+ bool nested_loop;
loop_unroll_count(exec_list *list)
{
nodes = 0;
- fail = false;
+ nested_loop = false;
run(list);
}
virtual ir_visitor_status visit_enter(ir_loop *)
{
- fail = true;
+ nested_loop = true;
return visit_continue;
}
};
*/
loop_unroll_count count(&ir->body_instructions);
- if (count.fail || count.nodes * iterations > max_iterations * 5)
+ if (count.nested_loop || count.nodes * iterations > max_iterations * 5)
return visit_continue;
/* Note: the limiting terminator contributes 1 to ls->num_loop_jumps.