glsl/loops: replace loop controls with a normative bound.
This patch replaces the ir_loop fields "from", "to", "increment",
"counter", and "cmp" with a single integer ("normative_bound") that
serves the same purpose.
I've used the name "normative_bound" to emphasize the fact that the
back-end is required to emit code to prevent the loop from running
more than normative_bound times. (By contrast, an "informative" bound
would be a bound that is informational only).
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
@@ -132,24 +132,3 @@ ir_variable_refcount_visitor::visit_leave(ir_assignment *ir)
|
||||
|
||||
return visit_continue;
|
||||
}
|
||||
|
||||
|
||||
ir_visitor_status
|
||||
ir_variable_refcount_visitor::visit_leave(ir_loop *ir)
|
||||
{
|
||||
/* If the loop has a counter variable, it is implicitly referenced and
|
||||
* assigned to. Note that since the LHS of an assignment is counted as a
|
||||
* reference, we actually have to increment referenced_count by 2 so that
|
||||
* later code will know that the variable isn't just assigned to.
|
||||
*/
|
||||
if (ir->counter != NULL) {
|
||||
ir_variable_refcount_entry *entry =
|
||||
this->get_variable_entry(ir->counter);
|
||||
if (entry) {
|
||||
entry->referenced_count += 2;
|
||||
entry->assigned_count++;
|
||||
}
|
||||
}
|
||||
|
||||
return visit_continue;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user