[llvm] r242387 - Make ExecutionEngine owning a DataLayout

Mehdi Amini mehdi.amini at apple.com
Thu Jul 16 09:50:57 PDT 2015


Hi,

I reapplied in 242414 with Manuel’s patch and fixing the call to ffiInvoke() (and fixing the examples in 242416).

Hopefully there won’t be any other failures. Let me know if it breaks again.

Thanks,

— 
Mehdi




> On Jul 16, 2015, at 3:12 AM, İsmail Dönmez <ismail at donmez.ws> wrote:
> 
> Hi,
> 
> On Thu, Jul 16, 2015 at 9:17 AM, Mehdi Amini <mehdi.amini at apple.com> wrote:
>> Author: mehdi_amini
>> Date: Thu Jul 16 01:17:14 2015
>> New Revision: 242387
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=242387&view=rev
>> Log:
>> Make ExecutionEngine owning a DataLayout
>> 
>> Summary:
>> This change is part of a series of commits dedicated to have a single
>> DataLayout during compilation by using always the one owned by the
>> module.
>> 
>> The ExecutionEngine will act as an exception and will be unsafe to
>> be reused across context. We don't enforce this rule but undefined
>> behavior can occurs if the user tries to do it.
>> 
>> Reviewers: lhames
>> 
>> Subscribers: echristo, llvm-commits, rafael, yaron.keren
>> 
>> Differential Revision: http://reviews.llvm.org/D11110
>> 
>> From: Mehdi Amini <mehdi.amini at apple.com>
>> 
>> Modified:
>>    llvm/trunk/include/llvm/ExecutionEngine/ExecutionEngine.h
>>    llvm/trunk/lib/ExecutionEngine/ExecutionEngine.cpp
>>    llvm/trunk/lib/ExecutionEngine/ExecutionEngineBindings.cpp
>>    llvm/trunk/lib/ExecutionEngine/Interpreter/Execution.cpp
>>    llvm/trunk/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
>>    llvm/trunk/lib/ExecutionEngine/Interpreter/Interpreter.cpp
>>    llvm/trunk/lib/ExecutionEngine/Interpreter/Interpreter.h
>>    llvm/trunk/lib/ExecutionEngine/MCJIT/MCJIT.cpp
>>    llvm/trunk/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h
> 
> On Linux x86-64:
> 
> ../lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp:277:21:
> error: no matching function for call to 'ffiInvoke'
>  if (RawFn != 0 && ffiInvoke(RawFn, F, ArgVals, getDataLayout(), Result))
>                               ^~~~~~~~~
> ../lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp:180:13: note:
> candidate function not viable: no known conversion from 'const
> llvm::DataLayout' to 'const llvm::DataLayout *' for 4th argument; take
> the address of the argument with &
> static bool ffiInvoke(RawFunc Fn, Function *F, ArrayRef<GenericValue> ArgVals,
>                 ^
> 1 error generated.





More information about the llvm-commits mailing list