Index: test/Transforms/NaCl/replace-ptrs-with-ints.ll |
diff --git a/test/Transforms/NaCl/replace-ptrs-with-ints.ll b/test/Transforms/NaCl/replace-ptrs-with-ints.ll |
index 0dff23a1030351850c18b0efe35e3d8fe9a95cce..8a9d3de221792576e86820d993b81705df1456c7 100644 |
--- a/test/Transforms/NaCl/replace-ptrs-with-ints.ll |
+++ b/test/Transforms/NaCl/replace-ptrs-with-ints.ll |
@@ -80,7 +80,7 @@ block2: |
%cast = bitcast %struct* %val to i8* |
br label %block3 |
block1: |
- %val = load %struct** %ptr |
+ %val = load %struct*, %struct** %ptr |
br label %block2 |
block3: |
; Backwards reference to a forwards reference that has already been |
@@ -93,7 +93,7 @@ block3: |
; CHECK-NEXT: br label %block3 |
; CHECK: block1: |
; CHECK-NEXT: %ptr.asptr = inttoptr i32 %ptr to i32* |
-; CHECK-NEXT: %val = load i32* %ptr.asptr |
+; CHECK-NEXT: %val = load i32, i32* %ptr.asptr |
; CHECK-NEXT: br label %block2 |
; CHECK: block3: |
; CHECK-NEXT: ret i32 %val |
@@ -195,29 +195,29 @@ define i32 @constant_pointer_undef() { |
; CHECK-NEXT: ret i32 undef |
define i16* @constant_pointer_null_load() { |
- %val = load i16** null |
+ %val = load i16*, i16** null |
ret i16* %val |
} |
; CHECK: define i32 @constant_pointer_null_load() { |
; CHECK-NEXT: %.asptr = inttoptr i32 0 to i32* |
-; CHECK-NEXT: %val = load i32* %.asptr |
+; CHECK-NEXT: %val = load i32, i32* %.asptr |
define i16* @constant_pointer_undef_load() { |
- %val = load i16** undef |
+ %val = load i16*, i16** undef |
ret i16* %val |
} |
; CHECK: define i32 @constant_pointer_undef_load() { |
; CHECK-NEXT: %.asptr = inttoptr i32 undef to i32* |
-; CHECK-NEXT: %val = load i32* %.asptr |
+; CHECK-NEXT: %val = load i32, i32* %.asptr |
define i8 @load(i8* %ptr) { |
- %x = load i8* %ptr |
+ %x = load i8, i8* %ptr |
ret i8 %x |
} |
; CHECK: define i8 @load(i32 %ptr) { |
; CHECK-NEXT: %ptr.asptr = inttoptr i32 %ptr to i8* |
-; CHECK-NEXT: %x = load i8* %ptr.asptr |
+; CHECK-NEXT: %x = load i8, i8* %ptr.asptr |
define void @store(i8* %ptr, i8 %val) { |
store i8 %val, i8* %ptr |
@@ -229,12 +229,12 @@ define void @store(i8* %ptr, i8 %val) { |
define i8* @load_ptr(i8** %ptr) { |
- %x = load i8** %ptr |
+ %x = load i8*, i8** %ptr |
ret i8* %x |
} |
; CHECK: define i32 @load_ptr(i32 %ptr) { |
; CHECK-NEXT: %ptr.asptr = inttoptr i32 %ptr to i32* |
-; CHECK-NEXT: %x = load i32* %ptr.asptr |
+; CHECK-NEXT: %x = load i32, i32* %ptr.asptr |
define void @store_ptr(i8** %ptr, i8* %val) { |
store i8* %val, i8** %ptr |
@@ -246,12 +246,12 @@ define void @store_ptr(i8** %ptr, i8* %val) { |
define i8 @load_attrs(i8* %ptr) { |
- %x = load atomic volatile i8* %ptr seq_cst, align 128 |
+ %x = load atomic volatile i8, i8* %ptr seq_cst, align 128 |
ret i8 %x |
} |
; CHECK: define i8 @load_attrs(i32 %ptr) { |
; CHECK-NEXT: %ptr.asptr = inttoptr i32 %ptr to i8* |
-; CHECK-NEXT: %x = load atomic volatile i8* %ptr.asptr seq_cst, align 128 |
+; CHECK-NEXT: %x = load atomic volatile i8, i8* %ptr.asptr seq_cst, align 128 |
define void @store_attrs(i8* %ptr, i8 %val) { |
store atomic volatile i8 %val, i8* %ptr singlethread release, align 256 |
@@ -327,21 +327,21 @@ define %struct* (%struct*)* @get_addr_of_func() { |
define i32 @load_global() { |
- %val = load i32* @var |
+ %val = load i32, i32* @var |
ret i32 %val |
} |
; CHECK: define i32 @load_global() { |
-; CHECK-NEXT: %val = load i32* @var |
+; CHECK-NEXT: %val = load i32, i32* @var |
; CHECK-NEXT: ret i32 %val |
define i16 @load_global_bitcast() { |
%ptr = bitcast i32* @var to i16* |
- %val = load i16* %ptr |
+ %val = load i16, i16* %ptr |
ret i16 %val |
} |
; CHECK: define i16 @load_global_bitcast() { |
; CHECK-NEXT: %var.bc = bitcast i32* @var to i16* |
-; CHECK-NEXT: %val = load i16* %var.bc |
+; CHECK-NEXT: %val = load i16, i16* %var.bc |
; CHECK-NEXT: ret i16 %val |
@@ -399,36 +399,36 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) |
define void @debug_declare(i32 %val) { |
; We normally expect llvm.dbg.declare to be used on an alloca. |
%var = alloca i32 |
- call void @llvm.dbg.declare(metadata !{i32* %var}, metadata !2, metadata !14) |
- call void @llvm.dbg.declare(metadata !{i32 %val}, metadata !2, metadata !14) |
+ call void @llvm.dbg.declare(metadata i32* %var, metadata !11, metadata !12), !dbg !13 |
+ call void @llvm.dbg.declare(metadata i32 %val, metadata !14, metadata !12), !dbg !13 |
ret void |
} |
; CHECK: define void @debug_declare(i32 %val) { |
; CHECK-NEXT: %var = alloca i32 |
-; CHECK-NEXT: call void @llvm.dbg.declare(metadata !{i32* %var}, metadata !2, metadata !14) |
+; CHECK-NEXT: call void @llvm.dbg.declare(metadata i32* %var, metadata !11, metadata !12), !dbg !13 |
; This case is currently not converted. |
-; CHECK-NEXT: call void @llvm.dbg.declare(metadata !{null}, metadata !2, metadata !14) |
+; CHECK-NEXT: call void @llvm.dbg.declare(metadata !2, metadata !14, metadata !12) |
; CHECK-NEXT: ret void |
; For now, debugging info for values is lost. replaceAllUsesWith() |
; does not work for metadata references -- it converts them to nulls. |
; This makes dbg.value too tricky to handle for now. |
define void @debug_value(i32 %val, i8* %ptr) { |
- tail call void @llvm.dbg.value(metadata !{i32 %val}, i64 1, metadata !1, metadata !14) |
- tail call void @llvm.dbg.value(metadata !{i8* %ptr}, i64 2, metadata !1, metadata !14) |
+ tail call void @llvm.dbg.value(metadata i32 %val, i64 1, metadata !11, metadata !12), !dbg !18 |
+ tail call void @llvm.dbg.value(metadata i8* %ptr, i64 2, metadata !14, metadata !12), !dbg !18 |
; check that we don't crash when encountering odd things: |
- tail call void @llvm.dbg.value(metadata !{i8* null}, i64 3, metadata !1, metadata !14) |
- tail call void @llvm.dbg.value(metadata !{i8* undef}, i64 4, metadata !1, metadata !14) |
- tail call void @llvm.dbg.value(metadata !{}, i64 5, metadata !1, metadata !14) |
+ tail call void @llvm.dbg.value(metadata i8* null, i64 3, metadata !11, metadata !12), !dbg !18 |
+ tail call void @llvm.dbg.value(metadata i8* undef, i64 4, metadata !11, metadata !12), !dbg !18 |
+ tail call void @llvm.dbg.value(metadata !{}, i64 5, metadata !11, metadata !12), !dbg !18 |
ret void |
} |
; CHECK: define void @debug_value(i32 %val, i32 %ptr) { |
-; CHECK-NEXT: call void @llvm.dbg.value(metadata !{null}, i64 1, metadata !1, metadata !14) |
-; CHECK-NEXT: call void @llvm.dbg.value(metadata !{null}, i64 2, metadata !1, metadata !14) |
-; CHECK-NEXT: call void @llvm.dbg.value(metadata !15, i64 3, metadata !1, metadata !14) |
-; CHECK-NEXT: call void @llvm.dbg.value(metadata !16, i64 4, metadata !1, metadata !14) |
-; CHECK-NEXT: call void @llvm.dbg.value(metadata !2, i64 5, metadata !1, metadata !14) |
+; CHECK-NEXT: call void @llvm.dbg.value(metadata !2, i64 1, metadata !11, metadata !12) |
+; CHECK-NEXT: call void @llvm.dbg.value(metadata !2, i64 2, metadata !14, metadata !12) |
+; CHECK-NEXT: call void @llvm.dbg.value(metadata i8* null, i64 3, metadata !11, metadata !12) |
+; CHECK-NEXT: call void @llvm.dbg.value(metadata i8* undef, i64 4, metadata !11, metadata !12) |
+; CHECK-NEXT: call void @llvm.dbg.value(metadata !2, i64 5, metadata !11, metadata !12) |
; CHECK-NEXT: ret void |
@@ -493,7 +493,7 @@ define void @nocapture_attr(i8* nocapture noalias %ptr) { |
; CHECK: define void @nocapture_attr(i32 %ptr) { |
-define void @readonly_readnone(i8* readonly readnone) { |
+define void @readonly_readnone(i8* readonly dereferenceable_or_null(4)) { |
ret void |
} |
; CHECK-LABEL: define void @readonly_readnone(i32) |
@@ -544,8 +544,8 @@ define void @tail_call() { |
; Just check that the pass does not crash on getelementptr. (The pass |
; should not depend unnecessarily on ExpandGetElementPtr having been |
; run.) |
-define i8* @getelementptr(i8* %ptr) { |
- %gep = getelementptr i8* %ptr, i32 10 |
+define i8* @getelementptr(i8, i8* %ptr) { |
+ %gep = getelementptr i8, i8* %ptr, i32 10 |
ret i8* %gep |
} |
@@ -617,8 +617,8 @@ define void @typeid_for() { |
; } |
define void @nop(i8* %ptr) { |
- tail call void @llvm.dbg.value(metadata !{i8* %ptr}, i64 0, metadata !10, metadata !14), !dbg !15 |
- ret void, !dbg !16 |
+ tail call void @llvm.dbg.value(metadata i8* %ptr, i64 0, metadata !11, metadata !12), !dbg !19 |
+ ret void, !dbg !19 |
} |
; CHECK: define void @nop(i32 %ptr) { |
; CHECK-NEXT: call void @llvm.dbg.value{{.*}} |
@@ -628,25 +628,29 @@ define void @nop(i8* %ptr) { |
; CHECK: attributes {{.*}}[[NOUNWIND]] = { nounwind } |
!llvm.dbg.cu = !{!0} |
-!llvm.module.flags = !{!11, !12} |
-!llvm.ident = !{!13} |
- |
-!0 = metadata !{metadata !"0x11\0012\00clang version 3.6.0", metadata !1, metadata !2, metadata !2, metadata !3, metadata !2, metadata !2} ; [ DW_TAG_compile_unit ] [/home/foo/test_debug.c] [DW_LANG_C99] |
-!1 = metadata !{metadata !"test_debug.c", metadata !"/home/foo"} |
-!2 = metadata !{} |
-!3 = metadata !{metadata !4} |
-!4 = metadata !{metadata !"0x2e\00nop\00nop\00\001\000\001\000\000\00256\001\001", metadata !1, metadata !5, metadata !6, null, void (i8*)* @nop, null, null, metadata !9} ; [ DW_TAG_subprogram ] [line 1] [def] [nop] |
jvoung (off chromium)
2015/05/26 20:39:45
If the test is now checking that "void (i32)* @deb
Derek Schuff
2015/05/26 22:01:33
Done.
|
-!5 = metadata !{metadata !"0x29", metadata !1} ; [ DW_TAG_file_type ] [/home/foo/test_debug.c] |
-!6 = metadata !{metadata !"0x15\00\000\000\000\000\000\000", null, null, null, metadata !7, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ] |
-!7 = metadata !{null, metadata !8} |
-!8 = metadata !{metadata !"0xf\00\000\0032\0032\000\000", null, null, null} ; [ DW_TAG_pointer_type ] [line 0, size 32, align 32, offset 0] [from ] |
-!9 = metadata !{metadata !10} |
-!10 = metadata !{metadata !"0x101\00ptr\0016777217\000", metadata !4, metadata !5, metadata !8} ; [ DW_TAG_arg_variable ] [ptr] [line 1] |
-!11 = metadata !{i32 2, metadata !"Dwarf Version", i32 4} |
-!12 = metadata !{i32 2, metadata !"Debug Info Version", i32 2} |
-!13 = metadata !{metadata !"clang version 3.6.0"} |
-!14 = metadata !{metadata !"0x102"} ; [ DW_TAG_expression ] |
-!15 = metadata !{i32 1, i32 16, metadata !4, null} |
-!16 = metadata !{i32 2, i32 1, metadata !4, null} |
- |
-; CHECK: !4 = metadata !{{{.*}}nop{{.*}}, void (i32)* @nop, {{.*}}} ; [ DW_TAG_subprogram ] [line 1] [def] [nop] |
+!llvm.module.flags = !{!8, !9} |
+!llvm.ident = !{!10} |
+ |
+; CHECK: !4 = !MDSubprogram(name: "debug_declare", scope: !1, file: !1, line: 1, type: !5, isLocal: false, isDefinition: true, scopeLine: 1, flags: DIFlagPrototyped, isOptimized: false, function: void (i32)* @debug_declare, variables: !2) |
+ |
+!0 = !MDCompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.7.0 (trunk 235150) (llvm/trunk 235152)", isOptimized: false, runtimeVersion: 0, emissionKind: 1, enums: !2, retainedTypes: !2, subprograms: !3, globals: !2, imports: !2) |
+!1 = !MDFile(filename: "foo.c", directory: "/s/llvm/cmakebuild") |
+!2 = !{} |
+!3 = !{!4} |
+!4 = !MDSubprogram(name: "debug_declare", scope: !1, file: !1, line: 1, type: !5, isLocal: false, isDefinition: true, scopeLine: 1, flags: DIFlagPrototyped, isOptimized: false, function: void (i32)* @debug_declare, variables: !2) |
+!5 = !MDSubroutineType(types: !6) |
+!6 = !{null, !7} |
+!7 = !MDBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) |
+!8 = !{i32 2, !"Dwarf Version", i32 4} |
+!9 = !{i32 2, !"Debug Info Version", i32 3} |
+!10 = !{!"clang version 3.7.0 (trunk 235150) (llvm/trunk 235152)"} |
+!11 = !MDLocalVariable(tag: DW_TAG_arg_variable, name: "val", arg: 1, scope: !4, file: !1, line: 1, type: !7) |
+!12 = !MDExpression() |
+!13 = !MDLocation(line: 1, column: 24, scope: !4) |
+ |
+!14 = !MDLocalVariable(tag: DW_TAG_auto_variable, name: "var", scope: !4, file: !1, line: 2, type: !15) |
+!15 = !MDCompositeType(tag: DW_TAG_array_type, baseType: !7, align: 32, elements: !16) |
+!16 = !{!17} |
+!17 = !MDSubrange(count: -1) |
+!18 = !MDLocation(line: 2, column: 11, scope: !4) |
+!19 = !MDLocation(line: 2, column: 3, scope: !4) |