Sander De Smalen via llvm-dev
2018-Jan-04 16:53 UTC
[llvm-dev] RFC: Extending DISubrange count field
Hi,
To improve debug information for variable length arrays
(https://bugs.llvm.org/show_bug.cgi?id=30553) I have proposed some changes to
Metadata IR's DISubrange node. To get some wider visibility on this, I'm
sharing this as an RFC with llvm-dev.
The proposed change is to extend the 'count' field to also accept a
Metadata node, rather than only accepting a signed integer. For example:
!10 = !DILocalVariable(name: "count", scope: !8, file: !6, line: 42,
type: !9)
!11 = !DISubrange(count !10, lowerBound: 0)
^^^ references the local variable
This allows specifying the size of an array by referencing the DIE of a local
variable that holds the size expression. Another reason to extend the count
field is to specify the length with a DIExpression. For instance, we need this
to specify the length of an SVE vector as a DWARF expression that is based on a
(runtime defined) DWARF pseudo register.
Some preliminary feedback was that we may want to use something similar for
lowerBound as well. Also Adrian suggested
(https://reviews.llvm.org/D41697#966736) that it may be useful in general to
reference Metadata nodes in DIExpressions if we ever need to combine local
variables with DWARF expressions. Something like that might be needed to e.g.
reference a value from an offset of a pointer when using an array descriptor,
although I could use some suggestions on what DWARF code needs to be generated
for this general case.
The whole patch-series can be found here:
https://reviews.llvm.org/D41695
https://reviews.llvm.org/D41696
https://reviews.llvm.org/D41697
https://reviews.llvm.org/D41698
Thanks,
Sander
IMPORTANT NOTICE: The contents of this email and any attachments are
confidential and may also be privileged. If you are not the intended recipient,
please notify the sender immediately and do not disclose the contents to any
other person, use it for any purpose, or store or copy the information in any
medium. Thank you.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20180104/2d9de854/attachment.html>
Apparently Analagous Threads
- RFC: Adding debug information to LLVM to support Fortran
- Fwd: RFC: Adding debug information to LLVM to support Fortran
- [LLVMdev] How to unroll loop with non-constant boundary
- [LLVMdev] How to unroll loop with non-constant boundary
- [LLVMdev] How to unroll loop with non-constant boundary
