summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorTim Northover <tnorthover@apple.com>2016-07-29 22:41:55 +0000
committerTim Northover <tnorthover@apple.com>2016-07-29 22:41:55 +0000
commit5fc93b75d941972e7879840ece9bac4bf49688f1 (patch)
tree60bd20e0b3f13357d5cc63a1825a64df593c3342 /llvm
parent5fb414d87051004410a42096b23cb7a58e2ed881 (diff)
downloadbcm5719-llvm-5fc93b75d941972e7879840ece9bac4bf49688f1.tar.gz
bcm5719-llvm-5fc93b75d941972e7879840ece9bac4bf49688f1.zip
GlobalISel: translate "unreachable" (into nothing)
Easiest instruction ever! llvm-svn: 277225
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp3
-rw-r--r--llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll10
2 files changed, 13 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
index 80ec1b529d3..9ead159c849 100644
--- a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
@@ -269,6 +269,9 @@ bool IRTranslator::translate(const Instruction &Inst) {
case Instruction::Alloca:
return translateStaticAlloca(cast<AllocaInst>(Inst));
+ case Instruction::Unreachable:
+ return true;
+
default:
llvm_unreachable("Opcode not supported");
}
diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll b/llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll
index 28005fad460..892838f49dd 100644
--- a/llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll
+++ b/llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll
@@ -271,3 +271,13 @@ define void @intrinsics(i32 %cur, i32 %bits) {
call void @llvm.aarch64.neon.st2.v8i8.p0i8(<8 x i8> %vec, <8 x i8> %vec, i8* %ptr)
ret void
}
+
+
+; CHECK-LABEL: name: unreachable
+; CHECK: G_ADD
+; CHECK-NEXT: {{^$}}
+; CHECK-NEXT: ...
+define void @unreachable(i32 %a) {
+ %sum = add i32 %a, %a
+ unreachable
+}
OpenPOWER on IntegriCloud