[LLVMdev] Strange i386 cross build error.
Richard Pennington
rich at pennware.com
Sun Nov 24 08:56:20 PST 2013
As part of my ELLCC project (http://ellcc.org), I build clang/LLVM on my
native x86_64 Linux box and then use it to compile itself. For further
sanity checking, I then use that copy to cross compile for other targets
(arm, armeb, i386, microblaze, mips, mipsel, ppc, and x86_64). After
updating to a recent TOT revision, r195452, I get a strange error when
cross compiling for the i386:
llvm[2]: Compiling MCObjectSymbolizer.cpp for Release+Asserts build
PHI node has multiple entries for the same basic block with different
incoming values!
%Value.addr.1.off0 = phi i32 [ %7, %entry ], [ %8, %entry ], [ %9,
%entry ], [ %extract.t521, %sw.bb9 ]
label %entry
%7 = extractelement <2 x i32> %3, i32 0
%9 = extractelement <2 x i32> %3, i32 0
PHI node has multiple entries for the same basic block with
different incoming values!
%retval.0 = phi i32 [ %conv366, %if.then357 ], [ %conv368,
%if.end367 ], [ %conv333, %if.end323 ], [ %conv309, %sw.bb305 ], [
%conv304, %sw.bb300 ], [ %or299, %sw.bb290 ], [ %conv289, %sw.bb285 ], [
%or284, %sw.bb239 ], [ %or238, %sw.bb203 ], [ %conv202, %sw.bb176 ], [
%or174517, %sw.bb120 ], [ %conv119, %sw.bb115 ], [ %or113518, %sw.bb84
], [ %or83, %_ZN4llvm6ARM_AML11getSOImmValEj.exit ], [ %conv64, %sw.bb60
], [ %conv57, %if.then50 ], [ %conv59, %if.end58 ], [ %or35, %sw.bb11 ],
[ %or, %sw.bb2 ], [ %4, %entry ], [ %5, %entry ], [ %6, %entry ]
label %entry
%5 = extractelement <2 x i32> %3, i32 0
%6 = extractelement <2 x i32> %3, i32 0
Broken module found, compilation aborted!
Stack dump:
0. Program arguments: /home/rich/test/bin/ecc -cc1
-triple i386-ellcc-linux -emit-obj -disable-free -main-file-name
ARMAsmBackend.cpp -mrelocation-model static -fmath-errno -masm-verbose
-mconstructor-aliases -target-cpu pentium4 -target-linker-version
2.22.52.0.1 -momit-leaf-frame-pointer -coverage-file
/home/rich/test/llvm-build-i386-linux/lib/Target/ARM/MCTargetDesc/Release+Asserts/ARMAsmBackend.o
-resource-dir /home/rich/test/bin/../libecc -dependency-file
/home/rich/test/llvm-build-i386-linux/lib/Target/ARM/MCTargetDesc/Release+Asserts/ARMAsmBackend.d.tmp
-MP -MT
/home/rich/test/llvm-build-i386-linux/lib/Target/ARM/MCTargetDesc/Release+Asserts/ARMAsmBackend.o
-MT
/home/rich/test/llvm-build-i386-linux/lib/Target/ARM/MCTargetDesc/Release+Asserts/ARMAsmBackend.d
-D _DEBUG -D _GNU_SOURCE -D __STDC_CONSTANT_MACROS -D
__STDC_FORMAT_MACROS -D __STDC_LIMIT_MACROS -D
ELLCC_ARG0="i386-ellcc-linux" -I
/home/rich/test/llvm-build-i386-linux/lib/Target/ARM/MCTargetDesc/.. -I
/home/rich/test/llvm/lib/Target/ARM/MCTargetDesc/.. -I
/home/rich/test/llvm-build-i386-linux/include -I
/home/rich/test/llvm-build-i386-linux/lib/Target/ARM/MCTargetDesc -I
/home/rich/test/llvm/include -I
/home/rich/test/llvm/lib/Target/ARM/MCTargetDesc -O3
-Woverloaded-virtual -Wcast-qual -Wno-long-long -Wall -W
-Wno-unused-parameter -Wwrite-strings -Wcovered-switch-default
-Wno-uninitialized -Wno-missing-field-initializers -pedantic
-fdeprecated-macro -fdebug-compilation-dir
/home/rich/test/llvm-build-i386-linux/lib/Target/ARM/MCTargetDesc
-ferror-limit 19 -fmessage-length 130 -mstackrealign -fno-rtti
-fobjc-runtime=gcc -fdiagnostics-show-option -fcolor-diagnostics
-vectorize-loops -vectorize-slp -o
/home/rich/test/llvm-build-i386-linux/lib/Target/ARM/MCTargetDesc/Release+Asserts/ARMAsmBackend.o
-x c++ /home/rich/test/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp
1. <eof> parser at end of file
2. Code generation
3. Running pass 'Function Pass Manager' on module
'/home/rich/test/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp'.
4. Running pass 'Module Verifier' on function
'@_ZL16adjustFixupValueRKN4llvm7MCFixupEyPNS_9MCContextE'
ecc: error: unable to execute command: Killed
ecc: error: clang frontend command failed due to signal
(use -v to see invocation)
clang version 3.5 (trunk)
Target: i386-ellcc-linux
Thread model: posix
ecc: note: diagnostic msg: PLEASE submit a bug report to
http://llvm.org/bugs/ and include the crash backtrace, preprocessed
source, and associated run script.
llvm[3]: Compiling MipsJITInfo.cpp for Release+Asserts build
ecc: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are
located at:
ecc: note: diagnostic msg: /tmp/ARMAsmBackend-265222.cpp
ecc: note: diagnostic msg: /tmp/ARMAsmBackend-265222.sh
ecc: note: diagnostic msg:
********************
The error only occurs for i386. Any ideas?
-Rich
More information about the llvm-dev
mailing list