nir/from_ssa: Don't set reg->parent_instr for ssa_undef instructions
authorJason Ekstrand <jason.ekstrand@intel.com>
Thu, 2 Apr 2015 19:32:39 +0000 (12:32 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Fri, 3 Apr 2015 21:04:31 +0000 (14:04 -0700)
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
src/glsl/nir/nir_from_ssa.c

index c3090fb06f4259f7a24d9db628eaf4788c21dd98..184698abd5cf0d92abd8b322bf25892a37aef4a3 100644 (file)
@@ -509,12 +509,13 @@ get_register_for_ssa_def(nir_ssa_def *def, struct from_ssa_state *state)
       reg->num_components = def->num_components;
       reg->num_array_elems = 0;
 
-      /* This register comes from an SSA definition that was not part of a
-       * phi-web.  Therefore, we know it has a single unique definition
-       * that dominates all of its uses.  Therefore, we can copy the
+      /* This register comes from an SSA definition that is defined and not
+       * part of a phi-web.  Therefore, we know it has a single unique
+       * definition that dominates all of its uses; we can copy the
        * parent_instr from the SSA def safely.
        */
-      reg->parent_instr = def->parent_instr;
+      if (def->parent_instr->type != nir_instr_type_ssa_undef)
+         reg->parent_instr = def->parent_instr;
 
       _mesa_hash_table_insert(state->ssa_table, def, reg);
       return reg;