[fast-isel] Add support for selecting @llvm.trap().
authorChad Rosier <mcrosier@apple.com>
Fri, 11 May 2012 21:33:49 +0000 (21:33 +0000)
committerChad Rosier <mcrosier@apple.com>
Fri, 11 May 2012 21:33:49 +0000 (21:33 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156646 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMFastISel.cpp
test/CodeGen/ARM/fast-isel.ll

index 9dff0171c3f43ffc6d2fa06f7e39aafd88acd8c8..97131cd698715bbb2fc08c155769944a21991b6f 100644 (file)
@@ -2443,6 +2443,10 @@ bool ARMFastISel::SelectIntrinsicCall(const IntrinsicInst &I) {
     
     return SelectCall(&I, "memset");
   }
+  case Intrinsic::trap: {
+    BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, TII.get(ARM::TRAP));
+    return true;
+  }
   }
 }
 
index 417e2d9e410ae035548049a74b730fb114fec10c..ecd5fe27a4b7a7326b6f0c18acf343d6a105082a 100644 (file)
@@ -226,3 +226,15 @@ define i32 @urem_fold(i32 %a) nounwind {
   %rem = urem i32 %a, 32
   ret i32 %rem
 }
+
+define i32 @test7() noreturn nounwind  {
+entry:
+; ARM: @test7
+; THUMB: @test7
+; ARM: trap
+; THUMB: trap
+  tail call void @llvm.trap( )
+  unreachable
+}
+
+declare void @llvm.trap() nounwind