diff options
author | Lang Hames <lhames@gmail.com> | 2018-10-06 23:02:06 +0000 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2018-10-06 23:02:06 +0000 |
commit | cb5702c3fd741b9311bab7d9cce7cea39fc7ae42 (patch) | |
tree | fcddb2ce1cddf22b3b713a4c2dd903cb8434c7a3 /llvm/lib/ExecutionEngine | |
parent | 9fa1c66421666df6dce6da3a05524b5d60229be9 (diff) | |
download | bcm5719-llvm-cb5702c3fd741b9311bab7d9cce7cea39fc7ae42.tar.gz bcm5719-llvm-cb5702c3fd741b9311bab7d9cce7cea39fc7ae42.zip |
[ORC] Pass symbol name to discard by const reference.
This saves some unnecessary atomic ref-counting operations.
llvm-svn: 343927
Diffstat (limited to 'llvm/lib/ExecutionEngine')
-rw-r--r-- | llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp | 2 | ||||
-rw-r--r-- | llvm/lib/ExecutionEngine/Orc/Core.cpp | 4 | ||||
-rw-r--r-- | llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp | 2 | ||||
-rw-r--r-- | llvm/lib/ExecutionEngine/Orc/Layer.cpp | 5 | ||||
-rw-r--r-- | llvm/lib/ExecutionEngine/Orc/LazyReexports.cpp | 2 |
5 files changed, 8 insertions, 7 deletions
diff --git a/llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp b/llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp index 78ee0e73cfa..368969b7a57 100644 --- a/llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp +++ b/llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp @@ -85,7 +85,7 @@ private: std::move(SymbolToDefinition)); } - void discard(const JITDylib &V, SymbolStringPtr Name) override { + void discard(const JITDylib &V, const SymbolStringPtr &Name) override { // All original symbols were materialized by the CODLayer and should be // final. The function bodies provided by M should never be overridden. llvm_unreachable("Discard should never be called on an " diff --git a/llvm/lib/ExecutionEngine/Orc/Core.cpp b/llvm/lib/ExecutionEngine/Orc/Core.cpp index b44427d9d03..2e70c5caa9b 100644 --- a/llvm/lib/ExecutionEngine/Orc/Core.cpp +++ b/llvm/lib/ExecutionEngine/Orc/Core.cpp @@ -489,7 +489,7 @@ void AbsoluteSymbolsMaterializationUnit::materialize( } void AbsoluteSymbolsMaterializationUnit::discard(const JITDylib &JD, - SymbolStringPtr Name) { + const SymbolStringPtr &Name) { assert(Symbols.count(Name) && "Symbol is not part of this MU"); Symbols.erase(Name); } @@ -637,7 +637,7 @@ void ReExportsMaterializationUnit::materialize( } void ReExportsMaterializationUnit::discard(const JITDylib &JD, - SymbolStringPtr Name) { + const SymbolStringPtr &Name) { assert(Aliases.count(Name) && "Symbol not covered by this MaterializationUnit"); Aliases.erase(Name); diff --git a/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp b/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp index 962ae3306fe..0acc5db76f4 100644 --- a/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp +++ b/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp @@ -41,7 +41,7 @@ private: R.emit(); } - void discard(const JITDylib &JD, SymbolStringPtr Name) override { + void discard(const JITDylib &JD, const SymbolStringPtr &Name) override { llvm_unreachable("Discard should never occur on a LMU?"); } diff --git a/llvm/lib/ExecutionEngine/Orc/Layer.cpp b/llvm/lib/ExecutionEngine/Orc/Layer.cpp index 323e1d2214b..22dbf5c26d1 100644 --- a/llvm/lib/ExecutionEngine/Orc/Layer.cpp +++ b/llvm/lib/ExecutionEngine/Orc/Layer.cpp @@ -53,7 +53,8 @@ StringRef IRMaterializationUnit::getName() const { return "<null module>"; } -void IRMaterializationUnit::discard(const JITDylib &JD, SymbolStringPtr Name) { +void IRMaterializationUnit::discard(const JITDylib &JD, + const SymbolStringPtr &Name) { LLVM_DEBUG(JD.getExecutionSession().runSessionLocked([&]() { dbgs() << "In " << JD.getName() << " discarding " << *Name << " from MU@" << this << " (" << getName() << ")\n"; @@ -145,7 +146,7 @@ void BasicObjectLayerMaterializationUnit::materialize( } void BasicObjectLayerMaterializationUnit::discard(const JITDylib &JD, - SymbolStringPtr Name) { + const SymbolStringPtr &Name) { // FIXME: Support object file level discard. This could be done by building a // filter to pass to the object layer along with the object itself. } diff --git a/llvm/lib/ExecutionEngine/Orc/LazyReexports.cpp b/llvm/lib/ExecutionEngine/Orc/LazyReexports.cpp index 72db80bea87..0d8049178b5 100644 --- a/llvm/lib/ExecutionEngine/Orc/LazyReexports.cpp +++ b/llvm/lib/ExecutionEngine/Orc/LazyReexports.cpp @@ -187,7 +187,7 @@ void LazyReexportsMaterializationUnit::materialize( } void LazyReexportsMaterializationUnit::discard(const JITDylib &JD, - SymbolStringPtr Name) { + const SymbolStringPtr &Name) { assert(CallableAliases.count(Name) && "Symbol not covered by this MaterializationUnit"); CallableAliases.erase(Name); |