<div dir="ltr">Actually, this change doesn't add anything to LLVMContext.  However, it does change the type of LLVMContextImpl::DIImportedEntitys from DenseSet to SetVector, which obviates the need to keep an additional vector, since that's what SetVector does anyway.<div><br></div><div>Changing the type did require the addition of a couple of macros and overloaded methods, as well as exposing the underlying DenseSet in SetVector in order to efficiently check existence before new'ing a new instance of DIImportedEntity.</div><div><br></div><div>It also allowed us to remove all the extra vector code from DIBuilder.</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Mar 7, 2016 at 2:51 PM, David Blaikie via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Pretty sure we shouldn't be adding things to LLVMContext for this, but I haven't looked closely at the patch/followed the discussion that got us there in the first place. Will come back to this when I get a chance (probably later this week) but I'm mentioning it in case others reading/interacting on the thread can figure it out before then.</div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="h5">On Mon, Mar 7, 2016 at 9:18 AM, Amjad Aboud via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">aaboud updated this revision to Diff 49973.<br>
aaboud added a comment.<br>
<br>
Another try, this time I am uploading suggested solution by Don Hinton.<br>
He is suggesting to make "imports" field in DICompileUnit of new type "unique vector".<br>
Then we can get rid of AllImportedEntitys container and use directly the LLVMContext::impl::DIImportedEntitys instead<br>
<br>
<br>
<a href="http://reviews.llvm.org/D17884" rel="noreferrer" target="_blank">http://reviews.llvm.org/D17884</a><br>
<br>
Files:<br>
  include/llvm/ADT/SetVector.h<br>
  include/llvm/IR/Metadata.def<br>
  lib/IR/DIBuilder.cpp<br>
  lib/IR/LLVMContextImpl.h<br>
  lib/IR/Metadata.cpp<br>
  lib/IR/MetadataImpl.h<br>
  unittests/IR/IRBuilderTest.cpp<br>
<br>
<br></div></div><span class="">_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
<br></span></blockquote></div><br></div>
<br>_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
<br></blockquote></div><br></div>