[llvm] r242414 - Make ExecutionEngine owning a DataLayout

Mehdi Amini mehdi.amini at apple.com
Thu Jul 16 15:23:58 PDT 2015


> On Jul 16, 2015, at 3:08 PM, Laurent Carlier <lordheavym at gmail.com> wrote:
> 
> Le jeudi 16 juillet 2015, 16:34:23 Mehdi Amini a écrit :
>> Author: mehdi_amini
>> Date: Thu Jul 16 11:34:23 2015
>> New Revision: 242414
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=242414&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>
>> 
> 
> llvm fail to build since this revision with:

Apologize, I don’t have ffi to reproduce locally.

Tentatively fixed in r242456

— 
Mehdi


>  CC=gcc CXX=g++ \
>  ../llvm/configure \
>    --prefix=/usr \
>    --sysconfdir=/etc \
>    --enable-shared \
>    --enable-libffi \
>    --enable-targets=all \
>    --disable-assertions \
>    --with-python=/usr/bin/python2 \
>    --enable-optimized
> 
>  make REQUIRES_RTTI=1 ENABLE_PIC=1
> 
> result:
> make[2]: Entering directory '/build/llvm-svn/src/build/lib/ExecutionEngine'
> llvm[2]: Compiling BranchFolding.cpp for Release build
> make[3]: Entering directory '/build/llvm-
> svn/src/build/lib/ExecutionEngine/Interpreter'
> llvm[3]: Compiling Execution.cpp for Release build
> llvm[3]: Compiling MergedLoadStoreMotion.cpp for Release build
> llvm[3]: Compiling NaryReassociate.cpp for Release build
> llvm[2]: Compiling CalcSpillWeights.cpp for Release build
> llvm[3]: Compiling ExternalFunctions.cpp for Release build
> llvm[3]: Compiling X86FixupLEAs.cpp for Release build
> llvm[3]: Compiling PartiallyInlineLibCalls.cpp for Release build
> llvm[2]: Compiling CallingConvLower.cpp for Release build
> /build/llvm-
> svn/src/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp: In 
> function 'bool ffiInvoke(RawFunc, llvm::Function*, 
> llvm::ArrayRef<llvm::GenericValue>, const llvm::DataLayout&, 
> llvm::GenericValue&)':
> /build/llvm-
> svn/src/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp:201:19: 
> error: base operand of '->' has non-pointer type 'const llvm::DataLayout'
>     ArgBytes += TD->getTypeStoreSize(ArgTy);
>                   ^
> /build/llvm-
> svn/src/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp:213:21: 
> error: base operand of '->' has non-pointer type 'const llvm::DataLayout'
>     ArgDataPtr += TD->getTypeStoreSize(ArgTy);
>                     ^
> /build/llvm-
> svn/src/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp:222:20: 
> error: base operand of '->' has non-pointer type 'const llvm::DataLayout'
>       ret.resize(TD->getTypeStoreSize(RetTy));
>                    ^
> /usr/bin/rm: cannot remove '/build/llvm-
> svn/src/build/lib/ExecutionEngine/Interpreter/Release/ExternalFunctions.d.tmp': 
> No such file or directory
> /build/llvm-svn/src/llvm/Makefile.rules:1521: recipe for target '/build/llvm-
> svn/src/build/lib/ExecutionEngine/Interpreter/Release/ExternalFunctions.o' 
> failed
> make[3]: *** [/build/llvm-
> svn/src/build/lib/ExecutionEngine/Interpreter/Release/ExternalFunctions.o] 
> Error 1
> make[3]: Leaving directory '/build/llvm-
> svn/src/build/lib/ExecutionEngine/Interpreter'
> /build/llvm-svn/src/llvm/Makefile.rules:939: recipe for target 
> 'Interpreter/.makeall' failed
> make[2]: *** [Interpreter/.makeall] Error 2
> make[2]: Leaving directory '/build/llvm-svn/src/build/lib/ExecutionEngine'
> /build/llvm-svn/src/llvm/Makefile.rules:939: recipe for target 
> 'ExecutionEngine/.makeall' failed
> make[1]: *** [ExecutionEngine/.makeall] Error 2
> make[1]: *** Waiting for unfinished jobs....
> 
> 
> -- 
> Laurent Carlier
> http://www.archlinux.org





More information about the llvm-commits mailing list