[llvm] r266835 - IR: Use std::vector instead of SmallPtrSet for distinct nodes, NFC
David Blaikie via llvm-commits
llvm-commits at lists.llvm.org
Tue Apr 19 18:23:35 PDT 2016
SmallVector? (or I guess std::vector allows this to not impact the size of
LLVMContext very much & there's no small size that'd practically fit all
the nodes in the small space when used anyway?)
On Tue, Apr 19, 2016 at 4:59 PM, Duncan P. N. Exon Smith via llvm-commits <
llvm-commits at lists.llvm.org> wrote:
> Author: dexonsmith
> Date: Tue Apr 19 18:59:13 2016
> New Revision: 266835
>
> URL: http://llvm.org/viewvc/llvm-project?rev=266835&view=rev
> Log:
> IR: Use std::vector instead of SmallPtrSet for distinct nodes, NFC
>
> We never use the set-ness of SmallPtrSet for distinct nodes. Eventually
> we may start garbage-collecting or reference-counting nodes (in which
> cases we'd want to remove things from this collection, and a fast erase
> would be valuable), but in the meantime a vector is sufficient.
>
> Modified:
> llvm/trunk/lib/IR/LLVMContextImpl.h
> llvm/trunk/lib/IR/Metadata.cpp
>
> Modified: llvm/trunk/lib/IR/LLVMContextImpl.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/LLVMContextImpl.h?rev=266835&r1=266834&r2=266835&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/IR/LLVMContextImpl.h (original)
> +++ llvm/trunk/lib/IR/LLVMContextImpl.h Tue Apr 19 18:59:13 2016
> @@ -33,6 +33,7 @@
> #include "llvm/IR/Metadata.h"
> #include "llvm/IR/ValueHandle.h"
> #include "llvm/Support/Dwarf.h"
> +#include <vector>
>
> namespace llvm {
>
> @@ -1026,9 +1027,9 @@ public:
>
> // MDNodes may be uniqued or not uniqued. When they're not uniqued,
> they
> // aren't in the MDNodeSet, but they're still shared between objects,
> so no
> - // one object can destroy them. This set allows us to at least destroy
> them
> - // on Context destruction.
> - SmallPtrSet<MDNode *, 1> DistinctMDNodes;
> + // one object can destroy them. Keep track of them here so we can
> delete
> + // them on context teardown.
> + std::vector<MDNode *> DistinctMDNodes;
>
> DenseMap<Type*, ConstantAggregateZero*> CAZConstants;
>
>
> Modified: llvm/trunk/lib/IR/Metadata.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/Metadata.cpp?rev=266835&r1=266834&r2=266835&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/IR/Metadata.cpp (original)
> +++ llvm/trunk/lib/IR/Metadata.cpp Tue Apr 19 18:59:13 2016
> @@ -806,7 +806,7 @@ void MDNode::storeDistinctInContext() {
> #include "llvm/IR/Metadata.def"
> }
>
> - getContext().pImpl->DistinctMDNodes.insert(this);
> + getContext().pImpl->DistinctMDNodes.push_back(this);
> }
>
> void MDNode::replaceOperandWith(unsigned I, Metadata *New) {
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160419/0af329f2/attachment.html>
More information about the llvm-commits
mailing list