# Invocation command line:
# /cpu2000/bin/runspec -c may31b_prv --reportable fp
############################################################################

#####################################################################
# SUT/Experimenter Section
# If it affects performance, you need to describe it, either
# in the pre-defined fields or by adding it to the notes section.

# System Description - edit as needed

hw_avail        = Jun-2001
hw_model        = AlphaServer ES45 Model 68/1000
machine_name    = AlphaServer ES45 Model 68/1000
hw_memory       = 32GB
hw_disk         = 2x 10000 RPM: BD018635C4 BD0186349B
hw_other        = None
hw_vendor       = Compaq Computer Corporation
company_name    = Compaq Computer Corporation

# CPU description - edit as needed
# Note ncpu = number enabled; ncpuorder = valid numbers of CPUs 
# to order for this model

hw_cpu          = Alpha 21264C
hw_cpu_mhz      = 1000
hw_fpu          = Integrated
hw_ncpu         = 1
hw_ncpuorder    = 1 to 4
hw_parallel     = No
hw_pcache       = 64KB(I)+64KB(D) on chip
hw_scache       = 8MB off chip per CPU
hw_tcache       = None
hw_ocache       = None

# Tester description - edit the date, put your name here.  Notice that
# "tester_name" is the company, but as it says in the documentation,
# "prepared_by" can be personal:
#
#       prepared_by    Is never output.  If you wish, you could set this to
#                      your own name, so that the rawfile will be tagged with
#                      your name but not the formal reports.

test_date       = Jun-2001
license_num     = 2
prepared_by     = John Henning
tester_name     = Compaq NH

# Operating system, file system - edit at least the OS version

sw_os           = Tru64 UNIX V5.1
sw_file         = mfs
sw_state        = Multi-user

# Special notes
#     If you have notes to add, put them here, starting with number 900. 
#
sw_os2          = +Patch Kit 2
notes900        =  
notes901        = Information on UNIX V5.1 Patches can be found at
notes902        = http://ftp1.service.digital.com/public/unix/v5.1/
notes903        =  

# OS Date
#       Use the "sw_avail" line here only if the OS you are testing ships 
#       later than the compilers (and then comment out their availability 
#       dates, below!)  Notice that the field "sw_avail" occurs multiple 
#       times in this file, but only one should be used on a given run: 
#
#           - the OS date (if later than the compilers), or
#           - the last complier date (may be different for FP vs. Int)

#sw_avail        = Nov-2000

# With luck, you shouldn't have to edit below this point
# (unless you are installing new compilers or re-tuning)
# End of SUT/Experimenter section
######################################################################

######################################################################
# The special "un-named" section of the config file.  Must appear
# before any instances of "default="

ext           = may31b
output_format = asc
#reportable    = 1
teeout        = no
teerunout     = yes
tune          = all

######################################################################
# Compiler selection - See "OS Date" above!  Remember, it's the 
# LAST compiler in a set whose date should be listed.  Remember that
# C is used on both suites.  Remember KAP dates.  Remember to include
# KAP C if "kcc" is ever used (it's probably not the default, so won't
# be listed here under "CC", but should be listed as a sw_compiler if it
# is used anywhere else in the file).

default=default=default=default:
sw_compiler  = Compaq C V6.4-214-46B59
sw_compiler2 = Program Analysis Tools V2.0
sw_compiler3 = Spike V5.2 DTK (1.461 46B5P)
sw_avail     = Aug-2001
CC           = cc -v      
notes950 = 
notes951 = Spike, and the Program Analysis Tools, are part of the Developers' 
notes952 = Tool Kit Supplement, http://www.tru64unix.compaq.com/dtk/ .  The
notes953 = features used in this SPEC submission will be available at the web 
notes954 = site as a beta kit in August, 2001, and as a production release in
notes955 = October, 2001.  The C compiler for this SPEC submission has been
notes956 = available at the same location, as a production release, since
notes957 = May, 2001.

int=default=default=default:  
sw_compiler4 = Compaq C++ V6.3-010-46B2F
CXX          = cxx -v

fp=default=default=default:
sw_compiler4 = Compaq Fortran V5.4A-1472-46B2F
sw_compiler5 = Compaq Fortran 77 V5.4A-196-46B2F
sw_compiler6 = KAP Fortran V4.3 000607
sw_compiler7 = KAP Fortran 77 V4.1 980926
sw_compiler8 = KAP C V4.1 000607
FC           = f90 -v


