pan/midgard: Add mir_rewrite_index_src_tag
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Wed, 24 Jul 2019 19:51:51 +0000 (12:51 -0700)
committerAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Thu, 25 Jul 2019 13:37:22 +0000 (06:37 -0700)
Specialized version of a rewrite that only rewrites a certain type of
instruction.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
src/panfrost/midgard/compiler.h
src/panfrost/midgard/mir.c

index 8266c5478437b0af0ea92cdbce609cd302d35d6e..7b231bf85ea9ce0ff6cb6d4beb6efad7e32ed556 100644 (file)
@@ -373,6 +373,7 @@ void mir_rewrite_index(compiler_context *ctx, unsigned old, unsigned new);
 void mir_rewrite_index_src(compiler_context *ctx, unsigned old, unsigned new);
 void mir_rewrite_index_dst(compiler_context *ctx, unsigned old, unsigned new);
 void mir_rewrite_index_src_single(midgard_instruction *ins, unsigned old, unsigned new);
+void mir_rewrite_index_src_tag(compiler_context *ctx, unsigned old, unsigned new, unsigned tag);
 bool mir_single_use(compiler_context *ctx, unsigned value);
 
 /* MIR printing */
index 03a47f44acb5ef4fb810e643d50d2ec48376ef4d..93262f4b13f7beb4a9e6da5f8c53504823fc7a5e 100644 (file)
@@ -43,6 +43,19 @@ mir_rewrite_index_src(compiler_context *ctx, unsigned old, unsigned new)
         }
 }
 
+void
+mir_rewrite_index_src_tag(compiler_context *ctx, unsigned old, unsigned new, unsigned tag)
+{
+        mir_foreach_instr_global(ctx, ins) {
+                if (ins->type != tag)
+                        continue;
+
+                mir_rewrite_index_src_single(ins, old, new);
+        }
+}
+
+
+
 void
 mir_rewrite_index_dst(compiler_context *ctx, unsigned old, unsigned new)
 {