From 3c7abbfbe8d031bd8f3248636e94af3c9dbe1a7d Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Wed, 22 May 2019 04:33:21 +0000 Subject: panfrost/midgard: Refactor schedule/emit pipeline First, this moves the scheduler and emitter out of midgard_compile.c into their own dedicated files. More interestingly, this slims down midgard_bundle to be essentially an array of _pointers_ to midgard_instructions (plus some bundling metadata), rather than the instructions and packing themselves. The difference is critical, as it means that (within reason, i.e. as long as it doesn't affect the schedule) midgard_instrucitons can now be modified _after_ scheduling while having changes updated in the final binary. On a more philosophical level, this removes an IR. Previously, the IR before scheduling (MIR) was separate from the IR after scheduling (post-schedule MIR), requiring a separate set of utilities to traverse, using different idioms. There was no good reason for this, and it restricts our flexibility with the RA. So unify all the things! Signed-off-by: Alyssa Rosenzweig Reviewed-by: Ryan Houdek --- src/gallium/drivers/panfrost/meson.build | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/gallium/drivers/panfrost/meson.build') diff --git a/src/gallium/drivers/panfrost/meson.build b/src/gallium/drivers/panfrost/meson.build index fb92954854a..5adf24282c4 100644 --- a/src/gallium/drivers/panfrost/meson.build +++ b/src/gallium/drivers/panfrost/meson.build @@ -28,6 +28,8 @@ files_panfrost = files( 'midgard/midgard_compile.c', 'midgard/midgard_print.c', + 'midgard/midgard_schedule.c', + 'midgard/midgard_emit.c', 'midgard/midgard_ra.c', 'midgard/midgard_liveness.c', 'midgard/midgard_ops.c', -- cgit v1.2.3