diff options
author | Alyssa Rosenzweig <[email protected]> | 2019-05-22 04:33:21 +0000 |
---|---|---|
committer | Alyssa Rosenzweig <[email protected]> | 2019-06-04 20:14:50 +0000 |
commit | 3c7abbfbe8d031bd8f3248636e94af3c9dbe1a7d (patch) | |
tree | a7d56dd8b9883cced264670f84e6c00c56197df7 /src/gallium/drivers/panfrost/meson.build | |
parent | 0524ab9c37f97b096ca971cd7eaf2861e537268d (diff) |
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 <[email protected]>
Reviewed-by: Ryan Houdek <[email protected]>
Diffstat (limited to 'src/gallium/drivers/panfrost/meson.build')
-rw-r--r-- | src/gallium/drivers/panfrost/meson.build | 2 |
1 files changed, 2 insertions, 0 deletions
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', |