Error messages in llvm-test

Hi all,

llvm-test fails on me in the first test (and many subsequent tests, but
I hope that fixing the first test will allow me to continue).

I see syntax errors from the C compiler and core dumps from llc.
Is any of this supposed to happen?

This is still on my amd64 machine. However, the build process is using
the right incantation to compile (gcc-4.2 -m32 -Wl,-melf_i386).
The llvm-gcc toolchain installed is the precompiled 2.2 Red Hat package
for Linux.

See below for the error messages, and further below for the source lines
mentioned in the messages.

Should I worry about these messages? I haven't tested actually using
LLVM yet, and I may be barking up the wrong tree. (Having a clean test
suite *would* make me feel more confident, of course.)

Regards,
Jo

--- snip ---
Transcript for
$ cd llvm/projects/llvm-test
$ export LANG=C
$ make

I'm giving a little bit more context than announced above.

make[1]: Entering directory
`/home/jo/Delta/llvm/projects/llvm-test/SingleSource'
make[2]: Entering directory
`/home/jo/Delta/llvm/projects/llvm-test/SingleSource/UnitTests'
make[3]: Entering directory
`/home/jo/Delta/llvm/projects/llvm-test/SingleSource/UnitTests/Vector'
/home/jo/Delta/llvm/Release/bin/llc -march=c Output/build.llvm.bc -o
Output/build.cbe.c -f
C Writer does not know about %tmp12 = insertelement <4 x float> %
tmp11, float %X.0, i32 1 ; <<4 x float>> [#uses=2]
/home/jo/Delta/llvm/Release/bin/llc[0x878d8dc]
[0x6]
/lib32/libc.so.6(abort+0x101)[0x556f24b1]
/home/jo/Delta/llvm/Release/bin/llc[0x812a0f8]
make[3]: *** [Output/build.cbe.c] Aborted (core dumped)
gcc-4.2 -m32 Output/build.cbe.c -o Output/build.cbe -Wl,-melf_i386
-Wl,-melf_i386 -O3 -fno-strict-aliasing -fno-inline
gcc-4.2: Output/build.cbe.c: No such file or directory
make[3]: [Output/build.cbe] Error 1 (ignored)
gcc-4.2 -m32 Output/build2.cbe.c -o Output/build2.cbe -Wl,-melf_i386
-Wl,-melf_i386 -O3 -fno-strict-aliasing -fno-inline
Output/build2.cbe.c:113: warning: conflicting types for built-in
function 'malloc'
Output/build2.cbe.c: In function 'main':
Output/build2.cbe.c:181: error: expected expression before '{' token
Output/build2.cbe.c:182: error: expected expression before '{' token
Output/build2.cbe.c:183: error: expected expression before '{' token
Output/build2.cbe.c:191: error: expected expression before '{' token
Output/build2.cbe.c:192: error: expected expression before '{' token
Output/build2.cbe.c:193: error: expected expression before '{' token
Output/build2.cbe.c:208: error: incompatible types in assignment
Output/build2.cbe.c:209: error: incompatible types in assignment
Output/build2.cbe.c:210: error: incompatible types in assignment
Output/build2.cbe.c:211: error: expected expression before '{' token
Output/build2.cbe.c:211: error: expected expression before '{' token
Output/build2.cbe.c:211: error: expected expression before '{' token
Output/build2.cbe.c:211: error: expected expression before '{' token
Output/build2.cbe.c:212: error: expected expression before '{' token
Output/build2.cbe.c:212: error: expected expression before '{' token
Output/build2.cbe.c:212: error: expected expression before '{' token
Output/build2.cbe.c:212: error: expected expression before '{' token
Output/build2.cbe.c:212: error: expected expression before '{' token
Output/build2.cbe.c:212: error: expected expression before '{' token
Output/build2.cbe.c:213: error: expected expression before '{' token
Output/build2.cbe.c:213: error: expected expression before '{' token
Output/build2.cbe.c:213: error: expected expression before '{' token
Output/build2.cbe.c:213: error: expected expression before '{' token
Output/build2.cbe.c:219: error: incompatible types in assignment
Output/build2.cbe.c:220: error: incompatible types in assignment
Output/build2.cbe.c:221: error: incompatible types in assignment
Output/build2.cbe.c:228: error: incompatible types in assignment
Output/build2.cbe.c:229: error: incompatible types in assignment
Output/build2.cbe.c:230: error: incompatible types in assignment
Output/build2.cbe.c:142: warning: return type of 'main' is not 'int'
make[3]: [Output/build2.cbe] Error 1 (ignored)
/home/jo/Delta/llvm/Release/bin/llc -march=c Output/divides.llvm.bc -o
Output/divides.cbe.c -f
llc: CBackend.cpp:400:
std::ostream&<unnamed>::CWriter::printSimpleType(std::ostream&, const
llvm::Type*, bool, const std::string&): Assertion
`(Ty->isPrimitiveType() || Ty->isInteger()) && "Invalid t
ype for printSimpleType"' failed.
/home/jo/Delta/llvm/Release/bin/llc[0x878d8dc]
[0x6]
/lib32/libc.so.6(abort+0x101)[0x556f24b1]
/lib32/libc.so.6(__assert_fail+0xee)[0x556e9bbe]
/home/jo/Delta/llvm/Release/bin/llc[0x811c697]
make[3]: *** [Output/divides.cbe.c] Aborted (core dumped)
gcc-4.2 -m32 Output/divides.cbe.c -o Output/divides.cbe -Wl,-melf_i386
-Wl,-melf_i386 -O3 -fno-strict-aliasing -fno-inline
gcc-4.2: Output/divides.cbe.c: No such file or directory
make[3]: [Output/divides.cbe] Error 1 (ignored)
gcc-4.2 -m32 Output/multiplies.cbe.c -o Output/multiplies.cbe
-Wl,-melf_i386 -Wl,-melf_i386 -O3 -fno-strict-aliasing -fno-inline
Output/multiplies.cbe.c:124: warning: conflicting types for built-in
function 'malloc'
Output/multiplies.cbe.c: In function 'main':
Output/multiplies.cbe.c:247: error: expected expression before '{' token
Output/multiplies.cbe.c:258: error: incompatible types in assignment
Output/multiplies.cbe.c:260: error: incompatible types in assignment
Output/multiplies.cbe.c:269: error: incompatible types in assignment
Output/multiplies.cbe.c:276: error: incompatible types in assignment
Output/multiplies.cbe.c:277: error: incompatible types in assignment
Output/multiplies.cbe.c:278: error: invalid operands to binary *
Output/multiplies.cbe.c:284: error: incompatible types in assignment
Output/multiplies.cbe.c:291: error: cast specifies array type
Output/multiplies.cbe.c:299: error: expected expression before '{' token
Output/multiplies.cbe.c:305: error: incompatible types in assignment
Output/multiplies.cbe.c:307: error: incompatible types in assignment
Output/multiplies.cbe.c:316: error: incompatible types in assignment
Output/multiplies.cbe.c:323: error: incompatible types in assignment
Output/multiplies.cbe.c:324: error: incompatible types in assignment
Output/multiplies.cbe.c:325: error: invalid operands to binary *
Output/multiplies.cbe.c:331: error: incompatible types in assignment
Output/multiplies.cbe.c:338: error: cast specifies array type
Output/multiplies.cbe.c:346: error: expected expression before '{' token
Output/multiplies.cbe.c:352: error: incompatible types in assignment
Output/multiplies.cbe.c:354: error: incompatible types in assignment
Output/multiplies.cbe.c:363: error: incompatible types in assignment
Output/multiplies.cbe.c:370: error: incompatible types in assignment
Output/multiplies.cbe.c:371: error: incompatible types in assignment
Output/multiplies.cbe.c:372: error: invalid operands to binary *
Output/multiplies.cbe.c:378: error: incompatible types in assignment
Output/multiplies.cbe.c:385: error: incompatible types in assignment
Output/multiplies.cbe.c:393: error: expected expression before '{' token
Output/multiplies.cbe.c:399: error: incompatible types in assignment
Output/multiplies.cbe.c:401: error: incompatible types in assignment
Output/multiplies.cbe.c:410: error: incompatible types in assignment
Output/multiplies.cbe.c:417: error: incompatible types in assignment
Output/multiplies.cbe.c:418: error: incompatible types in assignment
Output/multiplies.cbe.c:419: error: invalid operands to binary *
Output/multiplies.cbe.c:425: error: incompatible types in assignment
Output/multiplies.cbe.c:432: error: incompatible types in assignment
Output/multiplies.cbe.c:155: warning: return type of 'main' is not 'int'
make[3]: [Output/multiplies.cbe] Error 1 (ignored)
/home/jo/Delta/llvm/Release/bin/llc -march=c Output/simple.llvm.bc -o
Output/simple.cbe.c -f
C Writer does not know about %tmp35 = insertelement <4 x float> %
tmp34, float %X.0, i32 1 ; <<4 x float>> [#uses=3]
/home/jo/Delta/llvm/Release/bin/llc[0x878d8dc]
[0x6]
/lib32/libc.so.6(abort+0x101)[0x556f24b1]
/home/jo/Delta/llvm/Release/bin/llc[0x812a0f8]
make[3]: *** [Output/simple.cbe.c] Aborted (core dumped)
gcc-4.2 -m32 Output/simple.cbe.c -o Output/simple.cbe -Wl,-melf_i386
-Wl,-melf_i386 -O3 -fno-strict-aliasing -fno-inline
gcc-4.2: Output/simple.cbe.c: No such file or directory
make[3]: [Output/simple.cbe] Error 1 (ignored)
gcc-4.2 -m32 Output/sumarray-dbl.cbe.c -o Output/sumarray-dbl.cbe
-Wl,-melf_i386 -Wl,-melf_i386 -O3 -fno-strict-aliasing -fno-inline
Output/sumarray-dbl.cbe.c:130: warning: conflicting types for built-in
function 'malloc'
Output/sumarray-dbl.cbe.c: In function 'main':
Output/sumarray-dbl.cbe.c:195: error: expected expression before '{'
token
Output/sumarray-dbl.cbe.c:206: error: incompatible types in assignment
Output/sumarray-dbl.cbe.c:207: error: incompatible types in assignment
Output/sumarray-dbl.cbe.c:208: error: invalid operands to binary +
Output/sumarray-dbl.cbe.c:214: error: incompatible types in assignment
Output/sumarray-dbl.cbe.c:220: error: incompatible types in assignment
Output/sumarray-dbl.cbe.c:161: warning: return type of 'main' is not
'int'
make[3]: [Output/sumarray-dbl.cbe] Error 1 (ignored)
gcc-4.2 -m32 Output/sumarray.cbe.c -o Output/sumarray.cbe -Wl,-melf_i386
-Wl,-melf_i386 -O3 -fno-strict-aliasing -fno-inline
Output/sumarray.cbe.c:130: warning: conflicting types for built-in
function 'malloc'
Output/sumarray.cbe.c: In function 'main':
Output/sumarray.cbe.c:191: error: expected expression before '{' token
Output/sumarray.cbe.c:202: error: incompatible types in assignment
Output/sumarray.cbe.c:203: error: incompatible types in assignment
Output/sumarray.cbe.c:204: error: invalid operands to binary +
Output/sumarray.cbe.c:210: error: incompatible types in assignment
Output/sumarray.cbe.c:216: error: incompatible types in assignment
Output/sumarray.cbe.c:161: warning: return type of 'main' is not 'int'
make[3]: [Output/sumarray.cbe] Error 1 (ignored)
/home/jo/Delta/llvm/projects/llvm-test/RunSafely.sh 500 0 /dev/null
Output/multiplies.out-llc Output/multiplies.llc
/home/jo/Delta/llvm/projects/llvm-test/DiffOutput.sh
"/home/jo/Delta/llvm/Release/bin/fpcmp " llc multiplies
gcc-4.2 -m32 Output/simple.llc.s -o Output/simple.llc -lm
-Wl,-melf_i386 -Wl,-melf_i386
/home/jo/Delta/llvm/projects/llvm-test/RunSafely.sh 500 0 /dev/null
Output/simple.out-llc Output/simple.llc
/home/jo/Delta/llvm/projects/llvm-test/DiffOutput.sh
"/home/jo/Delta/llvm/Release/bin/fpcmp " llc simple
gcc-4.2 -m32 Output/sumarray-dbl.llc.s -o Output/sumarray-dbl.llc -lm
-Wl,-melf_i386 -Wl,-melf_i386
/home/jo/Delta/llvm/projects/llvm-test/RunSafely.sh 500 0 /dev/null
Output/sumarray-dbl.out-llc Output/sumarray-dbl.llc
/home/jo/Delta/llvm/projects/llvm-test/DiffOutput.sh
"/home/jo/Delta/llvm/Release/bin/fpcmp " llc sumarray-dbl
gcc-4.2 -m32 Output/sumarray.llc.s -o Output/sumarray.llc -lm
-Wl,-melf_i386 -Wl,-melf_i386
/home/jo/Delta/llvm/projects/llvm-test/RunSafely.sh 500 0 /dev/null
Output/sumarray.out-llc Output/sumarray.llc
/home/jo/Delta/llvm/projects/llvm-test/DiffOutput.sh
"/home/jo/Delta/llvm/Release/bin/fpcmp " llc sumarray
/home/jo/Delta/llvm/projects/llvm-test/RunSafely.sh 500 0 /dev/null
Output/build.out-cbe Output/build.cbe
/home/jo/Delta/llvm/projects/llvm-test/DiffOutput.sh
"/home/jo/Delta/llvm/Release/bin/fpcmp " cbe build

******************** TEST (cbe) 'build' FAILED! ********************
Execution Context Diff:
/home/jo/Delta/llvm/Release/bin/fpcmp: FP Comparison failed, not a
numeric difference between '1' and 's'
******************** TEST (cbe) 'build' ****************************
/home/jo/Delta/llvm/projects/llvm-test/RunSafely.sh 500 0 /dev/null
Output/build2.out-cbe Output/build2.cbe
/home/jo/Delta/llvm/projects/llvm-test/DiffOutput.sh
"/home/jo/Delta/llvm/Release/bin/fpcmp " cbe build2
******************** TEST (cbe) 'build2' FAILED! ********************
Execution Context Diff:
/home/jo/Delta/llvm/Release/bin/fpcmp: FP Comparison failed, not a
numeric difference between '2' and 's'
******************** TEST (cbe) 'build2' ****************************
/home/jo/Delta/llvm/projects/llvm-test/RunSafely.sh 500 0 /dev/null
Output/divides.out-cbe Output/divides.cbe
/home/jo/Delta/llvm/projects/llvm-test/DiffOutput.sh
"/home/jo/Delta/llvm/Release/bin/fpcmp " cbe divides
******************** TEST (cbe) 'divides' FAILED! ********************
Execution Context Diff:
/home/jo/Delta/llvm/Release/bin/fpcmp: FP Comparison failed, not a
numeric difference between 'U' and 's'
******************** TEST (cbe) 'divides' ****************************

--- snip ---
The lines that generate the errors are these:

    142 unsigned int main(unsigned int llvm_cbe_argc,
            unsigned char **llvm_cbe_argv) {
    181 *(&llvm_cbe_x) = { 0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0 };
    182 *(&llvm_cbe_y) = { 0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0 };
    183 *(&llvm_cbe_z) = { 0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0 };
    191 llvm_cbe_z_tmp_0__PHI_TEMPORARY =
            { 0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0 }; /* for PHI node */
    192 llvm_cbe_y_tmp_0__PHI_TEMPORARY =
            { 0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0 }; /* for PHI node */
    193 llvm_cbe_x_tmp_0__PHI_TEMPORARY =
            { 0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0 }; /* for PHI node */
    208 llvm_cbe_z_tmp_0 = llvm_cbe_z_tmp_0__PHI_TEMPORARY;
    209 llvm_cbe_y_tmp_0 = llvm_cbe_y_tmp_0__PHI_TEMPORARY;
    210 llvm_cbe_x_tmp_0 = llvm_cbe_x_tmp_0__PHI_TEMPORARY;
    211 llvm_cbe_tmp19 = (((llvm_cbe_x_tmp_0
              + { 0x1p+0, 0x0p+0, 0x0p+0, 0x0p+0 })
              + { 0x0p+0, 0x1p+0, 0x0p+0, 0x0p+0 })
              + { 0x0p+0, 0x0p+0, 0x1p+0, 0x0p+0 })
              + { 0x0p+0, 0x0p+0, 0x0p+0, 0x1p+0 };
    212 llvm_cbe_tmp37 = (((((llvm_cbe_y_tmp_0
              + { 0x1p+0, 0x1p+1, 0x0p+0, 0x0p+0 })
              + { 0x1p+0, 0x0p+0, 0x1p+1, 0x0p+0 })
              + { 0x1p+0, 0x0p+0, 0x0p+0, 0x1p+1 })
              + { 0x0p+0, 0x1p+0, 0x1p+1, 0x0p+0 })
              + { 0x0p+0, 0x1p+0, 0x0p+0, 0x1p+1 })
              + { 0x0p+0, 0x0p+0, 0x1p+0, 0x1p+1 };
    213 llvm_cbe_tmp49 = (((llvm_cbe_z_tmp_0
              + { 0x1p+1, 0x1.8p+1, 0x1p+0, 0x0p+0 })
              + { 0x1p+0, 0x1p+0, 0x0p+0, 0x1p+1 })
              + { 0x1.8p+1, 0x0p+0, 0x1p+1, 0x1p+2 })
              + { 0x0p+0, 0x1p+2, 0x1.8p+2, 0x1p+0 };
    219 llvm_cbe_z_tmp_0__PHI_TEMPORARY = llvm_cbe_tmp49;
              /* for PHI node */
    220 llvm_cbe_y_tmp_0__PHI_TEMPORARY = llvm_cbe_tmp37;
              /* for PHI node */
    221 llvm_cbe_x_tmp_0__PHI_TEMPORARY = llvm_cbe_tmp19;
              /* for PHI node */
    228 *(&llvm_cbe_x) = llvm_cbe_tmp19;
    229 *(&llvm_cbe_y) = llvm_cbe_tmp37;
    230 *(&llvm_cbe_z) = llvm_cbe_tmp49;

OK, scrap that one. Serves me right for trying to run the tests from TRUNK with a 2.2 distribution.

I do see some errors, but they may be expected ones. I'll be back when I see anything that I don't know how to handle :slight_smile:

Regards,
Jo

This looks like you are using a newer llvm-test than your llvm-gcc/llvm tree are. In particular, CBE support for vector stuff is very new, and wasn't in 2.2. Please make sure that your llvm-test tree matches your llvm-gcc and llvm trees.

-Chris