summaryrefslogtreecommitdiff
path: root/test/Instrumentation/MemorySanitizer
diff options
context:
space:
mode:
authorEvgeniy Stepanov <eugeni.stepanov@gmail.com>2013-01-28 11:42:28 +0000
committerEvgeniy Stepanov <eugeni.stepanov@gmail.com>2013-01-28 11:42:28 +0000
commit647c66e24dc913db8e3e038d2fe6351bd98941a2 (patch)
tree18a9857e74d0c3b61edecccf3a2bc16add0773ed /test/Instrumentation/MemorySanitizer
parentccfc295b9d8f895432910a140d20446b5bafc4c4 (diff)
downloadllvm-647c66e24dc913db8e3e038d2fe6351bd98941a2.tar.gz
llvm-647c66e24dc913db8e3e038d2fe6351bd98941a2.tar.bz2
llvm-647c66e24dc913db8e3e038d2fe6351bd98941a2.tar.xz
[msan] Mostly disable msan-handle-icmp-exact.
It is way too slow. Change the default option value to 0. Always do exact shadow propagation for unsigned ICmp with constants, it is cheap (under 1% cpu time) and required for correctness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173682 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Instrumentation/MemorySanitizer')
-rw-r--r--test/Instrumentation/MemorySanitizer/msan_basic.ll31
1 files changed, 11 insertions, 20 deletions
diff --git a/test/Instrumentation/MemorySanitizer/msan_basic.ll b/test/Instrumentation/MemorySanitizer/msan_basic.ll
index 16453c5255..60f946fbd5 100644
--- a/test/Instrumentation/MemorySanitizer/msan_basic.ll
+++ b/test/Instrumentation/MemorySanitizer/msan_basic.ll
@@ -323,8 +323,6 @@ define zeroext i1 @ICmpSLT(i32 %x) nounwind uwtable readnone {
; CHECK-NOT: call void @__msan_warning
; CHECK: icmp slt
; CHECK-NOT: call void @__msan_warning
-; CHECK: icmp slt
-; CHECK-NOT: call void @__msan_warning
; CHECK: ret i1
define zeroext i1 @ICmpSGE(i32 %x) nounwind uwtable readnone {
@@ -333,9 +331,7 @@ define zeroext i1 @ICmpSGE(i32 %x) nounwind uwtable readnone {
}
; CHECK: @ICmpSGE
-; CHECK: icmp sge
-; CHECK-NOT: call void @__msan_warning
-; CHECK: icmp sge
+; CHECK: icmp slt
; CHECK-NOT: call void @__msan_warning
; CHECK: icmp sge
; CHECK-NOT: call void @__msan_warning
@@ -347,9 +343,7 @@ define zeroext i1 @ICmpSGT(i32 %x) nounwind uwtable readnone {
}
; CHECK: @ICmpSGT
-; CHECK: icmp sgt
-; CHECK-NOT: call void @__msan_warning
-; CHECK: icmp sgt
+; CHECK: icmp slt
; CHECK-NOT: call void @__msan_warning
; CHECK: icmp sgt
; CHECK-NOT: call void @__msan_warning
@@ -361,9 +355,7 @@ define zeroext i1 @ICmpSLE(i32 %x) nounwind uwtable readnone {
}
; CHECK: @ICmpSLE
-; CHECK: icmp sle
-; CHECK-NOT: call void @__msan_warning
-; CHECK: icmp sle
+; CHECK: icmp slt
; CHECK-NOT: call void @__msan_warning
; CHECK: icmp sle
; CHECK-NOT: call void @__msan_warning
@@ -381,27 +373,26 @@ define <2 x i1> @ICmpSLT_vector(<2 x i32*> %x) nounwind uwtable readnone {
; CHECK: @ICmpSLT_vector
; CHECK: icmp slt <2 x i64>
; CHECK-NOT: call void @__msan_warning
-; CHECK: icmp slt <2 x i64>
-; CHECK-NOT: call void @__msan_warning
; CHECK: icmp slt <2 x i32*>
; CHECK-NOT: call void @__msan_warning
; CHECK: ret <2 x i1>
-; Check that we propagate shadow for arbitrary relational comparisons
+; Check that we propagate shadow for unsigned relational comparisons with
+; constants
-define zeroext i1 @ICmpSLENonZero(i32 %x, i32 %y) nounwind uwtable readnone {
+define zeroext i1 @ICmpUGTConst(i32 %x) nounwind uwtable readnone {
entry:
- %cmp = icmp sle i32 %x, %y
+ %cmp = icmp ugt i32 %x, 7
ret i1 %cmp
}
-; CHECK: @ICmpSLENonZero
-; CHECK: icmp sle i32
+; CHECK: @ICmpUGTConst
+; CHECK: icmp ugt i32
; CHECK-NOT: call void @__msan_warning
-; CHECK: icmp sle i32
+; CHECK: icmp ugt i32
; CHECK-NOT: call void @__msan_warning
-; CHECK: icmp sle i32
+; CHECK: icmp ugt i32
; CHECK-NOT: call void @__msan_warning
; CHECK: ret i1