Mesa (master): aco: Initial commit of independent AMD compiler

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Sep 19 10:33:40 UTC 2019


Module: Mesa
Branch: master
Commit: 93c8ebfa780ebd1495095e794731881aef29e7d3
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=93c8ebfa780ebd1495095e794731881aef29e7d3

Author: Daniel Schürmann <daniel at schuermann.dev>
Date:   Tue Sep 17 13:22:17 2019 +0200

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 at schuermann.dev>
Co-authored-by: Rhys Perry <pendingchaos02 at gmail.com>
Co-authored-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Co-authored-by: Connor Abbott <cwabbott0 at gmail.com>
Co-authored-by: Michael Schellenberger Costa <mschellenbergercosta at googlemail.com>
Co-authored-by: Timur Kristóf <timur.kristof at gmail.com>

Acked-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Acked-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>

---

 src/amd/compiler/README                            |   87 +
 src/amd/compiler/aco_assembler.cpp                 |  497 ++
 src/amd/compiler/aco_builder_h.py                  |  400 +
 src/amd/compiler/aco_dead_code_analysis.cpp        |  102 +
 src/amd/compiler/aco_dominance.cpp                 |   93 +
 src/amd/compiler/aco_insert_NOPs.cpp               |  282 +
 src/amd/compiler/aco_insert_exec_mask.cpp          | 1078 +++
 src/amd/compiler/aco_insert_waitcnt.cpp            |  697 ++
 src/amd/compiler/aco_instruction_selection.cpp     | 7621 ++++++++++++++++++++
 .../compiler/aco_instruction_selection_setup.cpp   | 1366 ++++
 src/amd/compiler/aco_interface.cpp                 |  166 +
 src/amd/compiler/aco_interface.h                   |   45 +
 src/amd/compiler/aco_ir.h                          | 1169 +++
 src/amd/compiler/aco_live_var_analysis.cpp         |  243 +
 src/amd/compiler/aco_lower_bool_phis.cpp           |  241 +
 src/amd/compiler/aco_lower_to_hw_instr.cpp         |  765 ++
 src/amd/compiler/aco_opcodes.py                    | 1552 ++++
 src/amd/compiler/aco_opcodes_cpp.py                |   74 +
 src/amd/compiler/aco_opcodes_h.py                  |   47 +
 src/amd/compiler/aco_opt_value_numbering.cpp       |  327 +
 src/amd/compiler/aco_optimizer.cpp                 | 2401 ++++++
 src/amd/compiler/aco_print_asm.cpp                 |  104 +
 src/amd/compiler/aco_print_ir.cpp                  |  575 ++
 src/amd/compiler/aco_reduce_assign.cpp             |  164 +
 src/amd/compiler/aco_register_allocation.cpp       | 1924 +++++
 src/amd/compiler/aco_scheduler.cpp                 |  835 +++
 src/amd/compiler/aco_spill.cpp                     | 1630 +++++
 src/amd/compiler/aco_ssa_elimination.cpp           |  291 +
 src/amd/compiler/aco_util.h                        |  233 +
 src/amd/compiler/aco_validate.cpp                  |  460 ++
 src/amd/compiler/meson.build                       |  103 +
 31 files changed, 25572 insertions(+)

Diff:   http://cgit.freedesktop.org/mesa/mesa/diff/?id=93c8ebfa780ebd1495095e794731881aef29e7d3



More information about the mesa-commit mailing list