Please use GitHub pull requests for new patches. Avoid migrating existing patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
llvm/test/DebugInfo/MIR/X86/live-debug-values-stack-clobber.mir
Show All 26 Lines | |||||
# FORCE_SPILL(); | # FORCE_SPILL(); | ||||
# bees++; | # bees++; | ||||
# return quux; | # return quux; | ||||
# } | # } | ||||
# -------->8-------- | # -------->8-------- | ||||
# | # | ||||
# CHECK: ![[ANUM:[0-9]+]] = !DILocalVariable(name: "a" | # CHECK: ![[ANUM:[0-9]+]] = !DILocalVariable(name: "a" | ||||
# CHECK: ![[BNUM:[0-9]+]] = !DILocalVariable(name: "b" | # CHECK: ![[BNUM:[0-9]+]] = !DILocalVariable(name: "b" | ||||
# CHECK: ![[CNUM:[0-9]+]] = !DILocalVariable(name: "c" | |||||
# | # | ||||
# These variables should be spilt, | # These variables should be spilt, | ||||
# CHECK-LABEL: bb.1.if.end: | # CHECK-LABEL: bb.1.if.end: | ||||
# CHECK: MOV64mr $rsp, 1, $noreg, 16, $noreg, killed renamable $rsi | # CHECK: MOV64mr $rsp, 1, $noreg, 16, $noreg, killed renamable $rsi | ||||
# CHECK-NEXT: DBG_VALUE_LIST ![[CNUM]], !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_plus_uconst, 16, DW_OP_deref | |||||
# CHECK-SAME: $rsp, $rdi | |||||
# CHECK-NEXT: DBG_VALUE $rsp, 0, ![[BNUM]], !DIExpression( | # CHECK-NEXT: DBG_VALUE $rsp, 0, ![[BNUM]], !DIExpression( | ||||
# CHECK-NEXT: MOV64mr $rsp, 1, $noreg, 8, $noreg, killed renamable $rdi | # CHECK-NEXT: MOV64mr $rsp, 1, $noreg, 8, $noreg, killed renamable $rdi | ||||
# CHECK-NEXT: DBG_VALUE_LIST ![[CNUM]], !DIExpression({{[^)]+}}DW_OP_LLVM_arg, 1, DW_OP_plus_uconst, 8, DW_OP_deref | |||||
# CHECK-SAME: $rsp, $rsp | |||||
# CHECK-NEXT: DBG_VALUE $rsp, 0, ![[ANUM]], !DIExpression( | # CHECK-NEXT: DBG_VALUE $rsp, 0, ![[ANUM]], !DIExpression( | ||||
# CHECK-NEXT: INLINEASM | # CHECK-NEXT: INLINEASM | ||||
# | # | ||||
# Then the location of "a" should be terminated when overwritten | # Then the location of "a" should be terminated when overwritten | ||||
# CHECK-LABEL: bb.3.if.end3: | # CHECK-LABEL: bb.3.if.end3: | ||||
# CHECK: CALL64pcrel32 @sum | # CHECK: CALL64pcrel32 @sum | ||||
# CHECK-NEXT: MOV64mr $rsp, 1, $noreg, 8, $noreg, $rax | # CHECK-NEXT: MOV64mr $rsp, 1, $noreg, 8, $noreg, $rax | ||||
# CHECK-NEXT: DBG_VALUE_LIST ![[CNUM]], !DIExpression({{[^)]*}}), $noreg, $noreg | |||||
# CHECK-NEXT: DBG_VALUE $noreg, $noreg, ![[ANUM]], !DIExpression() | # CHECK-NEXT: DBG_VALUE $noreg, $noreg, ![[ANUM]], !DIExpression() | ||||
# CHECK-NEXT: INLINEASM | # CHECK-NEXT: INLINEASM | ||||
--- | | --- | | ||||
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" | target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" | ||||
target triple = "x86_64-unknown-linux-gnu" | target triple = "x86_64-unknown-linux-gnu" | ||||
@bees = external global i32, !dbg !0 | @bees = external global i32, !dbg !0 | ||||
Show All 31 Lines | --- | | ||||
!10 = !{i32 1, !"wchar_size", i32 4} | !10 = !{i32 1, !"wchar_size", i32 4} | ||||
!12 = distinct !DISubprogram(name: "f", scope: !3, file: !3, line: 15, type: !13, scopeLine: 15, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !2, retainedNodes: !16) | !12 = distinct !DISubprogram(name: "f", scope: !3, file: !3, line: 15, type: !13, scopeLine: 15, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !2, retainedNodes: !16) | ||||
!13 = !DISubroutineType(types: !14) | !13 = !DISubroutineType(types: !14) | ||||
!14 = !{!15, !15, !15} | !14 = !{!15, !15, !15} | ||||
!15 = !DIBasicType(name: "long int", size: 64, encoding: DW_ATE_signed) | !15 = !DIBasicType(name: "long int", size: 64, encoding: DW_ATE_signed) | ||||
!16 = !{!17, !18, !19} | !16 = !{!17, !18, !19} | ||||
!17 = !DILocalVariable(name: "a", arg: 1, scope: !12, file: !3, line: 15, type: !15) | !17 = !DILocalVariable(name: "a", arg: 1, scope: !12, file: !3, line: 15, type: !15) | ||||
!18 = !DILocalVariable(name: "b", arg: 2, scope: !12, file: !3, line: 15, type: !15) | !18 = !DILocalVariable(name: "b", arg: 2, scope: !12, file: !3, line: 15, type: !15) | ||||
!19 = !DILocalVariable(name: "quux", scope: !12, file: !3, line: 23, type: !7) | !19 = !DILocalVariable(name: "c", scope: !12, file: !3, line: 23, type: !7) | ||||
!28 = !DILocation(line: 1, column: 1, scope: !12) | !28 = !DILocation(line: 1, column: 1, scope: !12) | ||||
... | ... | ||||
--- | --- | ||||
name: f | name: f | ||||
tracksRegLiveness: true | tracksRegLiveness: true | ||||
liveins: | liveins: | ||||
- { reg: '$rdi', virtual-reg: '' } | - { reg: '$rdi', virtual-reg: '' } | ||||
Show All 35 Lines | body: | | ||||
bb.0.entry: | bb.0.entry: | ||||
successors: %bb.4, %bb.1 | successors: %bb.4, %bb.1 | ||||
liveins: $rdi, $rsi, $rbp, $r15, $r14, $r13, $r12, $rbx | liveins: $rdi, $rsi, $rbp, $r15, $r14, $r13, $r12, $rbx | ||||
DBG_VALUE $rdi, $noreg, !17, !DIExpression(), debug-location !28 | DBG_VALUE $rdi, $noreg, !17, !DIExpression(), debug-location !28 | ||||
DBG_VALUE $rdi, $noreg, !17, !DIExpression(), debug-location !28 | DBG_VALUE $rdi, $noreg, !17, !DIExpression(), debug-location !28 | ||||
DBG_VALUE $rsi, $noreg, !18, !DIExpression(), debug-location !28 | DBG_VALUE $rsi, $noreg, !18, !DIExpression(), debug-location !28 | ||||
DBG_VALUE $rsi, $noreg, !18, !DIExpression(), debug-location !28 | DBG_VALUE $rsi, $noreg, !18, !DIExpression(), debug-location !28 | ||||
DBG_VALUE_LIST !19, !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_arg, 1, DW_OP_plus), $rsi, $rdi, debug-location !28 | |||||
frame-setup PUSH64r killed $rbp, implicit-def $rsp, implicit $rsp, debug-location !28 | frame-setup PUSH64r killed $rbp, implicit-def $rsp, implicit $rsp, debug-location !28 | ||||
frame-setup PUSH64r killed $r15, implicit-def $rsp, implicit $rsp, debug-location !28 | frame-setup PUSH64r killed $r15, implicit-def $rsp, implicit $rsp, debug-location !28 | ||||
frame-setup PUSH64r killed $r14, implicit-def $rsp, implicit $rsp, debug-location !28 | frame-setup PUSH64r killed $r14, implicit-def $rsp, implicit $rsp, debug-location !28 | ||||
frame-setup PUSH64r killed $r13, implicit-def $rsp, implicit $rsp, debug-location !28 | frame-setup PUSH64r killed $r13, implicit-def $rsp, implicit $rsp, debug-location !28 | ||||
frame-setup PUSH64r killed $r12, implicit-def $rsp, implicit $rsp, debug-location !28 | frame-setup PUSH64r killed $r12, implicit-def $rsp, implicit $rsp, debug-location !28 | ||||
frame-setup PUSH64r killed $rbx, implicit-def $rsp, implicit $rsp, debug-location !28 | frame-setup PUSH64r killed $rbx, implicit-def $rsp, implicit $rsp, debug-location !28 | ||||
$rsp = frame-setup SUB64ri8 $rsp, 24, implicit-def dead $eflags | $rsp = frame-setup SUB64ri8 $rsp, 24, implicit-def dead $eflags | ||||
renamable $ecx = MOV32rm $rip, 1, $noreg, @bees, $noreg, debug-location !28 :: (volatile dereferenceable load (s32) from @bees) | renamable $ecx = MOV32rm $rip, 1, $noreg, @bees, $noreg, debug-location !28 :: (volatile dereferenceable load (s32) from @bees) | ||||
▲ Show 20 Lines • Show All 46 Lines • Show Last 20 Lines |