mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 04:32:44 +01:00
[Utils] Salvage the debug info of DCE'ed 'sub' instructions
This salvages 14 debug values in a stage2 build of clang. llvm-svn: 324974
This commit is contained in:
parent
cda75a7d36
commit
2847f38775
@ -1546,6 +1546,9 @@ void llvm::salvageDebugInfo(Instruction &I) {
|
|||||||
case Instruction::Add:
|
case Instruction::Add:
|
||||||
applyOffset(DII, Val);
|
applyOffset(DII, Val);
|
||||||
break;
|
break;
|
||||||
|
case Instruction::Sub:
|
||||||
|
applyOffset(DII, -int64_t(Val));
|
||||||
|
break;
|
||||||
case Instruction::Or:
|
case Instruction::Or:
|
||||||
applyOps(DII, {dwarf::DW_OP_constu, Val, dwarf::DW_OP_or});
|
applyOps(DII, {dwarf::DW_OP_constu, Val, dwarf::DW_OP_or});
|
||||||
break;
|
break;
|
||||||
|
@ -24,6 +24,20 @@ define void @test_xor(i32 %A) {
|
|||||||
ret void
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
|
define void @test_sub_neg(i64 %A) {
|
||||||
|
; CHECK-LABEL: @test_sub_neg(
|
||||||
|
; CHECK-NEXT: call void @llvm.dbg.value(metadata i64 %A, metadata !27, metadata !DIExpression(DW_OP_plus_uconst, 1, DW_OP_stack_value)), !dbg !28
|
||||||
|
%1 = sub i64 %A, -1
|
||||||
|
ret void
|
||||||
|
}
|
||||||
|
|
||||||
|
define void @test_sub_pos(i64 %A) {
|
||||||
|
; CHECK-LABEL: @test_sub_pos(
|
||||||
|
; CHECK-NEXT: call void @llvm.dbg.value(metadata i64 %A, metadata !32, metadata !DIExpression(DW_OP_constu, 1, DW_OP_minus, DW_OP_stack_value)), !dbg !33
|
||||||
|
%1 = sub i64 %A, 1
|
||||||
|
ret void
|
||||||
|
}
|
||||||
|
|
||||||
; CHECK: !8 = !DILocalVariable(name: "1", scope: !5, file: !1, line: 1, type: !9)
|
; CHECK: !8 = !DILocalVariable(name: "1", scope: !5, file: !1, line: 1, type: !9)
|
||||||
; CHECK: !10 = !DILocalVariable(name: "2", scope: !5, file: !1, line: 2, type: !11)
|
; CHECK: !10 = !DILocalVariable(name: "2", scope: !5, file: !1, line: 2, type: !11)
|
||||||
; CHECK: !12 = !DILocation(line: 2, column: 1, scope: !5)
|
; CHECK: !12 = !DILocation(line: 2, column: 1, scope: !5)
|
||||||
@ -34,3 +48,9 @@ define void @test_xor(i32 %A) {
|
|||||||
|
|
||||||
; CHECK: !22 = !DILocalVariable(name: "4", scope: !20, file: !1, line: 6, type: !9)
|
; CHECK: !22 = !DILocalVariable(name: "4", scope: !20, file: !1, line: 6, type: !9)
|
||||||
; CHECK: !23 = !DILocation(line: 6, column: 1, scope: !20)
|
; CHECK: !23 = !DILocation(line: 6, column: 1, scope: !20)
|
||||||
|
|
||||||
|
; CHECK: !27 = !DILocalVariable(name: "5", scope: !25, file: !1, line: 8, type: !11)
|
||||||
|
; CHECK: !28 = !DILocation(line: 8, column: 1, scope: !25)
|
||||||
|
|
||||||
|
; CHECK: !32 = !DILocalVariable(name: "6", scope: !30, file: !1, line: 10, type: !11)
|
||||||
|
; CHECK: !33 = !DILocation(line: 10, column: 1, scope: !30)
|
||||||
|
Loading…
Reference in New Issue
Block a user