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

Lang Hames lhames at gmail.com
Mon Feb 9 00:00:32 PST 2015


Hi Toby,

It looks like r228568 has improved things. I'm going to remove some of
those hacks tomorrow. I don't have access to gcc 4.7.2 to test with ahead
of time, so apologies if I break this again - I'll keep a close eye on it.

Cheers,
Lang.

On Sun, Feb 8, 2015 at 11:21 PM, Lang Hames <lhames at gmail.com> wrote:

> Hi Toby,
>
> Thanks. I'm digging through GCC bug reports at the moment. Best guess is
> that it's the 'this' pointer in the capture - I should have a fix soon.
>
> - Lang.
>
> On Sun, Feb 8, 2015 at 11:01 PM, Tobias Grosser <tobias at grosser.es> wrote:
>
>> 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
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150209/97179d71/attachment.html>


More information about the llvm-commits mailing list