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