Move compiler.h and imports.h/c from src/mesa/main into src/util
[mesa.git] / src / compiler / glsl / ir_clone.cpp
index 69441fae7de0e5eff396de2a94f110f6f65161de..e46d07d6f43405f94e44ee8405205774e6a71ccd 100644 (file)
@@ -22,7 +22,7 @@
  */
 
 #include <string.h>
-#include "main/compiler.h"
+#include "util/compiler.h"
 #include "ir.h"
 #include "compiler/glsl_types.h"
 #include "util/hash_table.h"
@@ -102,6 +102,12 @@ ir_discard::clone(void *mem_ctx, struct hash_table *ht) const
    return new(mem_ctx) ir_discard(new_condition);
 }
 
+ir_demote *
+ir_demote::clone(void *mem_ctx, struct hash_table *ht) const
+{
+   return new(mem_ctx) ir_demote();
+}
+
 ir_loop_jump *
 ir_loop_jump::clone(void *mem_ctx, struct hash_table *ht) const
 {
@@ -194,6 +200,7 @@ ir_dereference_array::clone(void *mem_ctx, struct hash_table *ht) const
 ir_dereference_record *
 ir_dereference_record::clone(void *mem_ctx, struct hash_table *ht) const
 {
+   assert(this->field_idx >= 0);
    const char *field_name =
       this->record->type->fields.structure[this->field_idx].name;
    return new(mem_ctx) ir_dereference_record(this->record->clone(mem_ctx, ht),
@@ -418,8 +425,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);