[llvm] r228557 - [Orc] Add a JITSymbol class to the Orc APIs, refactor APIs, update clients.

Tobias Grosser tobias at grosser.es
Sun Feb 8 23:01:38 PST 2015


On 09.02.2015 02:20, Lang Hames wrote:
> Author: lhames
> Date: Sun Feb  8 19:20:51 2015
> New Revision: 228557
>
> URL: http://llvm.org/viewvc/llvm-project?rev=228557&view=rev
> Log:
> [Orc] Add a JITSymbol class to the Orc APIs, refactor APIs, update clients.
>
> This patch refactors a key piece of the Orc APIs: It removes the
> *::getSymbolAddress and *::lookupSymbolAddressIn methods, which returned target
> addresses (uint64_ts), and replaces them with *::findSymbol and *::findSymbolIn
> respectively, which return instances of the new JITSymbol type. Unlike the old
> methods, calling findSymbol or findSymbolIn does not cause the symbol to be
> immediately materialized when found. Instead, the symbol will be materialized
> if/when the getAddress method is called on the returned JITSymbol. This allows
> us to query for the existence of symbols without actually materializing them. In
> the future I expect more information to be attached to the JITSymbol class, for
> example whether the returned symbol is a weak or strong definition. This will
> allow us to properly handle weak symbols and multiple definitions.
>

This patch triggered a gcc (4.7.2) compiler bug for me:

/home/grosser/buildslave/polly-amd64-linux/llvm.src/lib/ExecutionEngine/Orc/OrcMCJITReplacement.cpp: 
In lambda function:
/home/grosser/buildslave/polly-amd64-linux/llvm.src/lib/ExecutionEngine/Orc/OrcMCJITReplacement.cpp:125:1: 
internal compiler error: in get_expr_operands, at tree-ssa-operands.c:1035
Please submit a full bug report,
with preprocessed source if appropriate.

http://lab.llvm.org:8011/builders/perf-x86_64-penryn-O3-polly-fast/builds/3073

Cheers.
Tobias



More information about the llvm-commits mailing list