diff options
author | Lang Hames <lhames@gmail.com> | 2020-09-10 13:10:27 -0700 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2020-09-10 13:21:46 -0700 |
commit | c74900ca67241bf963b7a4cfa1fae8eadf6bb8cd (patch) | |
tree | 3a0279d99e95b713357acab7ae8c3d9acdbb3c78 /llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp | |
parent | a5168bdb4a25485ac62e18bdc538b4842bc9fbd9 (diff) | |
download | llvm-c74900ca67241bf963b7a4cfa1fae8eadf6bb8cd.zip llvm-c74900ca67241bf963b7a4cfa1fae8eadf6bb8cd.tar.gz llvm-c74900ca67241bf963b7a4cfa1fae8eadf6bb8cd.tar.bz2 |
[ORC] Make MaterializationResponsibility immovable, pass by unique_ptr.
Making MaterializationResponsibility instances immovable allows their
associated VModuleKeys to be updated by the ExecutionSession while the
responsibility is still in-flight. This will be used in the upcoming
removable code feature to enable safe merging of resource keys even if
there are active compiles using the keys being merged.
Diffstat (limited to 'llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp')
-rw-r--r-- | llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp b/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp index 4f7f608..7d57ed5 100644 --- a/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp +++ b/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp @@ -33,12 +33,12 @@ public: StringRef getName() const override { return "<Compile Callbacks>"; } private: - void materialize(MaterializationResponsibility R) override { + void materialize(std::unique_ptr<MaterializationResponsibility> R) override { SymbolMap Result; Result[Name] = JITEvaluatedSymbol(Compile(), JITSymbolFlags::Exported); // No dependencies, so these calls cannot fail. - cantFail(R.notifyResolved(Result)); - cantFail(R.notifyEmitted()); + cantFail(R->notifyResolved(Result)); + cantFail(R->notifyEmitted()); } void discard(const JITDylib &JD, const SymbolStringPtr &Name) override { |