search for: tempmdnode

Displaying 4 results from an estimated 4 matches for "tempmdnode".

2014 Nov 10
5
[LLVMdev] [RFC] Separating Metadata from the Value hierarchy
...w pointers to MDNodes everywhere. Almost. Two caveats: 1. Handles should generally be `MDRef` instead of `Metadata*`, since I threw in reference-counting semantics so that no-longer-referenced metadata cleans itself up. 2. If a handle might point to a forward reference -- i.e., a `TempMDNode` in this patch -- it should use `TrackingMDRef`. When the forward reference gets resolved, it updates all of its tracking references. Nevertheless, `sizeof(MDRef) == sizeof(TrackingMDRef) == sizeof(void*)`. Frontends *only* pay memory overhead for the currently-unresolved forward referenc...
2016 Feb 24
0
How to resolve debug info forward types
...file, loc.m_Line, sizeOf(actual) * 8, alignOf(actual) * 8, 0, nullptr, elts); it = m_TmpStructDI.find(name); if (it != m_TmpStructDI.end()) { MDNode *node = /* the result from createReplaceableCompositeType earlier */ llvm::TempMDNode fwd_decl(node); m_DIBuilder->replaceTemporary(std::move(fwd_decl), result); You will need to keep a map of outstanding temporary forward declarations to do this. On Wed, Feb 24, 2016 at 5:09 PM, Rodney M. Bates via llvm-dev < llvm-dev at lists.llvm.org> wrote: > Before metad...
2016 Feb 24
3
How to resolve debug info forward types
Before metadata was separated from values, I could create a debug info forward declaration and eventually resolve it using LLVMReplaceAllUsesWith in core.h. Now, I can't figure out how to resolve it. I can find no function that seems to do this. My one wild guess that giving the forward decl and the resolving decl the same UniqueId might do it is not working. I am currently using 3.6.1, but
2014 Nov 10
12
[LLVMdev] [RFC] Separating Metadata from the Value hierarchy
TL;DR: If you use metadata (especially if it's out-of-tree), check the numbered list of lost functionality below to see whether I'm trying to break your compiler permanently. In response to my recent commits (e.g., [1]) that changed API from `MDNode` to `Value`, Eric had a really interesting idea [2] -- split metadata entirely from the `Value` hierarchy, and drop general support for