# Notice that in the compiler selection above, we always ask for -v, 
# verbose mode.  SPEC has said that it would prefer that notes sections 
# NOT document the use of "-v".  OK, I've dropped it from the notes 
# sections, but it's here in the config file and plain to see for anyone 
# who really cares.  The effect of -v is simply to cause the driver to use 
# verbose mode, but it has no effect on the generated executable.

#########################################################################
#
# Feedback description.  When using feedback for individual benchmarks,
# do it strictly as described here, so that this comment remains correct.  
# (Unfortunately, there is no convenient macro mechanism to enforce this 
# automatically, so just do it.)

default=default=default=default:
notes700 =
notes701 = Most benchmarks are built using one or more types of 
notes702 = profile-driven feedback.  The types used are designated
notes703 = by abbreviations in the notes:
notes704 =
notes705 = +CFB: Code generation is optimized by the compiler, using 
notes706 =       feedback from a training run.  These commands are
notes707 =       done before the first compile (in phase "fdo_pre0"):
notes708 =
notes710 =            mkdir /tmp/pp
notes711 =            rm -f /tmp/pp/${baseexe}*
notes712 =
notes713 =       and these flags are added to the first and second compiles:
notes714 =
notes715 =            PASS1_CFLAGS = -prof_gen_noopt -prof_dir /tmp/pp
notes716 =            PASS2_CFLAGS = -prof_use       -prof_dir /tmp/pp
notes717 = 
notes718 =      (Peak builds use /tmp/pp above; base builds use /tmp/pb.)
notes719 =
notes720 = +IFB: Icache usage is improved by the post-link-time optimizer 
notes721 =       Spike, using feedback from a training run.  These commands
notes722 =       are used (in phase "fdo_postN"):  
notes723 =
notes724 =            mv ${baseexe} oldexe
notes725 =            spike oldexe -feedback oldexe -o ${baseexe}
notes726 =
notes727 = +PFB: Prefetches are improved by the post-link-time optimizer 
notes728 =       Spike, using feedback from a training run.  These
notes729 =       commands are used (in phase "fdo_post_makeN"):
notes730 =
notes731 =            rm -f *Counts*
notes732 =            mv ${baseexe} oldexe
notes733 =            pixie -stats dstride oldexe 1>pixie.out 2>pixie.err
notes734 =            mv oldexe.pixie ${baseexe}
notes735 =
notes736 =       A training run is carried out (in phase "fdo_runN"), and 
notes737 =       then this command (in phase "fdo_postN"):
notes738 =
notes739 =            spike oldexe -fb oldexe -stride_prefetch -o ${baseexe}
notes740 =
notes741 = When Spike is used for both Icache and Prefetch improvements, 
notes742 = only one spike command is actually issued, with the Icache 
notes743 = options followed by the Prefetch options.

#######################################################################
# Integer Baseline Optimization
# notes0xx are used for baseline tuning description

int=base=default=default:     

notes000     = Baseline C  : cc  -arch ev6 -fast +CFB ONESTEP 
notes001     =          C++: cxx -arch ev6 -O2        ONESTEP 

OPTIMIZE     = -v -arch ev6 
COPTIMIZE    = -fast 
CXXOPTIMIZE  = -O2 
ONESTEP      = yes

fdo_pre0     = mkdir /tmp/pb; rm -f /tmp/pb/${baseexe}*
PASS1_CFLAGS = -prof_gen_noopt    -prof_dir /tmp/pb
PASS2_CFLAGS = -prof_use_feedback -prof_dir /tmp/pb

252.eon=base=default=default:
# Turn feedback off for eon
fdo_pre0     =

#######################################################################
# Integer Peak
# notes10x are used for peak tuning description, followed by the 
# actual benchmark numbers (e.g. notes253 and (if needed) notes253_1 
# for perlbmk)

int=peak=default=default:
notes100     = 
notes101     = Peak: 
notes102     =   All but 252.eon: cc -g3 -arch ev6 ONESTEP
OPTIMIZE     =                    -v -g3 -arch ev6 
ONESTEP      = yes

# GEM Feedback - turn off in individual benchmark if not needed.
fdo_pre0     = mkdir /tmp/pp; rm -f /tmp/pp/${baseexe}*
PASS1_CFLAGS = -prof_gen_noopt    -prof_dir /tmp/pp
PASS2_CFLAGS = -prof_use_feedback -prof_dir /tmp/pp

164.gzip=peak=default=default:
notes164     =      164.gzip: -fast -O4 -non_shared +CFB 
COPTIMIZE    =                -fast -O4 -non_shared
feedback     = 1

