aco: Initial commit of independent AMD compiler
authorDaniel Schürmann <daniel@schuermann.dev>
Tue, 17 Sep 2019 11:22:17 +0000 (13:22 +0200)
committerDaniel Schürmann <daniel@schuermann.dev>
Thu, 19 Sep 2019 10:10:00 +0000 (12:10 +0200)
commit93c8ebfa780ebd1495095e794731881aef29e7d3
tree547268dbeabb0d17f14202d4429b3f6abfdb01c5
parent99cbec0a5f463fef4d9c61f34482d9eb00293704
aco: Initial commit of independent AMD compiler

ACO (short for AMD Compiler) is a new compiler backend with the goal to replace
LLVM for Radeon hardware for the RADV driver.

ACO currently supports only VS, PS and CS on VI and Vega.
There are some optimizations missing because of unmerged NIR changes
which may decrease performance.

Full commit history can be found at
https://github.com/daniel-schuermann/mesa/commits/backend

Co-authored-by: Daniel Schürmann <daniel@schuermann.dev>
Co-authored-by: Rhys Perry <pendingchaos02@gmail.com>
Co-authored-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Co-authored-by: Connor Abbott <cwabbott0@gmail.com>
Co-authored-by: Michael Schellenberger Costa <mschellenbergercosta@googlemail.com>
Co-authored-by: Timur Kristóf <timur.kristof@gmail.com>
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
31 files changed:
src/amd/compiler/README [new file with mode: 0644]
src/amd/compiler/aco_assembler.cpp [new file with mode: 0644]
src/amd/compiler/aco_builder_h.py [new file with mode: 0644]
src/amd/compiler/aco_dead_code_analysis.cpp [new file with mode: 0644]
src/amd/compiler/aco_dominance.cpp [new file with mode: 0644]
src/amd/compiler/aco_insert_NOPs.cpp [new file with mode: 0644]
src/amd/compiler/aco_insert_exec_mask.cpp [new file with mode: 0644]
src/amd/compiler/aco_insert_waitcnt.cpp [new file with mode: 0644]
src/amd/compiler/aco_instruction_selection.cpp [new file with mode: 0644]
src/amd/compiler/aco_instruction_selection_setup.cpp [new file with mode: 0644]
src/amd/compiler/aco_interface.cpp [new file with mode: 0644]
src/amd/compiler/aco_interface.h [new file with mode: 0644]
src/amd/compiler/aco_ir.h [new file with mode: 0644]
src/amd/compiler/aco_live_var_analysis.cpp [new file with mode: 0644]
src/amd/compiler/aco_lower_bool_phis.cpp [new file with mode: 0644]
src/amd/compiler/aco_lower_to_hw_instr.cpp [new file with mode: 0644]
src/amd/compiler/aco_opcodes.py [new file with mode: 0644]
src/amd/compiler/aco_opcodes_cpp.py [new file with mode: 0644]
src/amd/compiler/aco_opcodes_h.py [new file with mode: 0644]
src/amd/compiler/aco_opt_value_numbering.cpp [new file with mode: 0644]
src/amd/compiler/aco_optimizer.cpp [new file with mode: 0644]
src/amd/compiler/aco_print_asm.cpp [new file with mode: 0644]
src/amd/compiler/aco_print_ir.cpp [new file with mode: 0644]
src/amd/compiler/aco_reduce_assign.cpp [new file with mode: 0644]
src/amd/compiler/aco_register_allocation.cpp [new file with mode: 0644]
src/amd/compiler/aco_scheduler.cpp [new file with mode: 0644]
src/amd/compiler/aco_spill.cpp [new file with mode: 0644]
src/amd/compiler/aco_ssa_elimination.cpp [new file with mode: 0644]
src/amd/compiler/aco_util.h [new file with mode: 0644]
src/amd/compiler/aco_validate.cpp [new file with mode: 0644]
src/amd/compiler/meson.build [new file with mode: 0644]