summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2018-05-21 23:46:29 +0000
committerLang Hames <lhames@gmail.com>2018-05-21 23:46:29 +0000
commit5cb2e30c9805e175739cfd80a94f8022a8a84b64 (patch)
treebbc4e6059fcf0c3460d5f243675123e76b37ad34
parent373f4628a5eef559aa5cdde01355ddf31846aba9 (diff)
downloadbcm5719-llvm-5cb2e30c9805e175739cfd80a94f8022a8a84b64.tar.gz
bcm5719-llvm-5cb2e30c9805e175739cfd80a94f8022a8a84b64.zip
[ORC] Make some more operations on VSO private. These should be done via a
MaterializationResponsibility instance. llvm-svn: 332919
-rw-r--r--llvm/include/llvm/ExecutionEngine/Orc/Core.h48
1 files changed, 14 insertions, 34 deletions
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/Core.h b/llvm/include/llvm/ExecutionEngine/Orc/Core.h
index 06e6a0f3469..ca099e50ad2 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/Core.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/Core.h
@@ -468,6 +468,7 @@ createSymbolResolver(LookupFlagsFn &&LookupFlags, LookupFn &&Lookup) {
class VSO {
friend class AsynchronousSymbolQuery;
friend class ExecutionSession;
+ friend class MaterializationResponsibility;
public:
using AsynchronousSymbolQuerySet =
std::set<std::shared_ptr<AsynchronousSymbolQuery>>;
@@ -512,40 +513,6 @@ public:
});
}
- /// Define a set of symbols already in the materializing state.
- Error defineMaterializing(const SymbolFlagsMap &SymbolFlags);
-
- /// Replace the definition of a set of materializing symbols with a new
- /// MaterializationUnit.
- ///
- /// All symbols being replaced must be in the materializing state. If any
- /// symbol being replaced has pending queries then the MU will be returned
- /// for materialization. Otherwise it will be stored in the VSO and all
- /// symbols covered by MU moved back to the lazy state.
- void replace(std::unique_ptr<MaterializationUnit> MU);
-
- /// Record dependencies between symbols in this VSO and symbols in
- /// other VSOs.
- void addDependencies(const SymbolFlagsMap &Dependents,
- const SymbolDependenceMap &Dependencies);
-
- /// Resolve the given symbols.
- ///
- /// Returns the list of queries that become fully resolved as a consequence of
- /// this operation.
- void resolve(const SymbolMap &Resolved);
-
- /// Finalize the given symbols.
- ///
- /// Returns the list of queries that become fully ready as a consequence of
- /// this operation.
- void finalize(const SymbolFlagsMap &Finalized);
-
- /// Fail to materialize the given symbols.
- ///
- /// Returns the list of queries that fail as a consequence.
- void notifyFailed(const SymbolNameSet &FailedSymbols);
-
/// Search the given VSO for the symbols in Symbols. If found, store
/// the flags for each symbol in Flags. Returns any unresolved symbols.
SymbolNameSet lookupFlags(SymbolFlagsMap &Flags, const SymbolNameSet &Names);
@@ -603,6 +570,19 @@ private:
void transferFinalizedNodeDependencies(MaterializingInfo &DependantMI,
const SymbolStringPtr &DependantName,
MaterializingInfo &FinalizedMI);
+
+ Error defineMaterializing(const SymbolFlagsMap &SymbolFlags);
+
+ void replace(std::unique_ptr<MaterializationUnit> MU);
+
+ void addDependencies(const SymbolFlagsMap &Dependents,
+ const SymbolDependenceMap &Dependencies);
+
+ void resolve(const SymbolMap &Resolved);
+
+ void finalize(const SymbolFlagsMap &Finalized);
+
+ void notifyFailed(const SymbolNameSet &FailedSymbols);
};
/// An ExecutionSession represents a running JIT program.
OpenPOWER on IntegriCloud