[LLVMdev] compiling the full SPEC CPU2000 suite to LLVM bytecode

Kenneth Hoste 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  
>> whatever.

I tried tom compile each of the SPEC CPU2000 benchmarks using the  
make command is each respective subdirectory of

My setup:

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’

(among others)

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 +++

*** f95.h

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/ 
<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
Error: <path>/SPEC_CPU2000_1.3_src/benchspec/CFP2000/191.fma3d/src/ 
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)

Kenneth Hoste
ELIS - Ghent University
kenneth.hoste at elis.ugent.be

More information about the llvm-dev mailing list