1- ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
21; RUN: opt -S -passes=jump-threading < %s | FileCheck %s
32
4- ; @process_block_branch checks that JumpThreading's processBlock() propagates
3+ ; @process_block_branch checks that JumpThreading's processBlock() propagates
54; the debug location to the new branch instruction.
65
76; @process_threadable_edges_branch checks that JumpThreading's processThreadableEdges()
87; propagates the debug location to the new branch instruction.
98
109define i32 @process_block_branch (i32 %action ) #0 !dbg !5 {
1110; CHECK-LABEL: define i32 @process_block_branch(
12- ; CHECK-SAME: i32 [[ACTION:%.*]]) #[[ATTR0:[0-9]+]] !dbg [[DBG5:![0-9]+]] {
13- ; CHECK-NEXT: [[ENTRY:.*:]]
14- ; CHECK-NEXT: switch i32 [[ACTION]], label %[[IF_THEN:.*]] [
15- ; CHECK-NEXT: i32 1, label %[[IF_THEN]]
16- ; CHECK-NEXT: i32 0, label %[[IF_THEN]]
17- ; CHECK-NEXT: ], !dbg [[DBG8:![0-9]+]]
18- ; CHECK: [[IF_THEN]]:
19- ; CHECK-NEXT: ret i32 undef, !dbg [[DBG9:![0-9]+]]
11+ ; CHECK: for.cond:
12+ ; CHECK-NEXT: br label %for.cond, !dbg [[DBG10:![0-9]+]]
2013;
2114entry:
2215 switch i32 %action , label %lor.rhs [
@@ -42,18 +35,8 @@ for.body: ; preds = %for.cond
4235
4336define void @process_threadable_edges_branch (i32 %value ) #0 !dbg !15 {
4437; CHECK-LABEL: define void @process_threadable_edges_branch(
45- ; CHECK-SAME: i32 [[VALUE:%.*]]) #[[ATTR0]] !dbg [[DBG10:![0-9]+]] {
46- ; CHECK-NEXT: [[ENTRY:.*:]]
47- ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[VALUE]], 32, !dbg [[DBG11:![0-9]+]]
48- ; CHECK-NEXT: [[ADD:%.*]] = add i32 [[VALUE]], 64, !dbg [[DBG12:![0-9]+]]
49- ; CHECK-NEXT: br i1 [[CMP]], label %[[L0:.*]], label %[[L2:.*]], !dbg [[DBG13:![0-9]+]]
50- ; CHECK: [[L0]]:
51- ; CHECK-NEXT: [[TMP0:%.*]] = call i32 @f2(), !dbg [[DBG14:![0-9]+]]
52- ; CHECK-NEXT: [[TMP1:%.*]] = call i32 @f2(), !dbg [[DBG15:![0-9]+]]
53- ; CHECK-NEXT: br label %[[L2]], !dbg [[DBG16:![0-9]+]]
54- ; CHECK: [[L2]]:
55- ; CHECK-NEXT: call void @f4(i32 [[ADD]]), !dbg [[DBG17:![0-9]+]]
56- ; CHECK-NEXT: ret void, !dbg [[DBG18:![0-9]+]]
38+ ; CHECK: L0:
39+ ; CHECK: br label %L2, !dbg [[DBG17:![0-9]+]]
5740;
5841entry:
5942 %cmp = icmp eq i32 %value , 32 , !dbg !16
@@ -95,6 +78,10 @@ attributes #0 = { nounwind }
9578!llvm.debugify = !{!2 , !3 }
9679!llvm.module.flags = !{!4 }
9780
81+ ;.
82+ ; CHECK: [[DBG10]] = !DILocation(line: 6,
83+ ; CHECK: [[DBG17]] = !DILocation(line: 13,
84+ ;.
9885
9986!0 = distinct !DICompileUnit (language: DW_LANG_C, file: !1 , producer: "debugify" , isOptimized: true , runtimeVersion: 0 , emissionKind: FullDebug)
10087!1 = !DIFile (filename: "temp.ll" , directory: "/" )
@@ -124,21 +111,3 @@ attributes #0 = { nounwind }
124111!25 = !DILocation (line: 17 , column: 1 , scope: !15 )
125112!26 = !DILocation (line: 18 , column: 1 , scope: !15 )
126113!27 = !DILocation (line: 19 , column: 1 , scope: !15 )
127- ;.
128- ; CHECK: [[META0:![0-9]+]] = distinct !DICompileUnit(language: DW_LANG_C, file: [[META1:![0-9]+]], producer: "debugify", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug)
129- ; CHECK: [[META1]] = !DIFile(filename: "temp.ll", directory: {{.*}})
130- ; CHECK: [[DBG5]] = distinct !DISubprogram(name: "process_block_branch", linkageName: "process_block_branch", scope: null, file: [[META1]], line: 1, type: [[META6:![0-9]+]], scopeLine: 1, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: [[META0]])
131- ; CHECK: [[META6]] = !DISubroutineType(types: [[META7:![0-9]+]])
132- ; CHECK: [[META7]] = !{}
133- ; CHECK: [[DBG8]] = !DILocation(line: 1, column: 1, scope: [[DBG5]])
134- ; CHECK: [[DBG9]] = !DILocation(line: 2, column: 1, scope: [[DBG5]])
135- ; CHECK: [[DBG10]] = distinct !DISubprogram(name: "process_threadable_edges_branch", linkageName: "process_threadable_edges_branch", scope: null, file: [[META1]], line: 8, type: [[META6]], scopeLine: 8, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: [[META0]])
136- ; CHECK: [[DBG11]] = !DILocation(line: 8, column: 1, scope: [[DBG10]])
137- ; CHECK: [[DBG12]] = !DILocation(line: 9, column: 1, scope: [[DBG10]])
138- ; CHECK: [[DBG13]] = !DILocation(line: 10, column: 1, scope: [[DBG10]])
139- ; CHECK: [[DBG14]] = !DILocation(line: 11, column: 1, scope: [[DBG10]])
140- ; CHECK: [[DBG15]] = !DILocation(line: 12, column: 1, scope: [[DBG10]])
141- ; CHECK: [[DBG16]] = !DILocation(line: 13, column: 1, scope: [[DBG10]])
142- ; CHECK: [[DBG17]] = !DILocation(line: 16, column: 1, scope: [[DBG10]])
143- ; CHECK: [[DBG18]] = !DILocation(line: 17, column: 1, scope: [[DBG10]])
144- ;.
0 commit comments