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.
<path>/SPEC_CPU2000_1.3_src/benchspec/CINT2000/253.perlbmk/src/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/dcabs1.ll -emit-llvm
In file included from <path>/SPEC_CPU2000_1.3_src/benchspec/CFP2000/168.wupwise/src/dcabs1.f:1:
<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 flattener
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.