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