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

Side by Side Diff: test/Transforms/MinSFI/allocate-data-segment.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 unified diff | Download patch
OLDNEW
1 ; RUN: opt %s -minsfi-allocate-data-segment -S | FileCheck %s 1 ; RUN: opt %s -minsfi-allocate-data-segment -S | FileCheck %s
2 2
3 target datalayout = "p:32:32:32" 3 target datalayout = "p:32:32:32"
4 target triple = "le32-unknown-nacl" 4 target triple = "le32-unknown-nacl"
5 5
6 ; Every global variable in PNaCl IR must have an initializer. This is an 6 ; Every global variable in PNaCl IR must have an initializer. This is an
7 ; exhaustive list of all the possible formats. 7 ; exhaustive list of all the possible formats.
8 8
9 @a = global [1 x i8] zeroinitializer ; no alignment 9 @a = global [1 x i8] zeroinitializer ; no alignment
10 @b = global [3 x i8] c"ABC" ; no alignment 10 @b = global [3 x i8] c"ABC" ; no alignment
11 @c = global [5 x i8] c"ABCDE", align 16 ; explicit 16B align 11 @c = global [5 x i8] c"ABCDE", align 16 ; explicit 16B align
12 @d = global i32 ptrtoint ([3 x i8]* @b to i32) ; implicit 4B align 12 @d = global i32 ptrtoint ([3 x i8]* @b to i32) ; implicit 4B align
13 @e = global i32 add (i32 ptrtoint ([5 x i8]* @c to i32), i32 3), align 2 13 @e = global i32 add (i32 ptrtoint ([5 x i8]* @c to i32), i32 3), align 2
14 ; implicit 4B align 14 ; implicit 4B align
15 @f = global <{ [1 x i8], i32 }> 15 @f = global <{ [1 x i8], i32 }>
16 <{ [1 x i8] zeroinitializer, 16 <{ [1 x i8] zeroinitializer,
17 i32 ptrtoint ([5 x i8]* @c to i32) }> ; no alignment 17 i32 ptrtoint ([5 x i8]* @c to i32) }> ; no alignment
18 @g = global [1 x i8] zeroinitializer ; no alignment 18 @g = global [1 x i8] zeroinitializer ; no alignment
19 19
20 ; Use each variable to verify its location 20 ; Use each variable to verify its location
21 21
22 define void @use_variables() { 22 define void @use_variables() {
23 %a = load [1 x i8]* @a 23 %a = load [1 x i8], [1 x i8]* @a
24 %b = load [3 x i8]* @b 24 %b = load [3 x i8], [3 x i8]* @b
25 %c = load [5 x i8]* @c 25 %c = load [5 x i8], [5 x i8]* @c
26 %d = load i32* @d 26 %d = load i32, i32* @d
27 %e = load i32* @e 27 %e = load i32, i32* @e
28 %f = load <{ [1 x i8], i32 }>* @f 28 %f = load <{ [1 x i8], i32 }>, <{ [1 x i8], i32 }>* @f
29 %g = load [1 x i8]* @g 29 %g = load [1 x i8], [1 x i8]* @g
30 ret void 30 ret void
31 } 31 }
32 32
33 ; CHECK: %__sfi_data_segment = type <{ [1 x i8], [3 x i8], [12 x i8], [5 x i8], [3 x i8], i32, i32, <{ [1 x i8], i32 }>, [1 x i8] }> 33 ; CHECK: %__sfi_data_segment = type <{ [1 x i8], [3 x i8], [12 x i8], [5 x i8], [3 x i8], i32, i32, <{ [1 x i8], i32 }>, [1 x i8] }>
34 ; CHECK: @__sfi_data_segment = constant %__sfi_data_segment <{ [1 x i8] zeroinit ializer, [3 x i8] c"ABC", [12 x i8] zeroinitializer, [5 x i8] c"ABCDE", [3 x i8] zeroinitializer, i32 65537, i32 65555, <{ [1 x i8], i32 }> <{ [1 x i8] zeroinit ializer, i32 65552 }>, [1 x i8] zeroinitializer }> 34 ; CHECK: @__sfi_data_segment = constant %__sfi_data_segment <{ [1 x i8] zeroinit ializer, [3 x i8] c"ABC", [12 x i8] zeroinitializer, [5 x i8] c"ABCDE", [3 x i8] zeroinitializer, i32 65537, i32 65555, <{ [1 x i8], i32 }> <{ [1 x i8] zeroinit ializer, i32 65552 }>, [1 x i8] zeroinitializer }>
35 ; CHECK: @__sfi_data_segment_size = constant i32 38 35 ; CHECK: @__sfi_data_segment_size = constant i32 38
36 36
37 ; CHECK-LABEL: define void @use_variables() { 37 ; CHECK-LABEL: define void @use_variables() {
38 ; CHECK-NEXT: %a = load [1 x i8]* inttoptr (i32 65536 to [1 x i8]*) 38 ; CHECK-NEXT: %a = load [1 x i8], [1 x i8]* inttoptr (i32 65536 to [1 x i8]*)
39 ; CHECK-NEXT: %b = load [3 x i8]* inttoptr (i32 65537 to [3 x i8]*) 39 ; CHECK-NEXT: %b = load [3 x i8], [3 x i8]* inttoptr (i32 65537 to [3 x i8]*)
40 ; CHECK-NEXT: %c = load [5 x i8]* inttoptr (i32 65552 to [5 x i8]*) 40 ; CHECK-NEXT: %c = load [5 x i8], [5 x i8]* inttoptr (i32 65552 to [5 x i8]*)
41 ; CHECK-NEXT: %d = load i32* inttoptr (i32 65560 to i32*) 41 ; CHECK-NEXT: %d = load i32, i32* inttoptr (i32 65560 to i32*)
42 ; CHECK-NEXT: %e = load i32* inttoptr (i32 65564 to i32*) 42 ; CHECK-NEXT: %e = load i32, i32* inttoptr (i32 65564 to i32*)
43 ; CHECK-NEXT: %f = load <{ [1 x i8], i32 }>* inttoptr (i32 65568 to <{ [1 x i 8], i32 }>*) 43 ; CHECK-NEXT: %f = load <{ [1 x i8], i32 }>, <{ [1 x i8], i32 }>* inttoptr (i 32 65568 to <{ [1 x i8], i32 }>*)
44 ; CHECK-NEXT: %g = load [1 x i8]* inttoptr (i32 65573 to [1 x i8]*) 44 ; CHECK-NEXT: %g = load [1 x i8], [1 x i8]* inttoptr (i32 65573 to [1 x i8]*)
45 ; CHECK-NEXT: ret void 45 ; CHECK-NEXT: ret void
46 ; CHECK-NEXT: } 46 ; CHECK-NEXT: }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698