mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-22 04:22:57 +02:00
44d3b31a46
Summary: Previously a BUNDLE instruction inherited the DebugLoc from the first instruction in the bundle, even if that DebugLoc had no DILocation. With this commit this is changed into selecting the first DebugLoc that has a DILocation, by searching among the bundled instructions. The idea is to reduce amount of bundles that are lacking debug locations. Reviewers: #debug-info, JDevlieghere Reviewed By: JDevlieghere Subscribers: JDevlieghere, mattd, llvm-commits Differential Revision: https://reviews.llvm.org/D50639 llvm-svn: 340267
59 lines
1.9 KiB
YAML
59 lines
1.9 KiB
YAML
# RUN: llc -march=hexagon -run-pass hexagon-packetizer %s -o - | FileCheck %s
|
|
|
|
##############################################################################
|
|
# This test case is not really hexagon specific, but we use hexagon to get
|
|
# bundling.
|
|
#
|
|
# The goal is to verify that the BUNDLE instruction is getting the first
|
|
# non-empty debug location among the bundled instructions.
|
|
##############################################################################
|
|
|
|
--- |
|
|
define void @test() { ret void }
|
|
|
|
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "llvm", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !3, retainedTypes: !3)
|
|
!1 = distinct !DISubprogram(name: "test", scope: !3, file: !3, line: 1, type: !2, isLocal: false, isDefinition: true, scopeLine: 2, flags: DIFlagPrototyped, isOptimized: true, unit: !0)
|
|
!2 = !DISubroutineType(types: !3)
|
|
!3 = !{null}
|
|
!5 = !DILocation(line: 126, column: 9, scope: !2)
|
|
!6 = !DILocation(line: 321, column: 4, scope: !2)
|
|
|
|
...
|
|
---
|
|
name: test
|
|
tracksRegLiveness: true
|
|
body: |
|
|
bb.0:
|
|
liveins: $r1
|
|
$r2 = L2_loadri_io $r1, 0, debug-location !5
|
|
$r3 = L2_loadri_io $r1, 0, debug-location !6
|
|
|
|
$r4 = L2_loadri_io $r1, 0
|
|
$r5 = L2_loadri_io $r1, 0, debug-location !5
|
|
|
|
$r6 = L2_loadri_io $r1, 0, debug-location !6
|
|
$r7 = L2_loadri_io $r1, 0
|
|
|
|
$r8 = L2_loadri_io $r1, 0
|
|
$r9 = L2_loadri_io $r1, 0
|
|
...
|
|
|
|
# CHECK-LABEL: name: test
|
|
|
|
# CHECK: BUNDLE
|
|
# CHECK-SAME: debug-location [[DL1:[0-9x<>]+]]
|
|
# CHECK-NEXT: L2_loadri_io $r1, 0, debug-location [[DL1]]
|
|
# CHECK-NEXT: L2_loadri_io $r1, 0, debug-location [[DL2:[0-9x<>]+]]
|
|
|
|
# CHECK: BUNDLE
|
|
# CHECK-SAME: debug-location [[DL1]]
|
|
# CHECK-NEXT: L2_loadri_io $r1, 0{{$}}
|
|
# CHECK-NEXT: L2_loadri_io $r1, 0, debug-location [[DL1]]
|
|
|
|
# CHECK: BUNDLE
|
|
# CHECK-SAME: debug-location [[DL2]]
|
|
# CHECK-NEXT: L2_loadri_io $r1, 0, debug-location [[DL2]]
|
|
|
|
# No debug-location printouts expected for the last bundle
|
|
# CHECK-NOT: debug-location
|