diff options
author | Lang Hames <lhames@gmail.com> | 2019-05-16 18:29:34 +0000 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2019-05-16 18:29:34 +0000 |
commit | c97b50e2247ffcea30138f2255d48ff83426e8b2 (patch) | |
tree | e75829a54aab5ce433b4c8865bae3606a17e3094 /llvm/lib/ExecutionEngine | |
parent | 20040db9a686e9d946cc40acee17d7a00ceeede3 (diff) | |
download | bcm5719-llvm-c97b50e2247ffcea30138f2255d48ff83426e8b2.tar.gz bcm5719-llvm-c97b50e2247ffcea30138f2255d48ff83426e8b2.zip |
[ORC] Change handling for SymbolStringPtr tombstones and empty keys.
SymbolStringPtr used to use nullptr as its empty value and (since it performed
ref-count operations on any non-nullptr) a pointer to a special pool-entry
instance as its tombstone.
This commit changes the scheme to use two invalid pointer values as the empty
and tombstone values, and broadens the ref-count guard to prevent ref-counting
operations from being performed on these pointers. This should improve the
performance of SymbolStringPtrs used in DenseMaps/DenseSets, as ref counting
operations will no longer be performed on the tombstone.
llvm-svn: 360925
Diffstat (limited to 'llvm/lib/ExecutionEngine')
-rw-r--r-- | llvm/lib/ExecutionEngine/Orc/Core.cpp | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/llvm/lib/ExecutionEngine/Orc/Core.cpp b/llvm/lib/ExecutionEngine/Orc/Core.cpp index 674b44501ac..bbc5a3e8dab 100644 --- a/llvm/lib/ExecutionEngine/Orc/Core.cpp +++ b/llvm/lib/ExecutionEngine/Orc/Core.cpp @@ -133,8 +133,6 @@ struct PrintSymbolMapElemsMatchingCLOpts { namespace llvm { namespace orc { -SymbolStringPool::PoolMapEntry SymbolStringPtr::Tombstone(0); - char FailedToMaterialize::ID = 0; char SymbolsNotFound::ID = 0; char SymbolsCouldNotBeRemoved::ID = 0; |