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