176.gcc
SPEC CPU2000 Benchmark Description File
Benchmark Name
176.gcc
Benchmark Author
Richard Stallman and a large cast of helpers. For a full list, see http://www.fsf.org/software/gcc/thanks.html
Benchmark Program General Category
C Language optimizing compiler
Benchmark Description
176.gcc is based on gcc Version 2.7.2.2. It generates code for a Motorola
88100 processor. The benchmark runs as a compiler with many of its
optimization flags enabled. 176.gcc has had its inlining heuristics altered
slightly, so as to inline more code than would be typical on a Unix system
in 1997. It is expected that this effect will be more typical of compiler
usage in 2002. This was done so that 176.gcc would spend more time
analyzing it's source code inputs, and use more memory. Without this
effect, 176.gcc would have done less analysis, and needed more input
workloads to achieve the run times required for SPECint2000.
Input Description
There are 5 input workloads in 176.gcc (compared with 57 in the 126.gcc of
SPECint95). All these files are preprocessed C code (.i files); integrate.i
and expr.i come from the source files of gcc itself. 166.i is made by
concatenating the Fortran source files of a SPECint2000 candidate
benchmark, then using the f2c translator to produce C code, and then
pre-processing. 200.i comes via the same method from a previous version of
the SPECfp2000 benchmark 200.sixtrack, and scilab.i comes via the same
method from a version of the Scilab program.
Output Description
All output files are 88100 assembly code files.
Programming Language
The code is in C.
Known portability issues
-
The code needs to be aware of the endianness of the host it runs on.
176.gcc will default to little endian. To run correctly on a big- endian
machine, the flag HOST_WORDS_BIG_ENDIAN must be defined when the
benchmark is compiled (eg -DHOST_WORDS_BIG_ENDIAN).
-
Some of the optimizations 176.gcc performs require constant propagation
of floating point constants. These form an insignificant amount of
computation time, yet may depend on IEEE floating point format to produce
a correct result.
-
176.gcc is not an ANSI C program. It uses GNU extensions.
-
176.gcc is inherently a 32-bit program. It has been successfully ported
by SPEC to many 64-bit UNIX implementations. However use of high
optimization levels with a 64 bit system in conjunction with inlining of
procedures from different source files may reveal issues with 64-bit
cleanliness with 176.gcc.
-
176.gcc has been changed slightly by SPEC to build properly with newer
versions of GCC. If you're using an old gcc (~2.6 or older) to build
176.gcc, you should define the __OLDANDBUGGY__GNUC__ flag.
Reference
See the GCC home page at http://www.fsf.org/software/gcc/gcc.html
Last Updated: 25 April 2000