175.vpr=peak=default=default:
notes175     =       175.vpr: -fast -O4 -assume restricted_pointers +CFB 
COPTIMIZE    =                -fast -O4 -assume restricted_pointers 
feedback     = 1

176.gcc=peak=default=default:
notes176     =       176.gcc: -fast -O4 -xtaso_short -all -ldensemalloc -none
notes176_1   =                +CFB +IFB 
COPTIMIZE    =                -fast -O4 -xtaso_short -all -ldensemalloc -none 
feedback     = 1
fdo_post2    = <<EOT
   mv ${baseexe} oldexe
   spike oldexe -feedback oldexe -o ${baseexe} 
EOT

181.mcf=peak=default=default:
notes181     =       181.mcf: -fast -xtaso_short +CFB +IFB +PFB
COPTIMIZE      =              -fast -xtaso_short
feedback       = 1
fdo_post_make2 = <<EOT
   rm -f *Counts*
   mv ${baseexe} oldexe
   pixie -stats dstride oldexe 1>pixie.out 2>pixie.err
   mv oldexe.pixie ${baseexe}
EOT
fdo_run2       = $command
fdo_post2      = <<EOT
   spike oldexe -feedback oldexe -o ${baseexe} -fb oldexe -stride_prefetch 
EOT

186.crafty=peak=default=default:
notes186     =    186.crafty: same as base
basepeak     = 1

197.parser=peak=default=default:
notes197     =    197.parser: -fast -O4 -xtaso_short -non_shared +CFB
COPTIMIZE    =                -fast -O4 -xtaso_short -non_shared
feedback     = 1

## Note: eon uses OPTIMIZE, not CXXOPTIMIZE, because we really do
##       want to over-ride the default set for all other benchmarks
252.eon=peak=default=default:
notes252     =       252.eon: cxx -arch ev6 -O2 -all -ldensemalloc -none 
OPTIMIZE     =                    -arch ev6 -O2 -all -ldensemalloc -none 
feedback     = 0

253.perlbmk=peak=default=default:
notes253     =   253.perlbmk: -fast -non_shared +CFB +IFB 
COPTIMIZE    =                -fast -non_shared 
feedback     = 1
fdo_post2    = <<EOT
   mv ${baseexe} oldexe
   spike oldexe -feedback oldexe -o ${baseexe} 
EOT

254.gap=peak=default=default:
notes254     =       254.gap: -fast -O4 -non_shared +CFB +IFB +PFB 
COPTIMIZE      =              -fast -O4 -non_shared
feedback       = 1
fdo_post_make2 = <<EOT
   rm -f *Counts*
   mv ${baseexe} oldexe
   pixie -stats dstride oldexe 1>pixie.out 2>pixie.err
   mv oldexe.pixie ${baseexe}
EOT
fdo_run2       = $command
fdo_post2      = <<EOT
   spike oldexe -feedback oldexe -o ${baseexe} -fb oldexe -stride_prefetch 
EOT

255.vortex=peak=default=default:
notes255     =    255.vortex: -fast -non_shared +CFB +IFB
COPTIMIZE    =                -fast -non_shared  
feedback     = 1
fdo_post2    = <<EOT
   mv ${baseexe} oldexe
   spike oldexe -feedback oldexe -o ${baseexe} 
EOT

256.bzip2=peak=default=default:
notes256     =     256.bzip2: -fast -O4 -non_shared +CFB 
COPTIMIZE    =                -fast -O4 -non_shared 
feedback     = 1

300.twolf=peak=default=default:
notes300     =     300.twolf: -fast -O4 -assume restricted_pointers -all 
notes300_1   =                -ldensemalloc -none +CFB +IFB
COPTIMIZE    =                -fast -O4 -assume restricted_pointers -all -ldensemalloc -none 
feedback     = 1
fdo_post2    = <<EOT
   mv ${baseexe} oldexe
   spike oldexe -feedback oldexe -o ${baseexe} 
EOT

#######################################################################
# Floating point Baseline Optimization
# notes0xx are used for baseline tuning description

fp=base=default=default:     

notes000     = Baseline   C: cc  -arch ev6 -fast -O4 ONESTEP 
notes001     =      Fortran: f90 -arch ev6 -fast -O5 ONESTEP 
notes002     =

OPTIMIZE     = -v -arch ev6 
COPTIMIZE    = -fast -O4
FOPTIMIZE    = -fast -O5 
ONESTEP      = yes

#######################################################################
# Floating Point Peak
# notes10x are used for peak tuning description, followed by the 
# actual benchmark numbers (e.g. notes253 and notes253_1 for perlbmk)

