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

Kenneth Hoste kenneth.hoste at elis.ugent.be
Wed Aug 30 13:14:36 PDT 2006

Hi Chris,

> I use NAG with llvm-gcc4.  What sort of errors do you get?  Did you  
> configure llvm-test with the appropriate flags to find it?

Yes, I did. llvm-test is configured as follows: (in /work/LLVM/1.8/ 

./configure --with-spec2000=/work/SPEC_CPU2000_1.3_src/benchspec -- 
without-f2c --with-f95-bin=/work/NAG_f95/bin --with-f95-lib=/work/ 
NAG_f95/lib --with-f95-inc=/work/NAG_f95/lib --with-llvmsrc=/work/ 
LLVM/1.8/llvm --with-llvmobj=/work/LLVM/1.8/llvm

(the inc=.../lib part is correct, the headers files are indeed  
located in the lib dir of NAG f95).

which returns the following messages concerning my setup:

checking for spec2000 benchmark sources... yes, in /work/ 
checking for nag-fortran bin/lib/include locations... found via -- 
with options
checking sanity for program f95... yes

I then cd into llvm-test/External/SPEC and run make to compile the  
benchmarks to LLVM bytecode. Make stops with the following error  

lucas_distrib_spec.f90:2995: error: syntax error before ‘(’ token
lucas_distrib_spec.f90:2999: error: redefinition of ‘pTmp4’
lucas_distrib_spec.f90:225: error: previous definition of ‘pTmp4’ was  
lucas_distrib_spec.f90:2999: warning: data definition has no type or  
storage class
lucas_distrib_spec.f90:2999: error: syntax error before numeric constant
lucas_distrib_spec.f90:2999: warning: data definition has no type or  
storage class
make[2]: [Output/lucas_distrib_spec.o] Error 1 (ignored)
g++ -o Output/189.lucas.native Output/lucas_distrib_spec.o   -lm    / 
lib/NAGWare/quickfit.o -Xlinker -flat_namespace /lib/NAGWare/ 
libf97.dylib /lib/NAGWare/libf96.a
g++: Output/lucas_distrib_spec.o: No such file or directory
g++: /lib/NAGWare/quickfit.o: No such file or directory
g++: /lib/NAGWare/libf97.dylib: No such file or directory
g++: /lib/NAGWare/libf96.a: No such file or directory
make[2]: [Output/189.lucas.native] Error 1 (ignored)

Any further suggestions what might be wrong are welcome... Especially  
the /lib/NAGWare/... part puzzles me.. I did show with configure  
where the NAGWare lib dir is located, so why this error?

>> Also, with the new gcc4 frontend, it seems the Fortran issue will  
>> disappear in the near future (with the use of gfortran). Is that  
>> correct? Or will there
>> be other problems?
> Someone needs to do the work to test gfortran and fix any problems  
> it runs into.  I'm not aware of anyone doing this, though it's  
> probably not hard.

So, in the future it will be possible to use gcc/g++/gfortran to  
generate LLVM bytecode? That would be really cool... because GCC is  
really friendly to people doing research for various reasons. Also,  
the Fortran-to-C translation is only a temporary solution. Being able  
to use GCC as a whole for all SPEC benchmarks would be a great plus.

If you can give me more specific details on how to test gfortan to  
emit llvm bytecode, I'll be glad to try it. I'm not all that familiar  
with LLVM at all, but if I can find the time (which I won't in the  
next few weeks), I'll be glad to help.




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