This is an archive of the discontinued LLVM Phabricator instance.

Add a DIExternalTypeRef debug metadata node to the IR.
AbandonedPublic

Authored by aprantl on May 8 2015, 11:18 AM.

Details

Summary

This adds a DIExternalTypeRef debug metadata node to the IR that is meant to be emitted by Clang when referring to a type that is defined in a .pcm file. DIExternalTypeRef is a child of DICompositeTypeBase because it shares common traits such as the unique identifier.

The idea how this is going to be used is that the frontend will discover that a type originates from an AST file and instead of and constructing a full DIType (and thus deserializing the type from the AST) it creates a DIExternalTypeRef with the tag type, mangled name and the .pcm file. The backend then can emit this as a split-DWARF-style forward declaration using DW_FORM_ref_sig8 (GDB) or as a string reference (LLDB) + and accelerator table entry.

Diff Detail

Repository
rL LLVM

Event Timeline

aprantl updated this revision to Diff 25348.May 8 2015, 11:18 AM
aprantl retitled this revision from to Add a DIExternalTypeRef debug metadata node to the IR..
aprantl updated this object.
aprantl edited the test plan for this revision. (Show Details)
aprantl added reviewers: dexonsmith, dblaikie, echristo.
aprantl set the repository for this revision to rL LLVM.
aprantl added a subscriber: Unknown Object (MLST).
aprantl abandoned this revision.May 21 2015, 10:54 AM

Abandoning this revision in favor of adding a FlagExternalTypeRef to be used by DICompositeType to the DebugInfoFlags.