src/compiler: use new hash table and set creation helpers
Replace calls to create hash tables and sets that use _mesa_hash_pointer/_mesa_key_pointer_equal with the helpers _mesa_pointer_hash_table_create() and _mesa_pointer_set_create(). Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Acked-by: Eric Engestrom <eric@engestrom.ch>
This commit is contained in:
@@ -44,9 +44,7 @@ nir_build_program_resource_list(struct gl_context *ctx,
|
||||
prog->data->NumProgramResourceList = 0;
|
||||
}
|
||||
|
||||
struct set *resource_set = _mesa_set_create(NULL,
|
||||
_mesa_hash_pointer,
|
||||
_mesa_key_pointer_equal);
|
||||
struct set *resource_set = _mesa_pointer_set_create(NULL);
|
||||
|
||||
/* Add uniforms
|
||||
*
|
||||
|
@@ -176,10 +176,8 @@ nir_visitor::nir_visitor(nir_shader *shader)
|
||||
this->supports_ints = shader->options->native_integers;
|
||||
this->shader = shader;
|
||||
this->is_global = true;
|
||||
this->var_table = _mesa_hash_table_create(NULL, _mesa_hash_pointer,
|
||||
_mesa_key_pointer_equal);
|
||||
this->overload_table = _mesa_hash_table_create(NULL, _mesa_hash_pointer,
|
||||
_mesa_key_pointer_equal);
|
||||
this->var_table = _mesa_pointer_hash_table_create(NULL);
|
||||
this->overload_table = _mesa_pointer_hash_table_create(NULL);
|
||||
this->result = NULL;
|
||||
this->impl = NULL;
|
||||
memset(&this->b, 0, sizeof(this->b));
|
||||
|
@@ -37,8 +37,7 @@ ir_array_refcount_visitor::ir_array_refcount_visitor()
|
||||
: last_array_deref(0), derefs(0), num_derefs(0), derefs_size(0)
|
||||
{
|
||||
this->mem_ctx = ralloc_context(NULL);
|
||||
this->ht = _mesa_hash_table_create(NULL, _mesa_hash_pointer,
|
||||
_mesa_key_pointer_equal);
|
||||
this->ht = _mesa_pointer_hash_table_create(NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@@ -141,8 +141,7 @@ _mesa_print_builder_for_ir(FILE *f, exec_list *instructions)
|
||||
ir_builder_print_visitor::ir_builder_print_visitor(FILE *f)
|
||||
: next_ir_index(1), f(f), indentation(0)
|
||||
{
|
||||
index_map =
|
||||
_mesa_hash_table_create(NULL, _mesa_hash_pointer, _mesa_key_pointer_equal);
|
||||
index_map = _mesa_pointer_hash_table_create(NULL);
|
||||
}
|
||||
|
||||
ir_builder_print_visitor::~ir_builder_print_visitor()
|
||||
|
@@ -419,8 +419,7 @@ fixup_function_calls(struct hash_table *ht, exec_list *instructions)
|
||||
void
|
||||
clone_ir_list(void *mem_ctx, exec_list *out, const exec_list *in)
|
||||
{
|
||||
struct hash_table *ht =
|
||||
_mesa_hash_table_create(NULL, _mesa_hash_pointer, _mesa_key_pointer_equal);
|
||||
struct hash_table *ht = _mesa_pointer_hash_table_create(NULL);
|
||||
|
||||
foreach_in_list(const ir_instruction, original, in) {
|
||||
ir_instruction *copy = original->clone(mem_ctx, ht);
|
||||
|
@@ -1024,8 +1024,7 @@ ir_function_signature::constant_expression_value(void *mem_ctx,
|
||||
* We expect the correctness of the number of parameters to have
|
||||
* been checked earlier.
|
||||
*/
|
||||
hash_table *deref_hash = _mesa_hash_table_create(NULL, _mesa_hash_pointer,
|
||||
_mesa_key_pointer_equal);
|
||||
hash_table *deref_hash = _mesa_pointer_hash_table_create(NULL);
|
||||
|
||||
/* If "origin" is non-NULL, then the function body is there. So we
|
||||
* have to use the variable objects from the object with the body,
|
||||
|
@@ -158,8 +158,7 @@ public:
|
||||
{
|
||||
progress = false;
|
||||
this->mem_ctx = ralloc_context(NULL);
|
||||
this->function_hash = _mesa_hash_table_create(NULL, _mesa_hash_pointer,
|
||||
_mesa_key_pointer_equal);
|
||||
this->function_hash = _mesa_pointer_hash_table_create(NULL);
|
||||
}
|
||||
|
||||
~has_recursion_visitor()
|
||||
|
@@ -90,8 +90,7 @@ ir_print_visitor::ir_print_visitor(FILE *f)
|
||||
: f(f)
|
||||
{
|
||||
indentation = 0;
|
||||
printable_names =
|
||||
_mesa_hash_table_create(NULL, _mesa_hash_pointer, _mesa_key_pointer_equal);
|
||||
printable_names = _mesa_pointer_hash_table_create(NULL);
|
||||
symbols = _mesa_symbol_table_ctor();
|
||||
mem_ctx = ralloc_context(NULL);
|
||||
}
|
||||
|
@@ -46,8 +46,7 @@ class ir_validate : public ir_hierarchical_visitor {
|
||||
public:
|
||||
ir_validate()
|
||||
{
|
||||
this->ir_set = _mesa_set_create(NULL, _mesa_hash_pointer,
|
||||
_mesa_key_pointer_equal);
|
||||
this->ir_set = _mesa_pointer_set_create(NULL);
|
||||
|
||||
this->current_function = NULL;
|
||||
|
||||
|
@@ -38,8 +38,7 @@
|
||||
ir_variable_refcount_visitor::ir_variable_refcount_visitor()
|
||||
{
|
||||
this->mem_ctx = ralloc_context(NULL);
|
||||
this->ht = _mesa_hash_table_create(NULL, _mesa_hash_pointer,
|
||||
_mesa_key_pointer_equal);
|
||||
this->ht = _mesa_pointer_hash_table_create(NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@@ -47,8 +47,7 @@ public:
|
||||
this->success = true;
|
||||
this->linked = linked;
|
||||
|
||||
this->locals = _mesa_set_create(NULL, _mesa_hash_pointer,
|
||||
_mesa_key_pointer_equal);
|
||||
this->locals = _mesa_pointer_set_create(NULL);
|
||||
}
|
||||
|
||||
~call_link_visitor()
|
||||
@@ -148,8 +147,7 @@ public:
|
||||
* replace signature stored in a function. One could easily be added,
|
||||
* but this avoids the need.
|
||||
*/
|
||||
struct hash_table *ht = _mesa_hash_table_create(NULL, _mesa_hash_pointer,
|
||||
_mesa_key_pointer_equal);
|
||||
struct hash_table *ht = _mesa_pointer_hash_table_create(NULL);
|
||||
|
||||
exec_list formal_parameters;
|
||||
foreach_in_list(const ir_instruction, original, &sig->parameters) {
|
||||
|
@@ -1460,8 +1460,7 @@ move_non_declarations(exec_list *instructions, exec_node *last,
|
||||
hash_table *temps = NULL;
|
||||
|
||||
if (make_copies)
|
||||
temps = _mesa_hash_table_create(NULL, _mesa_hash_pointer,
|
||||
_mesa_key_pointer_equal);
|
||||
temps = _mesa_pointer_hash_table_create(NULL);
|
||||
|
||||
foreach_in_list_safe(ir_instruction, inst, instructions) {
|
||||
if (inst->as_function())
|
||||
@@ -1507,8 +1506,7 @@ class array_sizing_visitor : public deref_type_updater {
|
||||
public:
|
||||
array_sizing_visitor()
|
||||
: mem_ctx(ralloc_context(NULL)),
|
||||
unnamed_interfaces(_mesa_hash_table_create(NULL, _mesa_hash_pointer,
|
||||
_mesa_key_pointer_equal))
|
||||
unnamed_interfaces(_mesa_pointer_hash_table_create(NULL))
|
||||
{
|
||||
}
|
||||
|
||||
@@ -4412,9 +4410,7 @@ build_program_resource_list(struct gl_context *ctx,
|
||||
if (input_stage == MESA_SHADER_STAGES && output_stage == 0)
|
||||
return;
|
||||
|
||||
struct set *resource_set = _mesa_set_create(NULL,
|
||||
_mesa_hash_pointer,
|
||||
_mesa_key_pointer_equal);
|
||||
struct set *resource_set = _mesa_pointer_set_create(NULL);
|
||||
|
||||
/* Program interface needs to expose varyings in case of SSO. */
|
||||
if (shProg->SeparateShader) {
|
||||
|
@@ -252,8 +252,7 @@ loop_variable::record_reference(bool in_assignee,
|
||||
|
||||
loop_state::loop_state()
|
||||
{
|
||||
this->ht = _mesa_hash_table_create(NULL, _mesa_hash_pointer,
|
||||
_mesa_key_pointer_equal);
|
||||
this->ht = _mesa_pointer_hash_table_create(NULL);
|
||||
this->mem_ctx = ralloc_context(NULL);
|
||||
this->loop_found = false;
|
||||
}
|
||||
|
@@ -113,8 +113,7 @@ public:
|
||||
{
|
||||
this->num_loop_jumps = 0;
|
||||
this->contains_calls = false;
|
||||
this->var_hash = _mesa_hash_table_create(NULL, _mesa_hash_pointer,
|
||||
_mesa_key_pointer_equal);
|
||||
this->var_hash = _mesa_pointer_hash_table_create(NULL);
|
||||
this->limiting_terminator = NULL;
|
||||
}
|
||||
|
||||
|
@@ -71,9 +71,7 @@ public:
|
||||
this->min_branch_cost = min_branch_cost;
|
||||
this->depth = 0;
|
||||
|
||||
this->condition_variables =
|
||||
_mesa_set_create(NULL, _mesa_hash_pointer,
|
||||
_mesa_key_pointer_equal);
|
||||
this->condition_variables = _mesa_pointer_set_create(NULL);
|
||||
}
|
||||
|
||||
~ir_if_to_cond_assign_visitor()
|
||||
|
@@ -86,8 +86,7 @@ public:
|
||||
mem_ctx = ralloc_context(0);
|
||||
this->lin_ctx = linear_alloc_parent(this->mem_ctx, 0);
|
||||
this->acp = new(mem_ctx) exec_list;
|
||||
this->kills = _mesa_hash_table_create(mem_ctx, _mesa_hash_pointer,
|
||||
_mesa_key_pointer_equal);
|
||||
this->kills = _mesa_pointer_hash_table_create(mem_ctx);
|
||||
}
|
||||
~ir_constant_propagation_visitor()
|
||||
{
|
||||
@@ -256,8 +255,7 @@ ir_constant_propagation_visitor::visit_enter(ir_function_signature *ir)
|
||||
bool orig_killed_all = this->killed_all;
|
||||
|
||||
this->acp = new(mem_ctx) exec_list;
|
||||
this->kills = _mesa_hash_table_create(mem_ctx, _mesa_hash_pointer,
|
||||
_mesa_key_pointer_equal);
|
||||
this->kills = _mesa_pointer_hash_table_create(mem_ctx);
|
||||
this->killed_all = false;
|
||||
|
||||
visit_list_elements(this, &ir->body);
|
||||
@@ -368,8 +366,7 @@ ir_constant_propagation_visitor::visit_enter(ir_if *ir)
|
||||
ir->condition->accept(this);
|
||||
handle_rvalue(&ir->condition);
|
||||
|
||||
hash_table *new_kills = _mesa_hash_table_create(mem_ctx, _mesa_hash_pointer,
|
||||
_mesa_key_pointer_equal);
|
||||
hash_table *new_kills = _mesa_pointer_hash_table_create(mem_ctx);
|
||||
bool then_killed_all = false;
|
||||
bool else_killed_all = false;
|
||||
|
||||
@@ -398,8 +395,7 @@ ir_constant_propagation_visitor::handle_loop(ir_loop *ir, bool keep_acp)
|
||||
bool orig_killed_all = this->killed_all;
|
||||
|
||||
this->acp = new(mem_ctx) exec_list;
|
||||
this->kills = _mesa_hash_table_create(mem_ctx, _mesa_hash_pointer,
|
||||
_mesa_key_pointer_equal);
|
||||
this->kills = _mesa_pointer_hash_table_create(mem_ctx);
|
||||
this->killed_all = false;
|
||||
|
||||
if (keep_acp) {
|
||||
|
@@ -186,8 +186,7 @@ do_constant_variable(exec_list *instructions)
|
||||
bool progress = false;
|
||||
ir_constant_variable_visitor v;
|
||||
|
||||
v.ht = _mesa_hash_table_create(NULL, _mesa_hash_pointer,
|
||||
_mesa_key_pointer_equal);
|
||||
v.ht = _mesa_pointer_hash_table_create(NULL);
|
||||
v.run(instructions);
|
||||
|
||||
hash_table_foreach(v.ht, hte) {
|
||||
|
@@ -203,8 +203,7 @@ private:
|
||||
/* Use 'this' as context for the table, no explicit destruction
|
||||
* needed later.
|
||||
*/
|
||||
acp = _mesa_hash_table_create(this, _mesa_hash_pointer,
|
||||
_mesa_key_pointer_equal);
|
||||
acp = _mesa_pointer_hash_table_create(this);
|
||||
lin_ctx = linear_alloc_parent(this, 0);
|
||||
}
|
||||
|
||||
@@ -231,8 +230,7 @@ private:
|
||||
}
|
||||
|
||||
if (!found) {
|
||||
entry->dsts = _mesa_set_create(this, _mesa_hash_pointer,
|
||||
_mesa_key_pointer_equal);
|
||||
entry->dsts = _mesa_pointer_set_create(this);
|
||||
}
|
||||
|
||||
return entry;
|
||||
|
@@ -152,7 +152,7 @@ ir_call::generate_inline(ir_instruction *next_ir)
|
||||
int i;
|
||||
struct hash_table *ht;
|
||||
|
||||
ht = _mesa_hash_table_create(NULL, _mesa_hash_pointer, _mesa_key_pointer_equal);
|
||||
ht = _mesa_pointer_hash_table_create(NULL);
|
||||
|
||||
num_parameters = this->callee->parameters.length();
|
||||
parameters = new ir_variable *[num_parameters];
|
||||
|
@@ -49,9 +49,7 @@ class dead_variable_visitor : public ir_hierarchical_visitor {
|
||||
public:
|
||||
dead_variable_visitor()
|
||||
{
|
||||
variables = _mesa_set_create(NULL,
|
||||
_mesa_hash_pointer,
|
||||
_mesa_key_pointer_equal);
|
||||
variables = _mesa_pointer_set_create(NULL);
|
||||
}
|
||||
|
||||
virtual ~dead_variable_visitor()
|
||||
|
Reference in New Issue
Block a user