glsl: Improve the CSE pass debugging output.

The CSE pass now prints out why it thinks a value is not a candidate for
adding to the AE set.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
Kenneth Graunke 2014-10-29 02:43:29 -07:00
parent 799106d387
commit 2b7f73af9c
1 changed files with 8 additions and 1 deletions

View File

@ -194,6 +194,8 @@ is_cse_candidate_visitor::visit(ir_dereference_variable *ir)
if (ir->var->data.read_only) {
return visit_continue;
} else {
if (debug)
printf("CSE: non-candidate: var %s is not read only\n", ir->var->name);
ok = false;
return visit_stop;
}
@ -220,8 +222,11 @@ is_cse_candidate(ir_rvalue *ir)
/* Our temporary variable assignment generation isn't ready to handle
* anything bigger than a vector.
*/
if (!ir->type->is_vector() && !ir->type->is_scalar())
if (!ir->type->is_vector() && !ir->type->is_scalar()) {
if (debug)
printf("CSE: non-candidate: not a vector/scalar\n");
return false;
}
/* Only handle expressions and textures currently. We may want to extend
* to variable-index array dereferences at some point.
@ -231,6 +236,8 @@ is_cse_candidate(ir_rvalue *ir)
case ir_type_texture:
break;
default:
if (debug)
printf("CSE: non-candidate: not an expression/texture\n");
return false;
}