OSDN Git Service

[ORC] Rename SymbolSource to MaterializationUnit, and make the materialization
authorLang Hames <lhames@gmail.com>
Tue, 20 Mar 2018 03:49:29 +0000 (03:49 +0000)
committerLang Hames <lhames@gmail.com>
Tue, 20 Mar 2018 03:49:29 +0000 (03:49 +0000)
commit507d7742b96ab37349a284a98cbb6b05cc3ff965
treebdbe195cdbf54c4ba95b8f6d16122ba277fb36b3
parentea05d68efb07c8c1dacae3452ac0fa6cc2b33310
[ORC] Rename SymbolSource to MaterializationUnit, and make the materialization
operation all-or-nothing, rather than allowing materialization on a per-symbol
basis.

This addresses a shortcoming of per-symbol materialization: If a
MaterializationUnit (/SymbolSource) wants to materialize more symbols than
requested (which is likely: most materializers will want to materialize whole
modules) then it needs a way to notify the symbol table about the extra symbols
being materialized. This process (checking what has been requested against what
is being provided and notifying the symbol table about the difference) has to
be repeated at every level of the JIT stack. Making materialization
all-or-nothing eliminates this issue, simplifying both materializer
implementations and the symbol table (VSO class) API. The cost is that
per-symbol materialization (e.g. for individual symbols in a module) now
requires multiple MaterializationUnits.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327946 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/ExecutionEngine/Orc/Core.h
lib/ExecutionEngine/Orc/Core.cpp
unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp
unittests/ExecutionEngine/Orc/LegacyAPIInteropTest.cpp