summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAsaf Badouh <asaf.badouh@intel.com>2016-05-23 14:04:17 +0000
committerAsaf Badouh <asaf.badouh@intel.com>2016-05-23 14:04:17 +0000
commitd32e4c9f0d6fb8a7884d84e5c2c669f2b73b8f9f (patch)
treeb6199908fd02118d4f91a2a81dbeea4f534ad78e
parent7d68c2604a2ed40c92c2c55380de9290631d042c (diff)
downloadbcm5719-llvm-d32e4c9f0d6fb8a7884d84e5c2c669f2b73b8f9f.tar.gz
bcm5719-llvm-d32e4c9f0d6fb8a7884d84e5c2c669f2b73b8f9f.zip
[X86][RTM] _xabort() should not have "noreturn" attribute
Differential Revision: http://reviews.llvm.org/D20518 llvm-svn: 270437
-rw-r--r--llvm/include/llvm/IR/IntrinsicsX86.td2
-rw-r--r--llvm/test/CodeGen/X86/rtm.ll18
2 files changed, 17 insertions, 3 deletions
diff --git a/llvm/include/llvm/IR/IntrinsicsX86.td b/llvm/include/llvm/IR/IntrinsicsX86.td
index 7e7b1013fe1..9643eeb66fd 100644
--- a/llvm/include/llvm/IR/IntrinsicsX86.td
+++ b/llvm/include/llvm/IR/IntrinsicsX86.td
@@ -4995,7 +4995,7 @@ let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
def int_x86_xend : GCCBuiltin<"__builtin_ia32_xend">,
Intrinsic<[], [], []>;
def int_x86_xabort : GCCBuiltin<"__builtin_ia32_xabort">,
- Intrinsic<[], [llvm_i8_ty], [IntrNoReturn]>;
+ Intrinsic<[], [llvm_i8_ty], []>;
def int_x86_xtest : GCCBuiltin<"__builtin_ia32_xtest">,
Intrinsic<[llvm_i32_ty], [], []>;
}
diff --git a/llvm/test/CodeGen/X86/rtm.ll b/llvm/test/CodeGen/X86/rtm.ll
index 76eb9514f02..fb06cac45ff 100644
--- a/llvm/test/CodeGen/X86/rtm.ll
+++ b/llvm/test/CodeGen/X86/rtm.ll
@@ -2,7 +2,8 @@
declare i32 @llvm.x86.xbegin() nounwind
declare void @llvm.x86.xend() nounwind
-declare void @llvm.x86.xabort(i8) noreturn nounwind
+declare void @llvm.x86.xabort(i8) nounwind
+declare void @f1()
define i32 @test_xbegin() nounwind uwtable {
entry:
@@ -24,7 +25,20 @@ entry:
define void @test_xabort() nounwind uwtable {
entry:
tail call void @llvm.x86.xabort(i8 2)
- unreachable
+ ret void
; CHECK: test_xabort
; CHECK: xabort $2
}
+
+define void @f2(i32 %x) nounwind uwtable {
+entry:
+ %x.addr = alloca i32, align 4
+ store i32 %x, i32* %x.addr, align 4
+ call void @llvm.x86.xabort(i8 1)
+ call void @f1()
+ ret void
+; CHECK-LABEL: f2
+; CHECK: xabort $1
+; CHECK: callq f1
+}
+ \ No newline at end of file
OpenPOWER on IntegriCloud