diff options
author | Samuel Pitoiset <[email protected]> | 2018-01-19 12:12:02 +0100 |
---|---|---|
committer | Samuel Pitoiset <[email protected]> | 2018-01-22 12:28:33 +0100 |
commit | 33e6e5e6a45a63728053d92c366fe8b320199843 (patch) | |
tree | a5dd61a31210be3d044712e50db41daba522aea6 | |
parent | 525b4f7548462bfc2e82f2d1f04f61ce6854a3c5 (diff) |
radv: add an option that allows to dump pre-optimization ir
With RADV_DEBUG=preoptir.
Signed-off-by: Samuel Pitoiset <[email protected]>
Reviewed-by: Timothy Arceri <[email protected]>
-rw-r--r-- | src/amd/common/ac_nir_to_llvm.c | 3 | ||||
-rw-r--r-- | src/amd/common/ac_nir_to_llvm.h | 1 | ||||
-rw-r--r-- | src/amd/vulkan/radv_debug.h | 1 | ||||
-rw-r--r-- | src/amd/vulkan/radv_device.c | 1 | ||||
-rw-r--r-- | src/amd/vulkan/radv_shader.c | 2 |
5 files changed, 8 insertions, 0 deletions
diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c index 2aef51be855..3d9cb249ad6 100644 --- a/src/amd/common/ac_nir_to_llvm.c +++ b/src/amd/common/ac_nir_to_llvm.c @@ -6848,6 +6848,9 @@ LLVMModuleRef ac_translate_nir_to_llvm(LLVMTargetMachineRef tm, LLVMBuildRetVoid(ctx.builder); + if (options->dump_preoptir) + ac_dump_module(ctx.module); + ac_llvm_finalize_module(&ctx); if (shader_count == 1) diff --git a/src/amd/common/ac_nir_to_llvm.h b/src/amd/common/ac_nir_to_llvm.h index 1737866166e..62ea38be373 100644 --- a/src/amd/common/ac_nir_to_llvm.h +++ b/src/amd/common/ac_nir_to_llvm.h @@ -81,6 +81,7 @@ struct ac_nir_compiler_options { bool unsafe_math; bool supports_spill; bool clamp_shadow_reference; + bool dump_preoptir; enum radeon_family family; enum chip_class chip_class; }; diff --git a/src/amd/vulkan/radv_debug.h b/src/amd/vulkan/radv_debug.h index 5b37bfe0847..804f620690d 100644 --- a/src/amd/vulkan/radv_debug.h +++ b/src/amd/vulkan/radv_debug.h @@ -42,6 +42,7 @@ enum { RADV_DEBUG_ZERO_VRAM = 0x1000, RADV_DEBUG_SYNC_SHADERS = 0x2000, RADV_DEBUG_NO_SISCHED = 0x4000, + RADV_DEBUG_PREOPTIR = 0x8000, }; enum { diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c index b5ae1032392..4463e6945ef 100644 --- a/src/amd/vulkan/radv_device.c +++ b/src/amd/vulkan/radv_device.c @@ -336,6 +336,7 @@ static const struct debug_control radv_debug_options[] = { {"zerovram", RADV_DEBUG_ZERO_VRAM}, {"syncshaders", RADV_DEBUG_SYNC_SHADERS}, {"nosisched", RADV_DEBUG_NO_SISCHED}, + {"preoptir", RADV_DEBUG_PREOPTIR}, {NULL, 0} }; diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c index 3bcaac168ad..620effe50e6 100644 --- a/src/amd/vulkan/radv_shader.c +++ b/src/amd/vulkan/radv_shader.c @@ -476,6 +476,8 @@ shader_variant_create(struct radv_device *device, options->family = chip_family; options->chip_class = device->physical_device->rad_info.chip_class; + options->dump_preoptir = radv_can_dump_shader(device, module) && + device->instance->debug_flags & RADV_DEBUG_PREOPTIR; if (options->supports_spill) tm_options |= AC_TM_SUPPORTS_SPILL; |