aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Lejeune <vljn@ovi.com>2013-04-17 15:17:39 +0000
committerVincent Lejeune <vljn@ovi.com>2013-04-17 15:17:39 +0000
commit26ebd7aafcd47f41bfeb57b7b396af6deb8bbbe6 (patch)
treef8ffa3bb3ec5057f32834f3a9bb6413dec9b3c9c
parent58df169e82a933c36d85bf3d979741ac1535044f (diff)
downloadexternal_llvm-26ebd7aafcd47f41bfeb57b7b396af6deb8bbbe6.zip
external_llvm-26ebd7aafcd47f41bfeb57b7b396af6deb8bbbe6.tar.gz
external_llvm-26ebd7aafcd47f41bfeb57b7b396af6deb8bbbe6.tar.bz2
R600: Make Export Instruction not duplicable
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179686 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/R600/R600Instructions.td4
-rw-r--r--test/CodeGen/R600/jump_address.ll4
2 files changed, 6 insertions, 2 deletions
diff --git a/lib/Target/R600/R600Instructions.td b/lib/Target/R600/R600Instructions.td
index 1408966..da8228d 100644
--- a/lib/Target/R600/R600Instructions.td
+++ b/lib/Target/R600/R600Instructions.td
@@ -738,7 +738,9 @@ multiclass SteamOutputExportPattern<Instruction ExportInst,
4095, imm:$mask, buf3inst, 0)>;
}
-let usesCustomInserter = 1 in {
+// Export Instructions should not be duplicated by TailDuplication pass
+// (which assumes that duplicable instruction are affected by exec mask)
+let usesCustomInserter = 1, isNotDuplicable = 1 in {
class ExportSwzInst : InstR600ISA<(
outs),
diff --git a/test/CodeGen/R600/jump_address.ll b/test/CodeGen/R600/jump_address.ll
index cd35bff..ae9c8bb 100644
--- a/test/CodeGen/R600/jump_address.ll
+++ b/test/CodeGen/R600/jump_address.ll
@@ -1,6 +1,8 @@
;RUN: llc < %s -march=r600 -mcpu=redwood | FileCheck %s
-; CHECK: JUMP @4
+; CHECK: JUMP @3
+; CHECK: EXPORT
+; CHECK-NOT: EXPORT
define void @main() #0 {
main_body: