pan/bi: Add dummy scheduler

Do the absolute simplest possible thing -- create a clause for every
instruction, and just pick whichever slot we can, nopping the other,
copying whatever constant we have whether it's used or not.

To be clear - this is not to be used in a production compiler. But this
lets actual bundles and clauses show up in the BIR, which unblocks work
on final code generation and packing (which can happen more or less in
parallel to NIR->BIR, optimization, register allocation, and writing an
actual scheduling).

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4097>
diff --git a/src/panfrost/bifrost/compiler.h b/src/panfrost/bifrost/compiler.h
index de417fb..3b27940 100644
--- a/src/panfrost/bifrost/compiler.h
+++ b/src/panfrost/bifrost/compiler.h
@@ -308,11 +308,8 @@
 
         /* If true, uses clauses; if false, uses instructions */
         bool scheduled;
-
-        union {
-                struct list_head instructions; /* pre-schedule, list of bi_instructions */
-                struct list_head clauses; /* list of bi_clause */
-        };
+        struct list_head instructions; /* pre-schedule, list of bi_instructions */
+        struct list_head clauses; /* list of bi_clause */
 
         /* Control flow graph */
         struct set *predecessors;
@@ -486,4 +483,8 @@
 bool bi_has_source_mods(bi_instruction *ins);
 bool bi_is_src_swizzled(bi_instruction *ins, unsigned s);
 
+/* BIR passes */
+
+void bi_schedule(bi_context *ctx);
+
 #endif