glsl: Convert output read lowering to the util hash table
authorThomas Helland <thomashelland90@gmail.com>
Tue, 16 Aug 2016 20:10:31 +0000 (22:10 +0200)
committerTimothy Arceri <timothy.arceri@collabora.com>
Mon, 12 Sep 2016 00:48:35 +0000 (10:48 +1000)
Signed-off-by: Thomas Helland <thomashelland90@gmail.com>
Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
src/compiler/glsl/lower_output_reads.cpp

index 79488df2932da251db0baae0bbfcf8b2683da955..732f4d3d8496cd9459c99669d48ade9dc88b4482 100644 (file)
@@ -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;
 }