There are conditions when DW_TAG_GNU_call_site is generated which has
no child of tag DW_TAG_GNU_call_site_parameter. This information does
not help and only contributes to incresed size of DWARF info.
Below is the test program.
```````````````````````````
subroutine fun (array)
integer :: array (*)
array(5:10) = 1311
array(7) = 1
array(100) = 100
return
end subroutine
program vla
interface
subroutine fun (array)
integer :: array (*)
end subroutine
end interface
integer :: sub_arr(42)
sub_arr(:) = 3
call fun(sub_arr)
end program vla
```````````````````````````
which produces,
0x00000060: DW_TAG_GNU_call_site
DW_AT_abstract_origin (0x00000088 "fun")
DW_AT_low_pc (0x000000000000007a)
0x0000006d: NULL
```````````````````````````Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Unit Tests
Unit Tests
Event Timeline
Comment Actions
Actually, the call_site DIE is being used for printing artificial frames for tail calls...
Comment Actions
Is there LLVM test coverage for this? If not it'd be good to make sure some is added.
Comment Actions
There are (the premerge also shows it). By applying this patch we have:
Failed Tests: LLVM :: CodeGen/X86/xray-custom-log.ll LLVM :: DebugInfo/AArch64/unretained-declaration-subprogram.ll LLVM :: DebugInfo/MIR/ARM/call-site-info-vmovd.mir LLVM :: DebugInfo/MIR/ARM/call-site-info-vmovs.mir LLVM :: DebugInfo/MIR/Hexagon/bundled-call-pr44001.mir LLVM :: DebugInfo/MIR/X86/call-site-gnu-vs-dwarf5-attrs.mir LLVM :: DebugInfo/MIR/X86/debug-call-site-param.mir LLVM :: DebugInfo/X86/convert-loclist.ll LLVM :: DebugInfo/X86/dbg-call-site-undef-params.ll LLVM :: DebugInfo/X86/debug_addr.ll LLVM :: DebugInfo/X86/dwarf-callsite-related-attrs.ll LLVM :: DebugInfo/X86/fission-call-site.ll LLVM :: DebugInfo/X86/lto-cross-cu-call-origin-ref.ll LLVM :: DebugInfo/X86/ranges_always.ll LLVM :: tools/llvm-dwarfdump/X86/stats-dbg-callsite-info.ll