fp=peak=default=default:
notes100     = 
notes101     = Peak:
notes102     =   All use -g3 -arch ev6 -non_shared ONESTEP 
OPTIMIZE     =        -v -g3 -arch ev6 -non_shared
ONESTEP      = yes

notes113     =   Individual benchmark tuning:

168.wupwise=peak=default=default:
notes168     =    168.wupwise: kf77 -fast -O4 -pipeline -unroll 2 +PFB 
F77OPTIMIZE  =                      -fast -O4 -pipeline -unroll 2
F77          = kf77 
fdo_post_make1 = <<EOT
   rm -f *Counts*
   mv ${baseexe} oldexe
   pixie -stats dstride oldexe 1>pixie.out 2>pixie.err
   mv oldexe.pixie ${baseexe}
EOT
fdo_post1      = spike oldexe -fb oldexe -stride_prefetch -o ${baseexe} 

171.swim=peak=default=default:
notes171     =       171.swim: f90 -fast -O5 
F77OPTIMIZE  =                     -fast -O5 
F77          = f90

172.mgrid=peak=default=default:
notes172     =      172.mgrid: kf77 -O5 -transform_loops -tune ev6 -unroll 8 
notes172_1                     +PFB
F77OPTIMIZE  =                      -O5 -transform_loops -tune ev6 -unroll 8 
F77          = kf77 
fdo_post_make1 = <<EOT
   rm -f *Counts*
   mv ${baseexe} oldexe
   pixie -stats dstride oldexe 1>pixie.out 2>pixie.err
   mv oldexe.pixie ${baseexe}
EOT
fdo_post1      = spike oldexe -fb oldexe -stride_prefetch -o ${baseexe}

173.applu=peak=default=default:
notes173     =      173.applu: f90 -fast -O5 +PFB
F77OPTIMIZE  =                     -fast -O5
F77          = f90
fdo_post_make1 = <<EOT
   rm -f *Counts*
   mv ${baseexe} oldexe
   pixie -stats dstride oldexe 1>pixie.out 2>pixie.err
   mv oldexe.pixie ${baseexe}
EOT
fdo_post1      = spike oldexe -fb oldexe -stride_prefetch -o ${baseexe}

177.mesa=peak=default=default:
notes177     =       177.mesa: cc -fast -O4 +CFB +IFB 
COPTIMIZE    =                    -fast -O4
CC           = cc 
fdo_pre0     = <<EOT
   mkdir /tmp/pp 
   rm -f /tmp/pp/${baseexe}*
EOT
PASS1_CFLAGS = -prof_gen_noopt    -prof_dir /tmp/pp
PASS2_CFLAGS = -prof_use_feedback -prof_dir /tmp/pp
fdo_post2    = <<EOT
   mv ${baseexe} oldexe
   spike oldexe -feedback oldexe -o ${baseexe} 
EOT

178.galgel=peak=default=default:
notes178     =     178.galgel: f90 -fast -O5
FOPTIMIZE    =                     -fast -O5 
FC           = f90 

179.art=peak=default=default:
notes179     =        179.art: kcc -fast -O4 -unroll 10 -ckapargs='-arl=4 
notes179_1   =                 -ur=4' +PFB
COPTIMIZE    =                     -fast -O4 -unroll 10 -ckapargs='-arl=4 -ur=4' 
CC           = kcc 
fdo_post_make1 = <<EOT
   rm -f *Counts*
   mv ${baseexe} oldexe
   pixie -stats dstride oldexe 1>pixie.out 2>pixie.err
   mv oldexe.pixie ${baseexe}
EOT
fdo_post1      = spike oldexe -fb oldexe -stride_prefetch -o ${baseexe}

183.equake=peak=default=default:
notes183     =     183.equake: cc -fast -xtaso_short -assume 
notes183_1   =                 restricted_pointers -all -ldensemalloc -none +PFB
COPTIMIZE    =                    -fast -xtaso_short -assume restricted_pointers -all -ldensemalloc -none 
CC           = cc 
fdo_post_make1 = <<EOT
   rm -f *Counts*
   mv ${baseexe} oldexe
   pixie -stats dstride oldexe 1>pixie.out 2>pixie.err
   mv oldexe.pixie ${baseexe}
EOT
fdo_post1      = spike oldexe -fb oldexe -stride_prefetch -o ${baseexe} 

187.facerec=peak=default=default:
notes187     =    187.facerec: f90 -fast -O4 +PFB
FOPTIMIZE    =                     -fast -O4 
FC           = f90 
fdo_post_make1 = <<EOT
   rm -f *Counts*
   mv ${baseexe} oldexe
   pixie -stats dstride oldexe 1>pixie.out 2>pixie.err
   mv oldexe.pixie ${baseexe}
