aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/R600/R600EmitClauseMarkers.cpp
diff options
context:
space:
mode:
authorTom Stellard <thomas.stellard@amd.com>2013-06-28 15:46:59 +0000
committerTom Stellard <thomas.stellard@amd.com>2013-06-28 15:46:59 +0000
commitcedcfee405a22b245e869abe8609f094df34085a (patch)
tree72e6d69624a9c8a9e56c419f2e927920c1af05d9 /lib/Target/R600/R600EmitClauseMarkers.cpp
parent7e9381951eb4dadf9c59257786416ac51a6a6c09 (diff)
downloadexternal_llvm-cedcfee405a22b245e869abe8609f094df34085a.zip
external_llvm-cedcfee405a22b245e869abe8609f094df34085a.tar.gz
external_llvm-cedcfee405a22b245e869abe8609f094df34085a.tar.bz2
R600: Add support for GROUP_BARRIER instruction
Reviewed-by: Vincent Lejeune<vljn at ovi.com> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185161 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/R600/R600EmitClauseMarkers.cpp')
-rw-r--r--lib/Target/R600/R600EmitClauseMarkers.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/Target/R600/R600EmitClauseMarkers.cpp b/lib/Target/R600/R600EmitClauseMarkers.cpp
index ff5ce5a..0aea2d7 100644
--- a/lib/Target/R600/R600EmitClauseMarkers.cpp
+++ b/lib/Target/R600/R600EmitClauseMarkers.cpp
@@ -177,7 +177,14 @@ private:
AluInstCount ++;
continue;
}
- if (I->getOpcode() == AMDGPU::KILLGT) {
+ // XXX: GROUP_BARRIER instructions cannot be in the same ALU clause as:
+ //
+ // * KILL or INTERP instructions
+ // * Any instruction that sets UPDATE_EXEC_MASK or UPDATE_PRED bits
+ // * Uses waterfalling (i.e. INDEX_MODE = AR.X)
+ //
+ // XXX: These checks have not been implemented yet.
+ if (TII->mustBeLastInClause(I->getOpcode())) {
I++;
break;
}