Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(329)

Unified Diff: test/Transforms/MinSFI/sandbox-memory-accesses.ll

Issue 1151093004: Changes from 3.7 merge to files not in upstream (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-llvm.git@master
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: test/Transforms/MinSFI/sandbox-memory-accesses.ll
diff --git a/test/Transforms/MinSFI/sandbox-memory-accesses.ll b/test/Transforms/MinSFI/sandbox-memory-accesses.ll
index b6c47855ccad0d8ab4fd2fc583b8125448bd9725..f9082b0be04d929e6e33767204de9110b38da3ad 100644
--- a/test/Transforms/MinSFI/sandbox-memory-accesses.ll
+++ b/test/Transforms/MinSFI/sandbox-memory-accesses.ll
@@ -1,9 +1,9 @@
; RUN: opt %s -minsfi-sandbox-memory-accesses -S | FileCheck %s
-; RUN: opt %s -minsfi-ptrsize=20 -minsfi-sandbox-memory-accesses -S \
-; RUN: | FileCheck %s -check-prefix=CHECK-MASK
+; RUN: opt %s -minsfi-ptrsize=20 -minsfi-sandbox-memory-accesses -S \
+; RUN: | FileCheck %s -check-prefix=CHECK-MASK
!llvm.module.flags = !{!0}
-!0 = metadata !{i32 1, metadata !"Debug Info Version", i32 2}
+!0 = !{i32 1, !"Debug Info Version", i32 3}
target datalayout = "p:32:32:32"
target triple = "le32-unknown-nacl"
@@ -42,28 +42,28 @@ define i32 @test_no_sandbox(i32 %x, i32 %y) {
; CHECK-NEXT: }
define i32 @test_load(i32* %ptr) {
- %val = load i32* %ptr
+ %val = load i32, i32* %ptr
ret i32 %val
}
; CHECK-LABEL: define i32 @test_load(i32* %ptr) {
-; CHECK-NEXT: %mem_base = load i64* @__sfi_memory_base
+; CHECK-NEXT: %mem_base = load i64, i64* @__sfi_memory_base
; CHECK-NEXT: %1 = ptrtoint i32* %ptr to i32
; CHECK-NEXT: %2 = zext i32 %1 to i64
; CHECK-NEXT: %3 = add i64 %mem_base, %2
; CHECK-NEXT: %4 = inttoptr i64 %3 to i32*
-; CHECK-NEXT: %val = load i32* %4
+; CHECK-NEXT: %val = load i32, i32* %4
; CHECK-NEXT: ret i32 %val
; CHECK-NEXT: }
; CHECK-MASK-LABEL: define i32 @test_load(i32* %ptr) {
-; CHECK-MASK-NEXT: %mem_base = load i64* @__sfi_memory_base
+; CHECK-MASK-NEXT: %mem_base = load i64, i64* @__sfi_memory_base
; CHECK-MASK-NEXT: %1 = ptrtoint i32* %ptr to i32
; CHECK-MASK-NEXT: %2 = and i32 %1, 1048575
; CHECK-MASK-NEXT: %3 = zext i32 %2 to i64
; CHECK-MASK-NEXT: %4 = add i64 %mem_base, %3
; CHECK-MASK-NEXT: %5 = inttoptr i64 %4 to i32*
-; CHECK-MASK-NEXT: %val = load i32* %5
+; CHECK-MASK-NEXT: %val = load i32, i32* %5
; CHECK-MASK-NEXT: ret i32 %val
; CHECK-MASK-NEXT: }
@@ -73,7 +73,7 @@ define void @test_store(i32* %ptr) {
}
; CHECK-LABEL: define void @test_store(i32* %ptr) {
-; CHECK-NEXT: %mem_base = load i64* @__sfi_memory_base
+; CHECK-NEXT: %mem_base = load i64, i64* @__sfi_memory_base
; CHECK-NEXT: %1 = ptrtoint i32* %ptr to i32
; CHECK-NEXT: %2 = zext i32 %1 to i64
; CHECK-NEXT: %3 = add i64 %mem_base, %2
@@ -83,7 +83,7 @@ define void @test_store(i32* %ptr) {
; CHECK-NEXT: }
; CHECK-MASK-LABEL: define void @test_store(i32* %ptr) {
-; CHECK-MASK-NEXT: %mem_base = load i64* @__sfi_memory_base
+; CHECK-MASK-NEXT: %mem_base = load i64, i64* @__sfi_memory_base
; CHECK-MASK-NEXT: %1 = ptrtoint i32* %ptr to i32
; CHECK-MASK-NEXT: %2 = and i32 %1, 1048575
; CHECK-MASK-NEXT: %3 = zext i32 %2 to i64
@@ -99,7 +99,7 @@ define void @test_memcpy_32(i8* %dest, i8* %src, i32 %len) {
}
; CHECK-LABEL: define void @test_memcpy_32(i8* %dest, i8* %src, i32 %len) {
-; CHECK-NEXT: %mem_base = load i64* @__sfi_memory_base
+; CHECK-NEXT: %mem_base = load i64, i64* @__sfi_memory_base
; CHECK-NEXT: %1 = ptrtoint i8* %dest to i32
; CHECK-NEXT: %2 = zext i32 %1 to i64
; CHECK-NEXT: %3 = add i64 %mem_base, %2
@@ -122,7 +122,7 @@ define void @test_memmove_32(i8* %dest, i8* %src, i32 %len) {
}
; CHECK-LABEL: define void @test_memmove_32(i8* %dest, i8* %src, i32 %len) {
-; CHECK-NEXT: %mem_base = load i64* @__sfi_memory_base
+; CHECK-NEXT: %mem_base = load i64, i64* @__sfi_memory_base
; CHECK-NEXT: %1 = ptrtoint i8* %dest to i32
; CHECK-NEXT: %2 = zext i32 %1 to i64
; CHECK-NEXT: %3 = add i64 %mem_base, %2
@@ -145,7 +145,7 @@ define void @test_memset_32(i8* %dest, i32 %len) {
}
; CHECK-LABEL: define void @test_memset_32(i8* %dest, i32 %len) {
-; CHECK-NEXT: %mem_base = load i64* @__sfi_memory_base
+; CHECK-NEXT: %mem_base = load i64, i64* @__sfi_memory_base
; CHECK-NEXT: %1 = ptrtoint i8* %dest to i32
; CHECK-NEXT: %2 = zext i32 %1 to i64
; CHECK-NEXT: %3 = add i64 %mem_base, %2
@@ -164,7 +164,7 @@ define i32 @test_atomic_load_32(i32* %ptr) {
}
; CHECK-LABEL: define i32 @test_atomic_load_32(i32* %ptr) {
-; CHECK-NEXT: %mem_base = load i64* @__sfi_memory_base
+; CHECK-NEXT: %mem_base = load i64, i64* @__sfi_memory_base
; CHECK-NEXT: %1 = ptrtoint i32* %ptr to i32
; CHECK-NEXT: %2 = zext i32 %1 to i64
; CHECK-NEXT: %3 = add i64 %mem_base, %2
@@ -182,7 +182,7 @@ define i64 @test_atomic_load_64(i64* %ptr) {
}
; CHECK-LABEL: define i64 @test_atomic_load_64(i64* %ptr) {
-; CHECK-NEXT: %mem_base = load i64* @__sfi_memory_base
+; CHECK-NEXT: %mem_base = load i64, i64* @__sfi_memory_base
; CHECK-NEXT: %1 = ptrtoint i64* %ptr to i32
; CHECK-NEXT: %2 = zext i32 %1 to i64
; CHECK-NEXT: %3 = add i64 %mem_base, %2
@@ -200,7 +200,7 @@ define void @test_atomic_store_32(i32* %ptr) {
}
; CHECK-LABEL: define void @test_atomic_store_32(i32* %ptr) {
-; CHECK-NEXT: %mem_base = load i64* @__sfi_memory_base
+; CHECK-NEXT: %mem_base = load i64, i64* @__sfi_memory_base
; CHECK-NEXT: %1 = ptrtoint i32* %ptr to i32
; CHECK-NEXT: %2 = zext i32 %1 to i64
; CHECK-NEXT: %3 = add i64 %mem_base, %2
@@ -218,7 +218,7 @@ define void @test_atomic_store_64(i64* %ptr) {
}
; CHECK-LABEL: define void @test_atomic_store_64(i64* %ptr) {
-; CHECK-NEXT: %mem_base = load i64* @__sfi_memory_base
+; CHECK-NEXT: %mem_base = load i64, i64* @__sfi_memory_base
; CHECK-NEXT: %1 = ptrtoint i64* %ptr to i32
; CHECK-NEXT: %2 = zext i32 %1 to i64
; CHECK-NEXT: %3 = add i64 %mem_base, %2
@@ -236,7 +236,7 @@ define i32 @test_atomic_rmw_32(i32* %ptr) {
}
; CHECK-LABEL: define i32 @test_atomic_rmw_32(i32* %ptr) {
-; CHECK-NEXT: %mem_base = load i64* @__sfi_memory_base
+; CHECK-NEXT: %mem_base = load i64, i64* @__sfi_memory_base
; CHECK-NEXT: %1 = ptrtoint i32* %ptr to i32
; CHECK-NEXT: %2 = zext i32 %1 to i64
; CHECK-NEXT: %3 = add i64 %mem_base, %2
@@ -254,7 +254,7 @@ define i64 @test_atomic_rmw_64(i64* %ptr) {
}
; CHECK-LABEL: define i64 @test_atomic_rmw_64(i64* %ptr) {
-; CHECK-NEXT: %mem_base = load i64* @__sfi_memory_base
+; CHECK-NEXT: %mem_base = load i64, i64* @__sfi_memory_base
; CHECK-NEXT: %1 = ptrtoint i64* %ptr to i32
; CHECK-NEXT: %2 = zext i32 %1 to i64
; CHECK-NEXT: %3 = add i64 %mem_base, %2
@@ -272,7 +272,7 @@ define i32 @test_atomic_cmpxchg_32(i32* %ptr) {
}
; CHECK-LABEL: define i32 @test_atomic_cmpxchg_32(i32* %ptr) {
-; CHECK-NEXT: %mem_base = load i64* @__sfi_memory_base
+; CHECK-NEXT: %mem_base = load i64, i64* @__sfi_memory_base
; CHECK-NEXT: %1 = ptrtoint i32* %ptr to i32
; CHECK-NEXT: %2 = zext i32 %1 to i64
; CHECK-NEXT: %3 = add i64 %mem_base, %2
@@ -290,7 +290,7 @@ define i64 @test_atomic_cmpxchg_64(i64* %ptr) {
}
; CHECK-LABEL: define i64 @test_atomic_cmpxchg_64(i64* %ptr) {
-; CHECK-NEXT: %mem_base = load i64* @__sfi_memory_base
+; CHECK-NEXT: %mem_base = load i64, i64* @__sfi_memory_base
; CHECK-NEXT: %1 = ptrtoint i64* %ptr to i32
; CHECK-NEXT: %2 = zext i32 %1 to i64
; CHECK-NEXT: %3 = add i64 %mem_base, %2
@@ -328,7 +328,7 @@ define i1 @test_atomic_is_lock_free(i8* %ptr) {
}
; CHECK-LABEL: define i1 @test_atomic_is_lock_free(i8* %ptr) {
-; CHECK-NEXT: %mem_base = load i64* @__sfi_memory_base
+; CHECK-NEXT: %mem_base = load i64, i64* @__sfi_memory_base
; CHECK-NEXT: %1 = ptrtoint i8* %ptr to i32
; CHECK-NEXT: %2 = zext i32 %1 to i64
; CHECK-NEXT: %3 = add i64 %mem_base, %2
@@ -356,18 +356,18 @@ define void @test_bitcast_whitelisted(i32 %val) {
; this won't get optimized because IntToPtr is not casting a result of an Add
define i32 @test_no_opt__cast_not_add(i32 %ptr_int) {
%ptr = inttoptr i32 %ptr_int to i32*
- %val = load i32* %ptr
+ %val = load i32, i32* %ptr
ret i32 %val
}
; CHECK-LABEL: define i32 @test_no_opt__cast_not_add(i32 %ptr_int) {
-; CHECK-NEXT: %mem_base = load i64* @__sfi_memory_base
+; CHECK-NEXT: %mem_base = load i64, i64* @__sfi_memory_base
; CHECK-NEXT: %ptr = inttoptr i32 %ptr_int to i32*
; CHECK-NEXT: %1 = ptrtoint i32* %ptr to i32
; CHECK-NEXT: %2 = zext i32 %1 to i64
; CHECK-NEXT: %3 = add i64 %mem_base, %2
; CHECK-NEXT: %4 = inttoptr i64 %3 to i32*
-; CHECK-NEXT: %val = load i32* %4
+; CHECK-NEXT: %val = load i32, i32* %4
; CHECK-NEXT: ret i32 %val
; CHECK-NEXT: }
@@ -375,19 +375,19 @@ define i32 @test_no_opt__cast_not_add(i32 %ptr_int) {
define i32 @test_no_opt__cast_not_32(i64 %ptr_int1) {
%ptr_sum = add i64 %ptr_int1, 5
%ptr = inttoptr i64 %ptr_sum to i32*
- %val = load i32* %ptr
+ %val = load i32, i32* %ptr
ret i32 %val
}
; CHECK-LABEL: define i32 @test_no_opt__cast_not_32(i64 %ptr_int1) {
-; CHECK-NEXT: %mem_base = load i64* @__sfi_memory_base
+; CHECK-NEXT: %mem_base = load i64, i64* @__sfi_memory_base
; CHECK-NEXT: %ptr_sum = add i64 %ptr_int1, 5
; CHECK-NEXT: %ptr = inttoptr i64 %ptr_sum to i32*
; CHECK-NEXT: %1 = ptrtoint i32* %ptr to i32
; CHECK-NEXT: %2 = zext i32 %1 to i64
; CHECK-NEXT: %3 = add i64 %mem_base, %2
; CHECK-NEXT: %4 = inttoptr i64 %3 to i32*
-; CHECK-NEXT: %val = load i32* %4
+; CHECK-NEXT: %val = load i32, i32* %4
; CHECK-NEXT: ret i32 %val
; CHECK-NEXT: }
@@ -395,19 +395,19 @@ define i32 @test_no_opt__cast_not_32(i64 %ptr_int1) {
define i32 @test_no_opt__add_not_constant(i32 %ptr_int1, i32 %ptr_int2) {
%ptr_sum = add i32 %ptr_int1, %ptr_int2
%ptr = inttoptr i32 %ptr_sum to i32*
- %val = load i32* %ptr
+ %val = load i32, i32* %ptr
ret i32 %val
}
; CHECK-LABEL: define i32 @test_no_opt__add_not_constant(i32 %ptr_int1, i32 %ptr_int2) {
-; CHECK-NEXT: %mem_base = load i64* @__sfi_memory_base
+; CHECK-NEXT: %mem_base = load i64, i64* @__sfi_memory_base
; CHECK-NEXT: %ptr_sum = add i32 %ptr_int1, %ptr_int2
; CHECK-NEXT: %ptr = inttoptr i32 %ptr_sum to i32*
; CHECK-NEXT: %1 = ptrtoint i32* %ptr to i32
; CHECK-NEXT: %2 = zext i32 %1 to i64
; CHECK-NEXT: %3 = add i64 %mem_base, %2
; CHECK-NEXT: %4 = inttoptr i64 %3 to i32*
-; CHECK-NEXT: %val = load i32* %4
+; CHECK-NEXT: %val = load i32, i32* %4
; CHECK-NEXT: ret i32 %val
; CHECK-NEXT: }
@@ -415,37 +415,37 @@ define i32 @test_no_opt__add_not_constant(i32 %ptr_int1, i32 %ptr_int2) {
define i32 @test_no_opt__add_not_positive(i32 %ptr_int) {
%ptr_sum = add i32 %ptr_int, -5
%ptr = inttoptr i32 %ptr_sum to i32*
- %val = load i32* %ptr
+ %val = load i32, i32* %ptr
ret i32 %val
}
; CHECK-LABEL: define i32 @test_no_opt__add_not_positive(i32 %ptr_int) {
-; CHECK-NEXT: %mem_base = load i64* @__sfi_memory_base
+; CHECK-NEXT: %mem_base = load i64, i64* @__sfi_memory_base
; CHECK-NEXT: %ptr_sum = add i32 %ptr_int, -5
; CHECK-NEXT: %ptr = inttoptr i32 %ptr_sum to i32*
; CHECK-NEXT: %1 = ptrtoint i32* %ptr to i32
; CHECK-NEXT: %2 = zext i32 %1 to i64
; CHECK-NEXT: %3 = add i64 %mem_base, %2
; CHECK-NEXT: %4 = inttoptr i64 %3 to i32*
-; CHECK-NEXT: %val = load i32* %4
+; CHECK-NEXT: %val = load i32, i32* %4
; CHECK-NEXT: ret i32 %val
; CHECK-NEXT: }
define i32 @test_opt_dont_remove_cast_if_used(i32 %ptr_int, i32 %replace) {
%ptr_sum = add i32 %ptr_int, 5
%ptr = inttoptr i32 %ptr_sum to i32*
- %val = load i32* %ptr ; %ptr is used later => keep cast
+ %val = load i32, i32* %ptr ; %ptr is used later => keep cast
store i32 %replace, i32* %ptr ; %ptr not used any more => remove cast
ret i32 %val
}
; CHECK-LABEL: define i32 @test_opt_dont_remove_cast_if_used(i32 %ptr_int, i32 %replace) {
-; CHECK-NEXT: %mem_base = load i64* @__sfi_memory_base
+; CHECK-NEXT: %mem_base = load i64, i64* @__sfi_memory_base
; CHECK-NEXT: %1 = zext i32 %ptr_int to i64
; CHECK-NEXT: %2 = add i64 %mem_base, %1
; CHECK-NEXT: %3 = add i64 %2, 5
; CHECK-NEXT: %4 = inttoptr i64 %3 to i32*
-; CHECK-NEXT: %val = load i32* %4
+; CHECK-NEXT: %val = load i32, i32* %4
; CHECK-NEXT: %5 = zext i32 %ptr_int to i64
; CHECK-NEXT: %6 = add i64 %mem_base, %5
; CHECK-NEXT: %7 = add i64 %6, 5
@@ -462,7 +462,7 @@ define i32 @test_opt_dont_remove_add_if_used(i32 %ptr_int, i32 %replace) {
}
; CHECK-LABEL: define i32 @test_opt_dont_remove_add_if_used(i32 %ptr_int, i32 %replace) {
-; CHECK-NEXT: %mem_base = load i64* @__sfi_memory_base
+; CHECK-NEXT: %mem_base = load i64, i64* @__sfi_memory_base
; CHECK-NEXT: %ptr_sum = add i32 %ptr_int, 5
; CHECK-NEXT: %1 = zext i32 %ptr_int to i64
; CHECK-NEXT: %2 = add i64 %mem_base, %1
@@ -482,7 +482,7 @@ define void @test_len_dbg(i8* %dest, i8* %src, i32 %len) {
}
; CHECK-LABEL: define void @test_len_dbg(i8* %dest, i8* %src, i32 %len) {
-; CHECK-NEXT: %mem_base = load i64* @__sfi_memory_base
+; CHECK-NEXT: %mem_base = load i64, i64* @__sfi_memory_base
; CHECK-NEXT: %1 = ptrtoint i8* %dest to i32
; CHECK-NEXT: %2 = zext i32 %1 to i64
; CHECK-NEXT: %3 = add i64 %mem_base, %2
@@ -497,22 +497,24 @@ define void @test_len_dbg(i8* %dest, i8* %src, i32 %len) {
define void @test_opt_dbg(i32 %ptr_int, i32 %replace) {
%ptr_sum = add i32 %ptr_int, 5, !dbg !1
- %ptr = inttoptr i32 %ptr_sum to i32*, !dbg !2
- store i32 %replace, i32* %ptr, !dbg !3
- ret void, !dbg !4
+ %ptr = inttoptr i32 %ptr_sum to i32*, !dbg !3
+ store i32 %replace, i32* %ptr, !dbg !4
+ ret void, !dbg !5
}
; CHECK-LABEL: define void @test_opt_dbg(i32 %ptr_int, i32 %replace) {
-; CHECK-NEXT: %mem_base = load i64* @__sfi_memory_base
+; CHECK-NEXT: %mem_base = load i64, i64* @__sfi_memory_base
; CHECK-NEXT: %1 = zext i32 %ptr_int to i64
; CHECK-NEXT: %2 = add i64 %mem_base, %1
; CHECK-NEXT: %3 = add i64 %2, 5, !dbg !1
-; CHECK-NEXT: %4 = inttoptr i64 %3 to i32*, !dbg !2
-; CHECK-NEXT: store i32 %replace, i32* %4, !dbg !3
-; CHECK-NEXT: ret void, !dbg !4
+; CHECK-NEXT: %4 = inttoptr i64 %3 to i32*, !dbg !3
+; CHECK-NEXT: store i32 %replace, i32* %4, !dbg !4
+; CHECK-NEXT: ret void, !dbg !5
; CHECK-NEXT: }
-!1 = metadata !{i32 138, i32 0, metadata !1, null}
-!2 = metadata !{i32 142, i32 0, metadata !2, null}
-!3 = metadata !{i32 144, i32 0, metadata !3, null}
-!4 = metadata !{i32 144, i32 0, metadata !4, null}
+
+!1 = !MDLocation(line: 1, column: 13, scope: !2)
+!2 = !MDSubprogram(name: "foo")
+!3 = !MDLocation(line: 2, column: 10, scope: !2)
+!4 = !MDLocation(line: 2, column: 3, scope: !2)
+!5 = !MDLocation(line: 23, column: 3, scope: !2)

Powered by Google App Engine
This is Rietveld 408576698