Please use GitHub pull requests for new patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
llvm/test/Transforms/InstCombine/debuginfo_add.ll
Show All 30 Lines | entry: | ||||
tail call void @llvm.dbg.value(metadata i32 undef, metadata !23, metadata !DIExpression()), !dbg !32 | tail call void @llvm.dbg.value(metadata i32 undef, metadata !23, metadata !DIExpression()), !dbg !32 | ||||
br i1 undef, label %for.end, label %for.body.lr.ph, !dbg !32 | br i1 undef, label %for.end, label %for.body.lr.ph, !dbg !32 | ||||
for.body.lr.ph: ; preds = %entry | for.body.lr.ph: ; preds = %entry | ||||
; The 'load' and the 'add' are sunken to this basic block. So let's verify that the related dbg.values are sunken as well. | ; The 'load' and the 'add' are sunken to this basic block. So let's verify that the related dbg.values are sunken as well. | ||||
; The add is later eliminated, so we verify that the dbg.value is salvaged by using DW_OP_minus. | ; The add is later eliminated, so we verify that the dbg.value is salvaged by using DW_OP_minus. | ||||
; CHECK-LABEL: for.body.lr.ph: | ; CHECK-LABEL: for.body.lr.ph: | ||||
; CHECK-NEXT: %0 = load | ; CHECK-NEXT: %0 = load | ||||
; CHECK-NEXT: call void @llvm.dbg.value(metadata i64 %0, metadata !25, metadata !DIExpression()), !dbg ! | |||||
; CHECK-NEXT: call void @llvm.dbg.value(metadata i64 %0, metadata !26, metadata !DIExpression(DW_OP_constu, 4096, DW_OP_minus, DW_OP_stack_value)), !dbg ! | ; CHECK-NEXT: call void @llvm.dbg.value(metadata i64 %0, metadata !26, metadata !DIExpression(DW_OP_constu, 4096, DW_OP_minus, DW_OP_stack_value)), !dbg ! | ||||
; CHECK-NEXT: call void @llvm.dbg.value(metadata i64 %0, metadata !25, metadata !DIExpression()), !dbg ! | |||||
Orlando: Am I right in thinking that this move is just a result of no longer calling `reverse(...)` in… | |||||
br label %for.body, !dbg !32 | br label %for.body, !dbg !32 | ||||
for.body: ; preds = %for.body.lr.ph, %for.body | for.body: ; preds = %for.body.lr.ph, %for.body | ||||
; CHECK-LABEL: for.body: | ; CHECK-LABEL: for.body: | ||||
%offset.010 = phi i64 [ %offset.08, %for.body.lr.ph ], [ %offset.0, %for.body ] | %offset.010 = phi i64 [ %offset.08, %for.body.lr.ph ], [ %offset.0, %for.body ] | ||||
%head_size.09 = phi i32 [ undef, %for.body.lr.ph ], [ %sub2, %for.body ] | %head_size.09 = phi i32 [ undef, %for.body.lr.ph ], [ %sub2, %for.body ] | ||||
tail call void @llvm.dbg.value(metadata i32 %head_size.09, metadata !23, metadata !DIExpression()), !dbg !31 | tail call void @llvm.dbg.value(metadata i32 %head_size.09, metadata !23, metadata !DIExpression()), !dbg !31 | ||||
%call = tail call i32 bitcast (i32 (...)* @use to i32 (i64, %struct.vm_object*)*)(i64 %offset.010, %struct.vm_object* %object) #3, !dbg !34 | %call = tail call i32 bitcast (i32 (...)* @use to i32 (i64, %struct.vm_object*)*)(i64 %offset.010, %struct.vm_object* %object) #3, !dbg !34 | ||||
▲ Show 20 Lines • Show All 66 Lines • Show Last 20 Lines |
Am I right in thinking that this move is just a result of no longer calling reverse(...) in the debuginfo sink update code in instcombine?