[LLVMdev] compiling the full SPEC CPU2000 suite to LLVM bytecode
kenneth.hoste at ugent.be
Fri Sep 1 04:43:28 PDT 2006
On 01 Sep 2006, at 10:05, Kenneth Hoste wrote:
>>> Also, it is possible to tell make only to compile benchmark X? How
>>> can I
>>> enforce this?
>> Go into the directory for that benchmark, then run 'make' or
I tried tom compile each of the SPEC CPU2000 benchmarks using the
make command is each respective subdirectory of
LLVM-1.8 with the gcc4 frontend (gcc-4.0.1). The NAG f95 compiler is
v5.1(216). My platform is Fedora Core 4 on a Intel Pentium 4.
I was confronted with 6 different errors for the various benchmarks,
4 of which are relate to the NAG f95 compiler. See below for details.
I seems most of the error are directly related to f95, which seems to
have undergone some changes in the 5.1 release. Two errors are related
to LLVM I think, (crtend and the syntax error for perlbmk).
Any hints to solve these problems are welcome. I've contacted the f95
people on the NAG-specific problems.
*** cannot find library crtend
This seems to be LLVM-specific. I've check the FAQ, and this is
actually mentioned there. Only, it says to
define the LLVM_LIB_SEARCH_PATH environment variable. Only, I can't
find libcrtend.a anywhere in the
cfrontend directories. Is there a known workaround for this? And if
there is, why isn't it in the documentation?
Affected benchmarks: equake, lucas, vpr, gcc, crafty, eon, gcc
*** syntax error
Compiling the perlbmk benchmark produces a syntax error. This may be
a GCC4 problem.
nt_perlmain.c:80: error: syntax error before ‘int’
This specific line of code is:
DllExport int RunPerl(int argc, char **argv, char **env, void *ios);
which does seem very strange syntax to me...
Affected benchmarks: perlbmk.
+++ following errors seem to be NAG-specific +++
There seem to be some changes in the f95.h file for version 5.1 which
cause llvm-gcc to throw an error. I suspect there's
a small problem, perhaps with the detection of my system. I guess
this has more to do with the NAG compiler than with LLVM itself.
Nevertheless, I wanted to mention it.
llvm-gcc <with-a-bunch-of-options> -O3 -S dcabs1.c -o Output/
In file included from <path>/SPEC_CPU2000_1.3_src/benchspec/
<path>/lib/f95.h:109: error: syntax error before ‘Logical4’
<path>/lib/f95.h:109: warning: data definition has no type or
sto rage class
<path>/lib/f95.h:118: error: syntax error before ‘Integer4’
Affected SPEC CPU2000 benchmarks: wupwise, swim, mgrid, applu
*** f95 PANIC
Another f95 specific issue is a PANIC when compiling the code of apsi
to C code. More specific:
Panic: apsi.f: Unexpected expr node 47050 type 414 in tree
Internal Error -- please report this bug
Again, this is no job for the LLVM people.
Affected benchmarks: apsi
*** libf97.dylib not found
...simply because it's not on my system. I guess this changed in the
5.1 release of f95.
Also, there's no NAGWare subdirectory of the lib directory, which
should be the case according to the NAG documentation.
It seems the libraries are directly located in <path>/lib.
This should probably be fixed in the Makefile.nagfortran, but I don't
know how (since there's no other *dylib file available it seems).
This only generates a warning from gccld, but I think it's the cause
of the problems which are reported subsequently.
Affected benchmarks: galgel, facerec, sixtrack
*** BEAM (fma3d)
There seem to be some issues with the fma3d benchmark, when
translating from Fortran to C:
f95 -w -S -O2 <path>/SPEC_CPU2000_1.3_src/benchspec/CFP2000/191.fma3d/
src/beam.f90 -o beam.c -dusty -maxcontin=69
90: Binding label 'beam_' of COMMON/BEAM/ matches module BEAM_
[f95 error termination]
Also a f95-related issue I'd guess.
Affected benchmarks: fma3d.
Statistics are like a bikini. What they reveal is suggestive, but
what they conceal is vital (Aaron Levenstein)
ELIS - Ghent University
kenneth.hoste at elis.ugent.be
More information about the llvm-dev