<br><br><div class="gmail_quote">On Mon Nov 17 2014 at 11:55:46 PM Duncan P. N. Exon Smith <<a href="mailto:dexonsmith@apple.com">dexonsmith@apple.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
> On 2014 Nov 17, at 20:46, Eric Christopher <<a href="mailto:echristo@gmail.com" target="_blank">echristo@gmail.com</a>> wrote:<br>
><br>
><br>
><br>
> On Mon Nov 17 2014 at 4:45:03 PM Duncan P. N. Exon Smith <<a href="mailto:dexonsmith@apple.com" target="_blank">dexonsmith@apple.com</a>> wrote:<br>
> Author: dexonsmith<br>
> Date: Mon Nov 17 18:37:17 2014<br>
> New Revision: 222205<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=222205&view=rev" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project?rev=222205&view=rev</a><br>
> Log:<br>
> IR: Split MDNode into GenericMDNode and MDNodeFwdDecl<br>
><br>
><br>
> Small bikeshedding:<br>
<br>
Bikeshedding welcome :).<br>
<br>
><br>
> ReplaceableNDNode maybe?<br>
><br>
> Best name I've been able to come up with so far.<br>
<br>
I think "forward declaration" should be in the name somewhere -- or<br>
"temporary", which was the old name for the concept.<br>
<br></blockquote><div><br></div><div>Forward declaration just has the current use, basically it's anything that we expect to replace at some point. Temporary could work, but then we'd want a validation if it was never actually replaced anywhere.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
These metadata are relatively expensive, since they're going to support<br>
RAUW, so I'd like the name to make it clear that they're not supposed to<br>
be long-lived.<br>
<br></blockquote><div><br></div><div>Sure.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I like "forward declaration" because that's the only purpose I know for<br>
them (well, aside from temporary uniquing hacks).  Also, there won't be<br>
any support for serializing these (assembly or bitcode), since they're<br>
not supposed to live that long.  Forward declaration implies that they'll<br>
be resolved eventually... but maybe it doesn't make it clear enough?<br>
<br></blockquote><div><br></div><div>Yeah, I'm not such a huge fan of that.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
(Essentially, I think "NeedsToBeReplacedMDNode" is more accurate than<br>
"ReplaceableMDNode".)<br>
<br></blockquote><div><br></div><div>Maybe just go back to Temporary then? It at least has the ephemeral connotation that you like.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Note that after-the-split, I plan to implement the RAUW support for both<br>
this class (whatever it's name) and `ValueAsMetadata` using a helper<br>
class called `ReplaceableMetadataImpl`, which is pretty similar to the<br>
name you suggested, but it's an Impl class so its name might not matter<br>
as much.<br>
<br></blockquote><div><br></div><div>:)</div><div><br></div><div>-eric</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Thoughts?</blockquote></div>