agx: Use a transfer graph for parallel copies
authorAlyssa Rosenzweig <alyssa@collabora.com>
Sun, 17 Apr 2022 20:47:37 +0000 (16:47 -0400)
committerAlyssa Rosenzweig <alyssa@rosenzweig.io>
Mon, 2 May 2022 02:00:00 +0000 (22:00 -0400)
commit4fc023ed422622cf6dd9624d9db4119b8db5c494
treeb670fe5b555310893b460d34662e120669208726
parent330ec4260dbd3f5e0188818a10814e292c81d474
agx: Use a transfer graph for parallel copies

Lifted from ir3. Algorithm is the same; the data structures and interface are
lightly modified to decouple from ir3's IR.

Sequentializing parallel copies after RA is tricky. ir3's implementation works
well enough, so I use that one.

Original implementation by Connor Abbott.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16268>
src/asahi/compiler/agx_compiler.h
src/asahi/compiler/agx_lower_parallel_copy.c [new file with mode: 0644]
src/asahi/compiler/agx_register_allocate.c
src/asahi/compiler/meson.build