mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 21:50:12 +01:00
glsl2: Use as_constant some places instead of constant_expression_value
The places where constant_expression_value are still used in loop analysis are places where a new expression tree is created and constant folding won't have happened. This is used, for example, when we try to determine the maximal loop iteration count. Based on review comments by Eric. "...rely on constant folding to have done its job, instead of going all through the subtree again when it wasn't a constant."
This commit is contained in:
parent
4e5b41c2f6
commit
f061524f07
2 changed files with 3 additions and 3 deletions
|
|
@ -433,7 +433,7 @@ get_basic_induction_increment(ir_assignment *ir, hash_table *var_hash)
|
|||
|
||||
ir_rvalue *inc = (op0 == var) ? rhs->operands[1] : rhs->operands[0];
|
||||
|
||||
if (inc->constant_expression_value() == NULL) {
|
||||
if (inc->as_constant() == NULL) {
|
||||
ir_variable *const inc_var = inc->variable_referenced();
|
||||
if (inc_var != NULL) {
|
||||
loop_variable *lv =
|
||||
|
|
|
|||
|
|
@ -204,12 +204,12 @@ loop_control_visitor::visit_leave(ir_loop *ir)
|
|||
* which.
|
||||
*/
|
||||
ir_rvalue *counter = cond->operands[0]->as_dereference_variable();
|
||||
ir_constant *limit = cond->operands[1]->constant_expression_value();
|
||||
ir_constant *limit = cond->operands[1]->as_constant();
|
||||
enum ir_expression_operation cmp = cond->operation;
|
||||
|
||||
if (limit == NULL) {
|
||||
counter = cond->operands[1]->as_dereference_variable();
|
||||
limit = cond->operands[0]->constant_expression_value();
|
||||
limit = cond->operands[0]->as_constant();
|
||||
|
||||
switch (cmp) {
|
||||
case ir_binop_less: cmp = ir_binop_gequal; break;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue