Mesa (master): radeon/llvm: Lower RETFLAG DAG Node to S_ENDPGM on SI

Tom Stellard tstellar at kemper.freedesktop.org
Thu Aug 23 15:13:32 UTC 2012


Module: Mesa
Branch: master
Commit: 3f9b6aa0f467b8d918ce277697db2f42abe1cf4c
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3f9b6aa0f467b8d918ce277697db2f42abe1cf4c

Author: Tom Stellard <thomas.stellard at amd.com>
Date:   Fri Aug 17 19:07:37 2012 +0000

radeon/llvm: Lower RETFLAG DAG Node to S_ENDPGM on SI

---

 src/gallium/drivers/radeon/AMDILInstrInfo.td   |    7 -------
 src/gallium/drivers/radeon/R600Instructions.td |    8 ++++++++
 src/gallium/drivers/radeon/SIInstructions.td   |    5 ++++-
 3 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/src/gallium/drivers/radeon/AMDILInstrInfo.td b/src/gallium/drivers/radeon/AMDILInstrInfo.td
index b683e49..779566d 100644
--- a/src/gallium/drivers/radeon/AMDILInstrInfo.td
+++ b/src/gallium/drivers/radeon/AMDILInstrInfo.td
@@ -223,13 +223,6 @@ let isTerminator = 1, usesCustomInserter = 1 in {
       [(br bb:$target)]>;
   defm BRANCH_COND : BranchConditional<IL_brcond>;
 }
-//===---------------------------------------------------------------------===//
-// return instructions
-//===---------------------------------------------------------------------===//
-let isTerminator = 1, isReturn = 1, isBarrier = 1, hasCtrlDep = 1 in {
-  def RETURN          : ILFormat<(outs), (ins variable_ops),
-      "RETURN", [(IL_retflag)]>;
-}
 
 //===---------------------------------------------------------------------===//
 // Flow and Program control Instructions
diff --git a/src/gallium/drivers/radeon/R600Instructions.td b/src/gallium/drivers/radeon/R600Instructions.td
index 9651b85..84f839e 100644
--- a/src/gallium/drivers/radeon/R600Instructions.td
+++ b/src/gallium/drivers/radeon/R600Instructions.td
@@ -1213,6 +1213,14 @@ def MASK_WRITE : AMDGPUShaderInst <
 
 } // End usesCustomInserter = 1
 
+//===---------------------------------------------------------------------===//
+// return instruction
+//===---------------------------------------------------------------------===//
+let isTerminator = 1, isReturn = 1, isBarrier = 1, hasCtrlDep = 1 in {
+  def RETURN          : ILFormat<(outs), (ins variable_ops),
+      "RETURN", [(IL_retflag)]>;
+}
+
 //===----------------------------------------------------------------------===//
 // ISel Patterns
 //===----------------------------------------------------------------------===//
diff --git a/src/gallium/drivers/radeon/SIInstructions.td b/src/gallium/drivers/radeon/SIInstructions.td
index 152d735..f09d604 100644
--- a/src/gallium/drivers/radeon/SIInstructions.td
+++ b/src/gallium/drivers/radeon/SIInstructions.td
@@ -595,8 +595,11 @@ def V_INTERP_MOV_F32 : VINTRP <
 
 let isTerminator = 1 in {
 
-def S_ENDPGM : SOPP <0x00000001, (ins), "S_ENDPGM", []> {
+def S_ENDPGM : SOPP <0x00000001, (ins), "S_ENDPGM",
+  [(IL_retflag)]> {
   let SIMM16 = 0;
+  let isBarrier = 1;
+  let hasCtrlDep = 1;
 }
 
 let isBranch = 1 in {




More information about the mesa-commit mailing list