EOT
fdo_post1      = spike oldexe -fb oldexe -stride_prefetch -o ${baseexe}

188.ammp=peak=default=default:
notes188     =       188.ammp: cc -fast -O4 -xtaso_short -assume 
notes188_1   =                 restricted_pointers 
COPTIMIZE    =                    -fast -O4 -xtaso_short -assume restricted_pointers
CC           = cc 

189.lucas=peak=default=default:
notes189     =      189.lucas: kf90 -O5 -fkapargs='-ur=1' +PFB 
FOPTIMIZE    =                      -O5 -fkapargs='-ur=1' 
FC           = kf90 
fdo_post_make1 = <<EOT
   rm -f *Counts*
   mv ${baseexe} oldexe
   pixie -stats dstride oldexe 1>pixie.out 2>pixie.err
   mv oldexe.pixie ${baseexe}
EOT
fdo_post1      = spike oldexe -fb oldexe -stride_prefetch -o ${baseexe} 

191.fma3d=peak=default=default:
notes191     =      191.fma3d: kf90 -O4 -transform_loops +PFB 
FOPTIMIZE    =                      -O4 -transform_loops
FC           = kf90 
fdo_post_make1 = <<EOT
   rm -f *Counts*
   mv ${baseexe} oldexe
   pixie -stats dstride oldexe 1>pixie.out 2>pixie.err
   mv oldexe.pixie ${baseexe}
EOT
fdo_post1      = spike oldexe -fb oldexe -stride_prefetch -o ${baseexe} 

200.sixtrack=peak=default=default:
notes200     =   200.sixtrack: f90 -fast -O5 -assume accuracy_sensitive 
notes200_1   =                 -notransform_loops +PFB
F77OPTIMIZE  =                     -fast -O5 -assume accuracy_sensitive -notransform_loops
F77          = f90 
fdo_post_make1 = <<EOT
   rm -f *Counts*
   mv ${baseexe} oldexe
   pixie -stats dstride oldexe 1>pixie.out 2>pixie.err
   mv oldexe.pixie ${baseexe}
EOT
fdo_post1      = spike oldexe -fb oldexe -stride_prefetch -o ${baseexe}

301.apsi=peak=default=default:
notes301     =       301.apsi: kf90 -O5 -transform_loops -unroll 8 
notes301_1   =                 -fkapargs='-ur=1' +PFB 
F77OPTIMIZE  =                      -O5 -transform_loops -unroll 8 -fkapargs='-ur=1' 
F77          = kf90 
fdo_post_make1 = <<EOT
   rm -f *Counts*
   mv ${baseexe} oldexe
   pixie -stats dstride oldexe 1>pixie.out 2>pixie.err
   mv oldexe.pixie ${baseexe}
EOT
fdo_post1      = spike oldexe -fb oldexe -stride_prefetch -o ${baseexe} 

#######################################################################
# Integer Portability
# notes8xx are used for portability

int=default=default=default:

notes800     = 
notes801     = Portability: gcc: -Dalloca=__builtin_alloca; crafty: -DALPHA
notes802     = perlbmk: -DSPEC_CPU2000_DUNIX; vortex: -DSPEC_CPU2000_LP64
notes803     = gap: -DSYS_HAS_CALLOC_PROTO -DSYS_IS_BSD -DSYS_HAS_IOCTL_PROTO 
notes804     =      -DSPEC_CPU2000_LP64

176.gcc=default=default=default:
EXTRA_CFLAGS= -Dalloca=__builtin_alloca

186.crafty=default=default=default:
EXTRA_CFLAGS = -DALPHA

252.eon=default=default=default:
CXXPORTABILITY = -lm

253.perlbmk=default=default=default:
EXTRA_CFLAGS = -DSPEC_CPU2000_DUNIX 

254.gap=default=default=default:
EXTRA_CFLAGS = -DSYS_HAS_CALLOC_PROTO -DSYS_IS_BSD -DSYS_HAS_IOCTL_PROTO -DSPEC_CPU2000_LP64

255.vortex=default=default=default:
EXTRA_CFLAGS = -DSPEC_CPU2000_LP64

#######################################################################
# Floating point Portability
# notes8xx are used for portability

fp=default=default=default:

notes800     = 
notes801     = Portability: galgel: -fixed

178.galgel=default=default=default:
EXTRA_FFLAGS = -fixed