summaryrefslogtreecommitdiffstats
path: root/llvm/lib/ExecutionEngine/Orc/Layer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/ExecutionEngine/Orc/Layer.cpp')
-rw-r--r--llvm/lib/ExecutionEngine/Orc/Layer.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/llvm/lib/ExecutionEngine/Orc/Layer.cpp b/llvm/lib/ExecutionEngine/Orc/Layer.cpp
index 346dde4f7a8..1927bce45d4 100644
--- a/llvm/lib/ExecutionEngine/Orc/Layer.cpp
+++ b/llvm/lib/ExecutionEngine/Orc/Layer.cpp
@@ -46,17 +46,19 @@ IRMaterializationUnit::IRMaterializationUnit(ExecutionSession &ES,
!G.hasAvailableExternallyLinkage()) {
auto MangledName = Mangle(G.getName());
SymbolFlags[MangledName] = JITSymbolFlags::fromGlobalValue(G);
- Discardable[MangledName] = &G;
+ SymbolToDefinition[MangledName] = &G;
}
}
}
void IRMaterializationUnit::discard(const VSO &V, SymbolStringPtr Name) {
- auto I = Discardable.find(Name);
- assert(I != Discardable.end() &&
+ auto I = SymbolToDefinition.find(Name);
+ assert(I != SymbolToDefinition.end() &&
"Symbol not provided by this MU, or previously discarded");
+ assert(!I->second->isDeclaration() &&
+ "Discard should only apply to definitions");
I->second->setLinkage(GlobalValue::AvailableExternallyLinkage);
- Discardable.erase(I);
+ SymbolToDefinition.erase(I);
}
BasicIRLayerMaterializationUnit::BasicIRLayerMaterializationUnit(
OpenPOWER on IntegriCloud