[LLVMdev] lli : external functions and target datalayout
ofv at wanadoo.es
Sun Oct 24 12:48:32 CDT 2010
Jianzhou Zhao <jianzhou at seas.upenn.edu> writes:
> The other question is about
> target datalayout =
> If I use this string to creat a TargetData object directly, I got an
> assertion error:
> ~/llvm-2.6/lib/Target/TargetData.cpp:246: void
> llvm::TargetData::setAlignment(llvm::AlignTypeEnum, unsigned char,
> unsigned char, uint32_t): Assertion `abi_align <= pref_align &&
> "Preferred alignment worse than ABI!"' failed.
> This is because of the i64:32:64. It seems to be i64:64:64. 'lli' is
> able to fix this problem automatically, but why does llvm-gcc output
> i64:32:64 rather than i64:64:64?
FYI: the X86 data layout is hard-coded in
lib/Target/X86/X86TargetMachine.cpp, so that assert is mostly bogus, and
the existence of "target datalayout" IR setting and
Module::setDataLayout are deceiving.
More information about the LLVMdev