Mesa (main): aco: Separate LLVM/CLRX asm printers more cleanly

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Oct 1 09:05:43 UTC 2021


Module: Mesa
Branch: main
Commit: ef48887a9e6d6bf4034ebb62164448403bf57130
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ef48887a9e6d6bf4034ebb62164448403bf57130

Author: Tony Wasserka <tony.wasserka at gmx.de>
Date:   Fri Jun 25 19:42:32 2021 +0200

aco: Separate LLVM/CLRX asm printers more cleanly

Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11319>

---

 src/amd/compiler/aco_print_asm.cpp | 25 ++++++++++++++++---------
 1 file changed, 16 insertions(+), 9 deletions(-)

diff --git a/src/amd/compiler/aco_print_asm.cpp b/src/amd/compiler/aco_print_asm.cpp
index dcc7c4bc747..0d6cf856330 100644
--- a/src/amd/compiler/aco_print_asm.cpp
+++ b/src/amd/compiler/aco_print_asm.cpp
@@ -41,7 +41,7 @@ namespace {
  * for GFX6-GFX7 if found on the system, this is better than nothing.
  */
 bool
-print_asm_gfx6_gfx7(Program* program, std::vector<uint32_t>& binary, FILE* output)
+print_asm_clrx(Program* program, std::vector<uint32_t>& binary, FILE* output)
 {
 #ifdef _WIN32
    return true;
@@ -152,17 +152,10 @@ disasm_instr(chip_class chip, LLVMDisasmContextRef disasm, uint32_t* binary, uns
 
    return std::make_pair(invalid, size);
 }
-} /* end namespace */
 
 bool
-print_asm(Program* program, std::vector<uint32_t>& binary, unsigned exec_size, FILE* output)
+print_asm_llvm(Program* program, std::vector<uint32_t>& binary, unsigned exec_size, FILE* output)
 {
-   if (program->chip_class <= GFX7) {
-      /* Do not abort if clrxdisasm isn't found. */
-      print_asm_gfx6_gfx7(program, binary, output);
-      return false;
-   }
-
    std::vector<bool> referenced_blocks(program->blocks.size());
    referenced_blocks[0] = true;
    for (Block& block : program->blocks) {
@@ -255,5 +248,19 @@ print_asm(Program* program, std::vector<uint32_t>& binary, unsigned exec_size, F
 
    return invalid;
 }
+} /* end namespace */
+
+/* Returns true on failure */
+bool
+print_asm(Program* program, std::vector<uint32_t>& binary, unsigned exec_size, FILE* output)
+{
+   if (program->chip_class <= GFX7) {
+      /* Do not abort if clrxdisasm isn't found. */
+      print_asm_clrx(program, binary, output);
+      return false;
+   } else {
+      return print_asm_llvm(program, binary, exec_size, output);
+   }
+}
 
 } // namespace aco



More information about the mesa-commit mailing list