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: 1     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).
                          2     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.
                          3     176.gcc is not an ANSI C program. It uses
                                Gnu extensions.
                          4     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.
                          5     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.

Reference:              See the GCC home page at 
                        http://www.fsf.org/software/gcc/gcc.html