From d6155ff0024262c8d9b37d71474c19f833f5c86a Mon Sep 17 00:00:00 2001 From: Lang Hames Date: Sun, 3 Jun 2018 19:22:48 +0000 Subject: [ORC] Add a constructor to create an IRMaterializationUnit from a module and pre-existing SymbolFlags and SymbolToDefinition maps. This constructor is useful when delegating work from an existing IRMaterialiaztionUnit to a new one, as it avoids the cost of re-computing these maps. llvm-svn: 333852 --- llvm/lib/ExecutionEngine/Orc/Layer.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'llvm/lib/ExecutionEngine') diff --git a/llvm/lib/ExecutionEngine/Orc/Layer.cpp b/llvm/lib/ExecutionEngine/Orc/Layer.cpp index 1927bce45d4..cbf1f4c244d 100644 --- a/llvm/lib/ExecutionEngine/Orc/Layer.cpp +++ b/llvm/lib/ExecutionEngine/Orc/Layer.cpp @@ -51,6 +51,12 @@ IRMaterializationUnit::IRMaterializationUnit(ExecutionSession &ES, } } +IRMaterializationUnit::IRMaterializationUnit( + std::unique_ptr M, SymbolFlagsMap SymbolFlags, + SymbolNameToDefinitionMap SymbolToDefinition) + : MaterializationUnit(std::move(SymbolFlags)), M(std::move(M)), + SymbolToDefinition(std::move(SymbolToDefinition)) {} + void IRMaterializationUnit::discard(const VSO &V, SymbolStringPtr Name) { auto I = SymbolToDefinition.find(Name); assert(I != SymbolToDefinition.end() && -- cgit v1.2.3