summaryrefslogtreecommitdiffstats
path: root/src/glsl
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2014-10-29 02:43:29 -0700
committerKenneth Graunke <[email protected]>2014-11-03 15:16:50 -0800
commit2b7f73af9c9a7999d8024add8b416f95cfb6daae (patch)
tree178da454a022edd3e7ab3f34bb89d2c6dbb1488a /src/glsl
parent799106d38734a867bf33add2994cb9d414d965e7 (diff)
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 <[email protected]> Reviewed-by: Matt Turner <[email protected]>
Diffstat (limited to 'src/glsl')
-rw-r--r--src/glsl/opt_cse.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/glsl/opt_cse.cpp b/src/glsl/opt_cse.cpp
index 9c96835ddd5..b0b67f49696 100644
--- a/src/glsl/opt_cse.cpp
+++ b/src/glsl/opt_cse.cpp
@@ -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;
}