summaryrefslogtreecommitdiffstats
path: root/src/compiler/glsl/lower_output_reads.cpp
diff options
context:
space:
mode:
authorThomas Helland <[email protected]>2016-08-16 22:10:31 +0200
committerTimothy Arceri <[email protected]>2016-09-12 10:48:35 +1000
commit9efa977be52294ffcf24f12a0454a04b0345422d (patch)
tree1522ba2784d50328b6651b300cbb6ed27fab6729 /src/compiler/glsl/lower_output_reads.cpp
parent6adcc8f2830367fcd22708accee9ea461b21ca8b (diff)
glsl: Convert output read lowering to the util hash table
Signed-off-by: Thomas Helland <[email protected]> Reviewed-by: Timothy Arceri <[email protected]>
Diffstat (limited to 'src/compiler/glsl/lower_output_reads.cpp')
-rw-r--r--src/compiler/glsl/lower_output_reads.cpp17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/compiler/glsl/lower_output_reads.cpp b/src/compiler/glsl/lower_output_reads.cpp
index 79488df2932..732f4d3d849 100644
--- a/src/compiler/glsl/lower_output_reads.cpp
+++ b/src/compiler/glsl/lower_output_reads.cpp
@@ -23,7 +23,7 @@
*/
#include "ir.h"
-#include "program/hash_table.h"
+#include "util/hash_table.h"
/**
* \file lower_output_reads.cpp
@@ -74,20 +74,20 @@ static unsigned
hash_table_var_hash(const void *key)
{
const ir_variable * var = static_cast<const ir_variable *>(key);
- return hash_table_string_hash(var->name);
+ return _mesa_key_hash_string(var->name);
}
output_read_remover::output_read_remover(unsigned stage)
{
this->stage = stage;
mem_ctx = ralloc_context(NULL);
- replacements =
- hash_table_ctor(0, hash_table_var_hash, hash_table_pointer_compare);
+ replacements = _mesa_hash_table_create(NULL, hash_table_var_hash,
+ _mesa_key_pointer_equal);
}
output_read_remover::~output_read_remover()
{
- hash_table_dtor(replacements);
+ _mesa_hash_table_destroy(replacements, NULL);
ralloc_free(mem_ctx);
}
@@ -99,14 +99,15 @@ output_read_remover::visit(ir_dereference_variable *ir)
if (stage == MESA_SHADER_TESS_CTRL)
return visit_continue;
- ir_variable *temp = (ir_variable *) hash_table_find(replacements, ir->var);
+ hash_entry *entry = _mesa_hash_table_search(replacements, ir->var);
+ ir_variable *temp = entry ? (ir_variable *) entry->data : NULL;
/* If we don't have an existing temporary, create one. */
if (temp == NULL) {
void *var_ctx = ralloc_parent(ir->var);
temp = new(var_ctx) ir_variable(ir->var->type, ir->var->name,
ir_var_temporary);
- hash_table_insert(replacements, temp, ir->var);
+ _mesa_hash_table_insert(replacements, ir->var, temp);
ir->var->insert_after(temp);
}
@@ -156,7 +157,7 @@ ir_visitor_status
output_read_remover::visit_leave(ir_emit_vertex *ir)
{
hash_table_call_foreach(replacements, emit_return_copy, ir);
- hash_table_clear(replacements);
+ _mesa_hash_table_clear(replacements, NULL);
return visit_continue;
}