summaryrefslogtreecommitdiff
path: root/src/glsl/loop_analysis.cpp
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2011-01-17 22:07:55 -0800
committerEric Anholt <eric@anholt.net>2011-01-18 10:17:37 -0800
commit58c988ada56114b56477983f66b4039219f1a82c (patch)
tree0599f47a88746a3176894b9b492ade28bf5f37ed /src/glsl/loop_analysis.cpp
parent754b9c5363aa7ae5f47c88c78790b3fe35c07403 (diff)
glsl: Skip the rest of loop unrolling if no loops were found.
Shaves 1.6% (+/- 1.0%) off of ff_fragment_shader glean texCombine time (n=5).
Diffstat (limited to 'src/glsl/loop_analysis.cpp')
-rw-r--r--src/glsl/loop_analysis.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/glsl/loop_analysis.cpp b/src/glsl/loop_analysis.cpp
index ff7adf00a2..3cf86ebaa3 100644
--- a/src/glsl/loop_analysis.cpp
+++ b/src/glsl/loop_analysis.cpp
@@ -38,6 +38,7 @@ loop_state::loop_state()
this->ht = hash_table_ctor(0, hash_table_pointer_hash,
hash_table_pointer_compare);
this->mem_ctx = talloc_init("loop state");
+ this->loop_found = false;
}
@@ -52,7 +53,9 @@ loop_variable_state *
loop_state::insert(ir_loop *ir)
{
loop_variable_state *ls = new(this->mem_ctx) loop_variable_state;
+
hash_table_insert(this->ht, ls, ir);
+ this->loop_found = true;
return ls;
}