On 21.01.2016 12:35, Axel Davy wrote:
Add a debug option to select the LLVM SI Machine Scheduler.
R600_DEBUG=sisched

Signed-off-by: Axel Davy <axel.d...@ens.fr>
---
The corresponding llvm patch is on llvm master,
and should land soon for 3.8 branch

I'd like to wait with pushing this until it has landed. Once it has,

Reviewed-by: Nicolai Hähnle <nicolai.haeh...@amd.com>

  src/gallium/drivers/radeon/r600_pipe_common.c | 1 +
  src/gallium/drivers/radeon/r600_pipe_common.h | 1 +
  src/gallium/drivers/radeonsi/si_pipe.c        | 6 +++++-
  3 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/radeon/r600_pipe_common.c 
b/src/gallium/drivers/radeon/r600_pipe_common.c
index e926f56..a9ce7b1 100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.c
+++ b/src/gallium/drivers/radeon/r600_pipe_common.c
@@ -389,6 +389,7 @@ static const struct debug_named_value 
common_debug_options[] = {
        { "nodcc", DBG_NO_DCC, "Disable DCC." },
        { "nodccclear", DBG_NO_DCC_CLEAR, "Disable DCC fast clear." },
        { "norbplus", DBG_NO_RB_PLUS, "Disable RB+ on Stoney." },
+       { "sisched", DBG_SI_SCHED, "Enable LLVM SI Machine Instruction 
Scheduler." },

        DEBUG_NAMED_VALUE_END /* must be last */
  };
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.h 
b/src/gallium/drivers/radeon/r600_pipe_common.h
index 27f6e98..3020421 100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.h
+++ b/src/gallium/drivers/radeon/r600_pipe_common.h
@@ -87,6 +87,7 @@
  #define DBG_NO_DCC            (1llu << 43)
  #define DBG_NO_DCC_CLEAR      (1llu << 44)
  #define DBG_NO_RB_PLUS                (1llu << 45)
+#define DBG_SI_SCHED           (1llu << 46)

  #define R600_MAP_BUFFER_ALIGNMENT 64

diff --git a/src/gallium/drivers/radeonsi/si_pipe.c 
b/src/gallium/drivers/radeonsi/si_pipe.c
index f6ff4a8..51bcba7 100644
--- a/src/gallium/drivers/radeonsi/si_pipe.c
+++ b/src/gallium/drivers/radeonsi/si_pipe.c
@@ -215,7 +215,11 @@ static struct pipe_context *si_create_context(struct 
pipe_screen *screen,
        r600_target = radeon_llvm_get_r600_target(triple);
        sctx->tm = LLVMCreateTargetMachine(r600_target, triple,
                                           
r600_get_llvm_processor_name(sscreen->b.family),
-                                          "+DumpCode,+vgpr-spilling",
+#if HAVE_LLVM >= 0x0308
+                                          sscreen->b.debug_flags & 
DBG_SI_SCHED ?
+                                               
"+DumpCode,+vgpr-spilling,+si-scheduler" :
+#endif
+                                               "+DumpCode,+vgpr-spilling",
                                           LLVMCodeGenLevelDefault,
                                           LLVMRelocDefault,
                                           LLVMCodeModelDefault);

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to