]> granicus.if.org Git - llvm/commit
[ORC] Track JIT symbol states more explicitly.
authorLang Hames <lhames@gmail.com>
Tue, 28 May 2019 23:35:44 +0000 (23:35 +0000)
committerLang Hames <lhames@gmail.com>
Tue, 28 May 2019 23:35:44 +0000 (23:35 +0000)
commit93af05e03e05d2f85b5a7e20ec3a3a543584d84f
treecab86144a47a64582acb3768acea18d004f2bfbe
parent59db388889ef637745e7c774ae257ab91ee37ab6
[ORC] Track JIT symbol states more explicitly.

Prior to this patch, JITDylibs inferred symbol states (whether a symbol was
newly added, materializing, resolved, or ready to run) via a combination of (1)
bits in the JITSymbolFlags member, and (2) the state of some internal JITDylib
data structures. This patch explicitly tracks symbol states by adding a new
SymbolState member to the symbol table entries, and removing the 'Lazy' and
'Materializing' bits from JITSymbolFlags. This is a first step towards adding
additional states representing initialization phases (e.g. eh-frame registration,
registration with the language runtime, and static initialization).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361899 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/ExecutionEngine/JITSymbol.h
include/llvm/ExecutionEngine/Orc/Core.h
lib/ExecutionEngine/Orc/Core.cpp
lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp