aboutsummaryrefslogtreecommitdiffstats
path: root/src/compiler/glsl/opt_constant_propagation.cpp
diff options
context:
space:
mode:
authorCaio Marcelo de Oliveira Filho <[email protected]>2018-07-06 17:21:34 -0700
committerRafael Antognolli <[email protected]>2018-07-12 14:03:51 -0700
commitd6e869afe90df1d6fa02b1dcb1a367c48fca001a (patch)
treef623850bb82c6492f8a16df31174267eec5b560c /src/compiler/glsl/opt_constant_propagation.cpp
parent094225d69d25239a36daebb0021235cce65afa59 (diff)
glsl: slim the kill_entry struct used in const propagation
Since 4654439fdd7 "glsl: Use hash tables for opt_constant_propagation() kill sets." uses a hash_table for storing kill_entries, so the structs can be simplified. Remove the exec_node from kill_entry since it is not used in an exec_list anymore. Remove the 'var' from kill_entry since it is now redundant with the key of the hash table. Suggested by Eric Anholt. Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Thomas Helland <[email protected]>
Diffstat (limited to 'src/compiler/glsl/opt_constant_propagation.cpp')
-rw-r--r--src/compiler/glsl/opt_constant_propagation.cpp13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/compiler/glsl/opt_constant_propagation.cpp b/src/compiler/glsl/opt_constant_propagation.cpp
index 05dc71efb72..f91498b45cd 100644
--- a/src/compiler/glsl/opt_constant_propagation.cpp
+++ b/src/compiler/glsl/opt_constant_propagation.cpp
@@ -77,20 +77,17 @@ public:
};
-class kill_entry : public exec_node
+class kill_entry
{
public:
/* override operator new from exec_node */
DECLARE_LINEAR_ZALLOC_CXX_OPERATORS(kill_entry)
- kill_entry(ir_variable *var, unsigned write_mask)
+ explicit kill_entry(unsigned write_mask)
{
- assert(var);
- this->var = var;
this->write_mask = write_mask;
}
- ir_variable *var;
unsigned write_mask;
};
@@ -386,7 +383,7 @@ ir_constant_propagation_visitor::handle_if_block(exec_list *instructions)
hash_entry *htk;
hash_table_foreach(new_kills, htk) {
kill_entry *k = (kill_entry *) htk->data;
- kill(k->var, k->write_mask);
+ kill((ir_variable *) htk->key, k->write_mask);
}
}
@@ -433,7 +430,7 @@ ir_constant_propagation_visitor::visit_enter(ir_loop *ir)
hash_entry *htk;
hash_table_foreach(new_kills, htk) {
kill_entry *k = (kill_entry *) htk->data;
- kill(k->var, k->write_mask);
+ kill((ir_variable *) htk->key, k->write_mask);
}
/* already descended into the children. */
@@ -469,7 +466,7 @@ ir_constant_propagation_visitor::kill(ir_variable *var, unsigned write_mask)
}
/* Not already in the hash table. Make new entry. */
_mesa_hash_table_insert(this->kills, var,
- new(this->lin_ctx) kill_entry(var, write_mask));
+ new(this->lin_ctx) kill_entry(write_mask));
}
/**