[LLVMdev] First-class debug info IR: MDLocation
Duncan P. N. Exon Smith
dexonsmith at apple.com
Mon Oct 27 09:22:27 PDT 2014
> On 2014-Oct-24, at 16:37, David Blaikie <dblaikie at gmail.com> wrote:
>
>> Notice that only the links to parents (i.e., `context:`) are explicit
>> here -- backlinks are implied. For example, !7 and !8 point to !6, but
>> not the reverse.
>
> This may be a problem - the difference between nodes in a structure/class_type's member list, and those that are not in the member list but refer to the class/structure as their parent is meaningful. Type units use this distinction to avoid emitting instantiation-specific data into the canonical type unit (nested classes, implicit special members, member template instantiations, etc).
>
> Not sure what the right answer will be there.
Interesting. Could we model that with a Boolean flag on the child?
Also, would there be value in modelling type units more explicitly in
the IR?
> Presumably when dumping the fields will come in a specific, defined order? (probably not preserving the original source order, etc) Variation there would probably make checking harder than it needs to be.
Right.
>
> Would it be possible to omit the names of unreferenced nested metadata? (if you have a bunch of member functions in a class, but don't need to refer to them elsewhere (eg: those member functions aren't defined in this translation unit)) - that'd help readability/writeability, but probably wouldn't impact FileCheck.
Certainly possible, but is it generally desirable? I guess we'll
sort that out when I get there.
>
> Also the whole "metadata " prefix on anything is a bit verbose, if we can omit that in some/many places, that'll help reduce the visual noise/improve readability/writeability.
>
> But most/all of that I imagine is fairly easily incremental change/improvement, nothing fundamental that needs to be chosen up-front.
More information about the llvm-dev
mailing list