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>
- src/amd/compiler/README 87 additions, 0 deletionssrc/amd/compiler/README
- src/amd/compiler/aco_assembler.cpp 497 additions, 0 deletionssrc/amd/compiler/aco_assembler.cpp
- src/amd/compiler/aco_builder_h.py 400 additions, 0 deletionssrc/amd/compiler/aco_builder_h.py
- src/amd/compiler/aco_dead_code_analysis.cpp 102 additions, 0 deletionssrc/amd/compiler/aco_dead_code_analysis.cpp
- src/amd/compiler/aco_dominance.cpp 93 additions, 0 deletionssrc/amd/compiler/aco_dominance.cpp
- src/amd/compiler/aco_insert_NOPs.cpp 282 additions, 0 deletionssrc/amd/compiler/aco_insert_NOPs.cpp
- src/amd/compiler/aco_insert_exec_mask.cpp 1078 additions, 0 deletionssrc/amd/compiler/aco_insert_exec_mask.cpp
- src/amd/compiler/aco_insert_waitcnt.cpp 697 additions, 0 deletionssrc/amd/compiler/aco_insert_waitcnt.cpp
- src/amd/compiler/aco_instruction_selection.cpp 7621 additions, 0 deletionssrc/amd/compiler/aco_instruction_selection.cpp
- src/amd/compiler/aco_instruction_selection_setup.cpp 1366 additions, 0 deletionssrc/amd/compiler/aco_instruction_selection_setup.cpp
- src/amd/compiler/aco_interface.cpp 166 additions, 0 deletionssrc/amd/compiler/aco_interface.cpp
- src/amd/compiler/aco_interface.h 45 additions, 0 deletionssrc/amd/compiler/aco_interface.h
- src/amd/compiler/aco_ir.h 1169 additions, 0 deletionssrc/amd/compiler/aco_ir.h
- src/amd/compiler/aco_live_var_analysis.cpp 243 additions, 0 deletionssrc/amd/compiler/aco_live_var_analysis.cpp
- src/amd/compiler/aco_lower_bool_phis.cpp 241 additions, 0 deletionssrc/amd/compiler/aco_lower_bool_phis.cpp
- src/amd/compiler/aco_lower_to_hw_instr.cpp 765 additions, 0 deletionssrc/amd/compiler/aco_lower_to_hw_instr.cpp
- src/amd/compiler/aco_opcodes.py 1552 additions, 0 deletionssrc/amd/compiler/aco_opcodes.py
- src/amd/compiler/aco_opcodes_cpp.py 74 additions, 0 deletionssrc/amd/compiler/aco_opcodes_cpp.py
- src/amd/compiler/aco_opcodes_h.py 47 additions, 0 deletionssrc/amd/compiler/aco_opcodes_h.py
- src/amd/compiler/aco_opt_value_numbering.cpp 327 additions, 0 deletionssrc/amd/compiler/aco_opt_value_numbering.cpp