Karl Schimpf | 6ff33d2 | 2014-09-22 10:28:42 -0700 | [diff] [blame] | 1 | ; Test of global initializers. |
| 2 | |
Karl Schimpf | 57d31ac | 2015-10-07 09:53:12 -0700 | [diff] [blame] | 3 | ; RUN: %p2i -i %s --insts --args -allow-externally-defined-symbols \ |
| 4 | ; RUN: | FileCheck %s |
| 5 | ; RUN: %l2i -i %s --insts --args -allow-externally-defined-symbols \ |
| 6 | ; RUN: | %ifl FileCheck %s |
| 7 | ; RUN: %lc2i -i %s --insts --args -allow-externally-defined-symbols \ |
| 8 | ; RUN: | %iflc FileCheck %s |
Jim Stichnoth | 0d4fc92 | 2015-12-13 21:36:33 -0800 | [diff] [blame^] | 9 | ; RUN: %p2i -i %s --args -notranslate -timing \ |
| 10 | ; RUN: -allow-externally-defined-symbols | \ |
Karl Schimpf | 6fcbddd | 2014-11-06 09:49:24 -0800 | [diff] [blame] | 11 | ; RUN: FileCheck --check-prefix=NOIR %s |
Karl Schimpf | 6ff33d2 | 2014-09-22 10:28:42 -0700 | [diff] [blame] | 12 | |
| 13 | @PrimitiveInit = internal global [4 x i8] c"\1B\00\00\00", align 4 |
Karl Schimpf | 9d98d79 | 2014-10-13 15:01:08 -0700 | [diff] [blame] | 14 | ; CHECK: @PrimitiveInit = internal global [4 x i8] c"\1B\00\00\00", align 4 |
Karl Schimpf | 6ff33d2 | 2014-09-22 10:28:42 -0700 | [diff] [blame] | 15 | |
| 16 | @PrimitiveInitConst = internal constant [4 x i8] c"\0D\00\00\00", align 4 |
Karl Schimpf | 9d98d79 | 2014-10-13 15:01:08 -0700 | [diff] [blame] | 17 | ; CHECK-NEXT: @PrimitiveInitConst = internal constant [4 x i8] c"\0D\00\00\00", align 4 |
Karl Schimpf | 6ff33d2 | 2014-09-22 10:28:42 -0700 | [diff] [blame] | 18 | |
| 19 | @ArrayInit = internal global [20 x i8] c"\0A\00\00\00\14\00\00\00\1E\00\00\00(\00\00\002\00\00\00", align 4 |
Karl Schimpf | 9d98d79 | 2014-10-13 15:01:08 -0700 | [diff] [blame] | 20 | ; CHECK-NEXT: @ArrayInit = internal global [20 x i8] c"\0A\00\00\00\14\00\00\00\1E\00\00\00(\00\00\002\00\00\00", align 4 |
Karl Schimpf | 6ff33d2 | 2014-09-22 10:28:42 -0700 | [diff] [blame] | 21 | |
| 22 | @ArrayInitPartial = internal global [40 x i8] c"<\00\00\00F\00\00\00P\00\00\00Z\00\00\00d\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", align 4 |
Karl Schimpf | 9d98d79 | 2014-10-13 15:01:08 -0700 | [diff] [blame] | 23 | ; CHECK-NEXT: @ArrayInitPartial = internal global [40 x i8] c"<\00\00\00F\00\00\00P\00\00\00Z\00\00\00d\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", align 4 |
Karl Schimpf | 6ff33d2 | 2014-09-22 10:28:42 -0700 | [diff] [blame] | 24 | |
| 25 | @PrimitiveInitStatic = internal global [4 x i8] zeroinitializer, align 4 |
Karl Schimpf | 9d98d79 | 2014-10-13 15:01:08 -0700 | [diff] [blame] | 26 | ; CHECK-NEXT: @PrimitiveInitStatic = internal global [4 x i8] zeroinitializer, align 4 |
Karl Schimpf | 6ff33d2 | 2014-09-22 10:28:42 -0700 | [diff] [blame] | 27 | |
| 28 | @PrimitiveUninit = internal global [4 x i8] zeroinitializer, align 4 |
Karl Schimpf | 9d98d79 | 2014-10-13 15:01:08 -0700 | [diff] [blame] | 29 | ; CHECK-NEXT: @PrimitiveUninit = internal global [4 x i8] zeroinitializer, align 4 |
Karl Schimpf | 6ff33d2 | 2014-09-22 10:28:42 -0700 | [diff] [blame] | 30 | |
| 31 | @ArrayUninit = internal global [20 x i8] zeroinitializer, align 4 |
Karl Schimpf | 9d98d79 | 2014-10-13 15:01:08 -0700 | [diff] [blame] | 32 | ; CHECK-NEXT: @ArrayUninit = internal global [20 x i8] zeroinitializer, align 4 |
Karl Schimpf | 6ff33d2 | 2014-09-22 10:28:42 -0700 | [diff] [blame] | 33 | |
| 34 | @ArrayUninitConstDouble = internal constant [200 x i8] zeroinitializer, align 8 |
Karl Schimpf | 9d98d79 | 2014-10-13 15:01:08 -0700 | [diff] [blame] | 35 | ; CHECK-NEXT: @ArrayUninitConstDouble = internal constant [200 x i8] zeroinitializer, align 8 |
Karl Schimpf | 6ff33d2 | 2014-09-22 10:28:42 -0700 | [diff] [blame] | 36 | |
| 37 | @ArrayUninitConstInt = internal constant [20 x i8] zeroinitializer, align 4 |
Karl Schimpf | 9d98d79 | 2014-10-13 15:01:08 -0700 | [diff] [blame] | 38 | ; CHECK-NEXT: @ArrayUninitConstInt = internal constant [20 x i8] zeroinitializer, align 4 |
Karl Schimpf | 6ff33d2 | 2014-09-22 10:28:42 -0700 | [diff] [blame] | 39 | |
| 40 | @__init_array_start = internal constant [0 x i8] zeroinitializer, align 4 |
Karl Schimpf | 9d98d79 | 2014-10-13 15:01:08 -0700 | [diff] [blame] | 41 | ; CHECK-NEXT: @__init_array_start = internal constant [0 x i8] zeroinitializer, align 4 |
| 42 | |
Karl Schimpf | 6ff33d2 | 2014-09-22 10:28:42 -0700 | [diff] [blame] | 43 | @__fini_array_start = internal constant [0 x i8] zeroinitializer, align 4 |
Karl Schimpf | 9d98d79 | 2014-10-13 15:01:08 -0700 | [diff] [blame] | 44 | ; CHECK: @__fini_array_start = internal constant [0 x i8] zeroinitializer, align 4 |
| 45 | |
Karl Schimpf | 6ff33d2 | 2014-09-22 10:28:42 -0700 | [diff] [blame] | 46 | @__tls_template_start = internal constant [0 x i8] zeroinitializer, align 8 |
Karl Schimpf | 9d98d79 | 2014-10-13 15:01:08 -0700 | [diff] [blame] | 47 | ; CHECK: @__tls_template_start = internal constant [0 x i8] zeroinitializer, align 8 |
| 48 | |
Karl Schimpf | 6ff33d2 | 2014-09-22 10:28:42 -0700 | [diff] [blame] | 49 | @__tls_template_alignment = internal constant [4 x i8] c"\01\00\00\00", align 4 |
Karl Schimpf | 9d98d79 | 2014-10-13 15:01:08 -0700 | [diff] [blame] | 50 | ; CHECK: @__tls_template_alignment = internal constant [4 x i8] c"\01\00\00\00", align 4 |
Karl Schimpf | 6ff33d2 | 2014-09-22 10:28:42 -0700 | [diff] [blame] | 51 | |
| 52 | define internal i32 @main(i32 %argc, i32 %argv) { |
| 53 | entry: |
| 54 | %expanded1 = ptrtoint [4 x i8]* @PrimitiveInit to i32 |
| 55 | call void @use(i32 %expanded1) |
| 56 | %expanded3 = ptrtoint [4 x i8]* @PrimitiveInitConst to i32 |
| 57 | call void @use(i32 %expanded3) |
| 58 | %expanded5 = ptrtoint [4 x i8]* @PrimitiveInitStatic to i32 |
| 59 | call void @use(i32 %expanded5) |
| 60 | %expanded7 = ptrtoint [4 x i8]* @PrimitiveUninit to i32 |
| 61 | call void @use(i32 %expanded7) |
| 62 | %expanded9 = ptrtoint [20 x i8]* @ArrayInit to i32 |
| 63 | call void @use(i32 %expanded9) |
| 64 | %expanded11 = ptrtoint [40 x i8]* @ArrayInitPartial to i32 |
| 65 | call void @use(i32 %expanded11) |
| 66 | %expanded13 = ptrtoint [20 x i8]* @ArrayUninit to i32 |
| 67 | call void @use(i32 %expanded13) |
| 68 | ret i32 0 |
| 69 | } |
Karl Schimpf | 6ff33d2 | 2014-09-22 10:28:42 -0700 | [diff] [blame] | 70 | |
| 71 | declare void @use(i32) |
| 72 | |
| 73 | define internal i32 @nacl_tp_tdb_offset(i32 %__0) { |
| 74 | entry: |
| 75 | ret i32 0 |
| 76 | } |
| 77 | |
| 78 | define internal i32 @nacl_tp_tls_offset(i32 %size) { |
| 79 | entry: |
| 80 | %result = sub i32 0, %size |
| 81 | ret i32 %result |
| 82 | } |
Karl Schimpf | 6fcbddd | 2014-11-06 09:49:24 -0800 | [diff] [blame] | 83 | |
| 84 | ; NOIR: Total across all functions |