diff options
author | Lang Hames <lhames@gmail.com> | 2018-06-14 15:32:56 +0000 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2018-06-14 15:32:56 +0000 |
commit | 03395d2e58b220d455891e34c747d3c61f8d43e2 (patch) | |
tree | 091edd3dde072bd2e63190f8868007cd06c9a319 | |
parent | b4a43d6610398403e028fb673e13a141b940d215 (diff) | |
download | bcm5719-llvm-03395d2e58b220d455891e34c747d3c61f8d43e2.tar.gz bcm5719-llvm-03395d2e58b220d455891e34c747d3c61f8d43e2.zip |
[ORC] Strip the Materializing flag off finalized symbols in VSOs.
Finalized symbols are no longer in the materializing state.
llvm-svn: 334721
-rw-r--r-- | llvm/lib/ExecutionEngine/Orc/Core.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/llvm/lib/ExecutionEngine/Orc/Core.cpp b/llvm/lib/ExecutionEngine/Orc/Core.cpp index 5eb6d143479..5ae65ab2f66 100644 --- a/llvm/lib/ExecutionEngine/Orc/Core.cpp +++ b/llvm/lib/ExecutionEngine/Orc/Core.cpp @@ -562,8 +562,9 @@ void VSO::finalize(const SymbolFlagsMap &Finalized) { // MaterializingInfo and update its materializing state. assert(DependantVSO.Symbols.count(DependantName) && "Dependant has no entry in the Symbols table"); - DependantVSO.Symbols[DependantName].getFlags() &= - JITSymbolFlags::Materializing; + auto &DependantSym = DependantVSO.Symbols[DependantName]; + DependantSym.setFlags(static_cast<JITSymbolFlags::FlagNames>( + DependantSym.getFlags() & ~JITSymbolFlags::Materializing)); DependantVSO.MaterializingInfos.erase(DependantMII); } } @@ -580,7 +581,9 @@ void VSO::finalize(const SymbolFlagsMap &Finalized) { } assert(Symbols.count(Name) && "Symbol has no entry in the Symbols table"); - Symbols[Name].getFlags() &= ~JITSymbolFlags::Materializing; + auto &Sym = Symbols[Name]; + Sym.setFlags(static_cast<JITSymbolFlags::FlagNames>( + Sym.getFlags() & ~JITSymbolFlags::Materializing)); MaterializingInfos.erase(MII); } } |