Kenneth Hoste
2006-Aug-30 18:18 UTC
[LLVMdev] compiling the full SPEC CPU2000 suite to LLVM bytecode
Hello LLVM-people, I've been trying (on and off) to compile the _full_ SPEC CPU2000 benchmark suite to LLVM bytecode. The biggest problem I'm facing is the Fortran benchmarks, for which some partial support is already available it seems (using f2c). Unfortunately the f2c compiler only allows the translation of Fortran-77 programs to C code (which is then compiled using llvm-gcc). Another solution is the commercial f95 NAG Fortran compiler, for which some support seems to be available in the Testsuite. Only, I can't get it to work, although my NAG f95 compiler is working. Is it normal that this support is broken? I'm getting all kinds of errors... 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? Is the entire benchmark suite (including Fortran benchmarks) being used the nightly tests? Any pointers on getting the entire SPEC CPU2000 benchmark suite compiled to LLVM bytecode will be highly appreciated. greetings, Kenneth -- 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 http://www.elis.ugent.be/~kehoste
Chris Lattner
2006-Aug-30 19:05 UTC
[LLVMdev] compiling the full SPEC CPU2000 suite to LLVM bytecode
On Wed, 30 Aug 2006, Kenneth Hoste wrote:> I've been trying (on and off) to compile the _full_ SPEC CPU2000 benchmark > suite to LLVM bytecode. The biggest problem > I'm facing is the Fortran benchmarks, for which some partial support is > already available it seems (using f2c).ok.> Unfortunately the f2c compiler only allows the translation of Fortran-77 > programs to C code (which is then compiled using llvm-gcc). > Another solution is the commercial f95 NAG Fortran compiler, for which some > support seems to be available in the Testsuite. > Only, I can't get it to work, although my NAG f95 compiler is working. Is it > normal that this support is broken? I'm getting all kinds of errors...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?> 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.> Is the entire benchmark suite (including Fortran > benchmarks) being used the nightly tests?On some testers, yes. This one is: http://llvm.org/nightlytest/fulltest.php?machine=36&night=811> Any pointers on getting the entire SPEC CPU2000 benchmark suite compiled to > LLVM bytecode will be highly appreciated.What problems are you hitting? -Chris -- http://nondot.org/sabre/ http://llvm.org/
Kenneth Hoste
2006-Aug-30 20:14 UTC
[LLVMdev] compiling the full SPEC CPU2000 suite to LLVM bytecode
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/ llvm/project/llvm-test): ./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/ SPEC_CPU2000_1.3_src/benchspec ... 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 messages: /work/SPEC_CPU2000_1.3_src/benchspec/CFP2000/189.lucas/src/ lucas_distrib_spec.f90:2995: error: syntax error before ‘(’ token /work/SPEC_CPU2000_1.3_src/benchspec/CFP2000/189.lucas/src/ lucas_distrib_spec.f90:2999: error: redefinition of ‘pTmp4’ /work/SPEC_CPU2000_1.3_src/benchspec/CFP2000/189.lucas/src/ lucas_distrib_spec.f90:225: error: previous definition of ‘pTmp4’ was here /work/SPEC_CPU2000_1.3_src/benchspec/CFP2000/189.lucas/src/ lucas_distrib_spec.f90:2999: warning: data definition has no type or storage class /work/SPEC_CPU2000_1.3_src/benchspec/CFP2000/189.lucas/src/ lucas_distrib_spec.f90:2999: error: syntax error before numeric constant /work/SPEC_CPU2000_1.3_src/benchspec/CFP2000/189.lucas/src/ 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. greetings, Kenneth -- 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 http://www.elis.ugent.be/~kehoste
Maybe Matching Threads
- [LLVMdev] compiling the full SPEC CPU2000 suite to LLVM bytecode
- [LLVMdev] compiling the full SPEC CPU2000 suite to LLVM bytecode
- [LLVMdev] compiling the full SPEC CPU2000 suite to LLVM bytecode
- [LLVMdev] compiling the full SPEC CPU2000 suite to LLVM bytecode
- [LLVMdev] compiling the full SPEC CPU2000 suite to LLVM bytecode