summaryrefslogtreecommitdiffstats
path: root/src/amd/compiler
diff options
context:
space:
mode:
authorRhys Perry <[email protected]>2019-10-10 12:17:04 +0100
committerRhys Perry <[email protected]>2019-10-10 20:02:36 +0000
commit2026ff5165ad0da1ff7680fdb579702d31097a6a (patch)
treebcab58177a4f79204ad2f4117f54197ada30dcb7 /src/amd/compiler
parent283eda71cf457294ab5388b12ab7d740201c0f99 (diff)
aco: update print_ir
Mostly adds GFX10 stuff. Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]> Reviewed-By: Timur Kristóf <[email protected]>
Diffstat (limited to 'src/amd/compiler')
-rw-r--r--src/amd/compiler/aco_print_ir.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/amd/compiler/aco_print_ir.cpp b/src/amd/compiler/aco_print_ir.cpp
index 517ddc235ce..f641a21da34 100644
--- a/src/amd/compiler/aco_print_ir.cpp
+++ b/src/amd/compiler/aco_print_ir.cpp
@@ -2,6 +2,7 @@
#include "aco_builder.h"
#include "sid.h"
+#include "ac_shader_util.h"
namespace aco {
@@ -205,6 +206,8 @@ static void print_instr_format_specific(struct Instruction *instr, FILE *output)
SMEM_instruction* smem = static_cast<SMEM_instruction*>(instr);
if (smem->glc)
fprintf(output, " glc");
+ if (smem->dlc)
+ fprintf(output, " dlc");
if (smem->nv)
fprintf(output, " nv");
print_barrier_reorder(smem->can_reorder, smem->barrier, output);
@@ -235,6 +238,8 @@ static void print_instr_format_specific(struct Instruction *instr, FILE *output)
fprintf(output, " idxen");
if (mubuf->glc)
fprintf(output, " glc");
+ if (mubuf->dlc)
+ fprintf(output, " dlc");
if (mubuf->slc)
fprintf(output, " slc");
if (mubuf->tfe)
@@ -257,10 +262,38 @@ static void print_instr_format_specific(struct Instruction *instr, FILE *output)
mimg->dmask & 0x2 ? "y" : "",
mimg->dmask & 0x4 ? "z" : "",
mimg->dmask & 0x8 ? "w" : "");
+ switch (mimg->dim) {
+ case ac_image_1d:
+ fprintf(output, " 1d");
+ break;
+ case ac_image_2d:
+ fprintf(output, " 2d");
+ break;
+ case ac_image_3d:
+ fprintf(output, " 3d");
+ break;
+ case ac_image_cube:
+ fprintf(output, " cube");
+ break;
+ case ac_image_1darray:
+ fprintf(output, " 1darray");
+ break;
+ case ac_image_2darray:
+ fprintf(output, " 2darray");
+ break;
+ case ac_image_2dmsaa:
+ fprintf(output, " 2dmsaa");
+ break;
+ case ac_image_2darraymsaa:
+ fprintf(output, " 2darraymsaa");
+ break;
+ }
if (mimg->unrm)
fprintf(output, " unrm");
if (mimg->glc)
fprintf(output, " glc");
+ if (mimg->dlc)
+ fprintf(output, " dlc");
if (mimg->slc)
fprintf(output, " slc");
if (mimg->tfe)
@@ -330,6 +363,8 @@ static void print_instr_format_specific(struct Instruction *instr, FILE *output)
fprintf(output, " offset:%u", flat->offset);
if (flat->glc)
fprintf(output, " glc");
+ if (flat->dlc)
+ fprintf(output, " dlc");
if (flat->slc)
fprintf(output, " slc");
if (flat->lds)
@@ -377,6 +412,8 @@ static void print_instr_format_specific(struct Instruction *instr, FILE *output)
fprintf(output, " idxen");
if (mtbuf->glc)
fprintf(output, " glc");
+ if (mtbuf->dlc)
+ fprintf(output, " dlc");
if (mtbuf->slc)
fprintf(output, " slc");
if (mtbuf->tfe)
@@ -528,6 +565,8 @@ static void print_block_kind(uint16_t kind, FILE *output)
fprintf(output, "discard_if, ");
if (kind & block_kind_needs_lowering)
fprintf(output, "needs_lowering, ");
+ if (kind & block_kind_uses_demote)
+ fprintf(output, "uses_demote, ");
}
void aco_print_block(const struct Block* block, FILE *output)