[ Table of Contents | Index ]
Appendix C
C. PowerPC Instruction Usage Statistics
The statistical properties of programs are often an important consideration for a compiler writer who faces difficult trade-offs among different optimizations. This section presents PowerPC instruction frequency statistics derived from traces of the SPEC92 benchmark suite. The traces recorded the number of times each type of instruction was executed during each of the benchmarks.
C.1 By Instruction Category
Figures C-1 and C-2 show the instruction frequency in each of the benchmarks of the SPEC92 suite for the following categories of instructions:
- BranchBranch, branch conditional, branch conditional to Link Register, and branch conditional to Count Register instructions.
- IntegerFixed-point arithmetic, compare, logical, rotate, and shift instructions.
- LoadFixed-point load, load with byte reversal, load multiple, load string, load-and-reserve, and floating-point load instructions.
- StoreFixed-point store, store with byte reversal, store multiple, store string, store conditional, and floating-point store instructions.
- Floating-PointFloating-point arithmetic, rounding, conversion, and compare instructions.
The percentages represent the fraction of the total number of instructions executed in that benchmark program (or in the entire set of integer or floating-point programs in the case of average) for the specified category.
C.2 By Instruction
Figures C-3, C-4, and C-5 shows the frequency of PowerPC instruction execution by instruction averaged over either the integer or floating-point programs in SPEC92. The number of executions for each instruction is divided by the total number of executions in all of the integer or floating-point programs to give the percent. Figures C-3 and C-4 show the 20 most frequently used instructions in the integer and floating-point parts of SPEC92 arranged in decreasing order of frequency. Figure C-5 shows the frequency of all instructions in the integer and floating-point parts of SPEC92 arranged alphabetically by mnemonic.
C.3 General Information
All benchmarks are compiled under the AIX version 4.1 operating system.
The C language benchmarks were compiled using:
The Fortran language benchmarks were compiled using:
The compiler flags for each specific benchmark are:
- 008.espressoC Compiler
- -O3 -qro -Q=5000 -qunroll=1 -qproto -qupconv -qinlglue\
-qonce -qproclocal -qassert=ALLP -qipa
- /usr/ccs/lib/bmalloc.o -bnso -bI:/lib/syscalls.exp
- 022.liC Compiler, KAP C Preprocessor
- -O3 -qarch=ppc -Q -qcompact -qunroll=2 -qdatalocal\
-Dlongjmp=_longjmp -Dsetjmp=_setjmp
- +K4 +Kargs=-ur2=100:-arl=3:-inll=5:-ind=10:\
-inline=newnode, xlgetvalue,xlygetvalue,xlxgetvalue, \ xlobgetvalue,getivcnt,consa,consd,cons,evform,\ xlevlist,mark,sweep,xlframe,xlabind,xlbind, \ xlevarg,xlarg,xllastarg,binary,cxr:-inff=xlobj.kapin.c,\ xlsy.kapin.c,xldmem.kapin.c,xlsubr.kapin.c
- -bnso -bI:/lib/syscalls.exp
- 023.eqntottC Compiler, KAP C Preprocessor
- -O3 -Q+cmppt:cmppth -qinlglue -qonce -qassert=typeptr\
-qunroll=1
- +K4 +Kargs=-ur2=1:-inline=cmppt,cmppth,cmpptx,cmpv
- /usr/ccs/lib/bmalloc.o -bnso -bI:/lib/syscalls.exp
- 026.compressC Compiler, KAP C Preprocessor
- -O3 -qarch=ppc -qro -qlibansi -qproclocal -Q=1000\
-qassert=typeptr -qassert=addr
- +K4 +Kargs=-inline=output:-inll=4:-ind=4:-ur=2:-arl=3
- /usr/ccs/lib/bmalloc.o -bnso -bI:/lib/syscalls.exp
- 072.scC Compiler, KAP C Preprocessor
- -O3 -qarch=ppc -Q=1000 -DSYSV3 -DSIGVOID\
-DSIMPLE -Dlongjmp=_longjmp -Dsetjmp=_setjmp\ -qdatalocal -qdataimported=stdscr:COLS:LINES:errno\ -qassert=typeptr -qassert=addr -qproclocal
- +K4 +Kargs=-ur2=1:-arl=3:-inline=eval,RealEvalOne,\
RealEvalAll,dosum
- /usr/ccs/lib/bmalloc.o -bnso -bI:/lib/syscalls.exp
- -lcurses -lm -lPW -L/local/spec92/cint92/benchspec/072.sc\
-lc
- 085.gccC Compiler, KAP C Preprocessor
- -O -qarch=ppc -qignerrno -qroconst -ma -Dsetjmp=_setjmp\
-Dlongjmp=_longjmp -qassert=typeptr
- +K4 +Kargs=-ur2=1
- -lm -bnso -bI:/lib/syscalls.exp
- 013.spice2g6Fortran Compiler, VAST Preprocessor
- -O3 -qarch=ppc -qhsflt -qnofold -qhot
- -Pv -Wp,-ea78,-Iindxx:dcsol,-Sv01.f:v06.f
- -bnso -bI:/lib/syscalls.exp
- 015.doducFortran Compiler, VAST Preprocessor
- -O3 -qarch=ppc -qtune=601 -qhsflt -qnosave
- -Pv -Wp,-ea7,-Isi:coeray,-Ssi.f:coeray.f
- -bnso -bI:/lib/syscalls.exp -L/local/sharma/lib -lm
- 034.mdljdp2Fortran Compiler, KAP Fortran Preprocessor
- -O3 -qarch=ppc -qhsflt -qnofold
- -Pk -Wp,-inline,-r=3,-ur=2
- -bnso -bI:/lib/syscalls.exp -L/local/sharma/lib -lm
- 039.wave5Fortran Compiler, KAP Fortran Preprocessor
- -O3 -qarch=ppc -qhsflt -qnoflod
- -Pk -Wp,-r=3,-inline,-ur=2
- -bnso -bI:/lib/syscalls.exp -L/local/sharma/lib -lm
- 047.tomcatvFortran Compiler, KAP Fortran Preprocessor
- -O3 -qstrict -qarch=ppc -qhsflt
- -Pk -Wp,-r=3,-inline,-ur=4,-ag=a
- -bnso -bI:/lib/syscalls.exp -L/local/sharma/lib -lm
- 048.oraFortran Compiler, KAP Fortran Preprocessor
- -O -qarch=ppc -qhsflt -qrndsngl
- -Pk -Wp,-inline,-r=3,-ur=2,-ur2=105,-ag=a,-ind=2,-inll=2
- -bnso -bI:/lib/syscalls.exp -L/local/sharma/lib -lm
- 052.alvinnC Compiler, KAP C Preprocessor
- -O3 -Q=1000 -qarch=ppc -qhsflt -qassert=typeptr\
-qassert=addr
- +K4 +Kargs=-ur2=5000:-arl=1
- -bnso -bI:/lib/syscalls.exp
- 056.earC Compiler, KAP C Preprocessor
- -O3 -qarch=ppc -qproclocal -qhsflt -Q -qunroll=2
- +K4 +Kargs=-arl=3:-ur2=5000
- -bnso -bI:/lib/syscalls.exp -L/u/lu/tmp -lm
- 077.mdljsp2Fortran Compiler, KAP Fortran Preprocessor
- -O3 -qarch=ppc -qhsflt -qnosave -qunroll=2
- -Pk -Wp,-inline,-r=3,-ur2=159,-ag=a
- -bnso -bI:/lib/syscalls.exp
- 078.swm256Fortran Compiler, KAP Fortran Preprocessor
- -O3 -qarch=ppc -qhot -qfloat=hssngl -qnofold
- -Pk -Wp,-r=3,-ur2=135,-ur=4,-ag=a
- -bnso -bI:/lib/syscalls.exp -L/local/sharma/lib -lm
- 089.su2corFortran Compiler, KAP Fortran Preprocessor
- -O3 -qarch=ppc -qstrict -qhssngl -qnosave -qnofold
- -Pk -Wp,-f,-inline=trngv:sweep:adjmat:matmat,-ind=2,-inll=2,\
-ur=4,-ur2=398,-r=3,-ag=a
- -bnso -bI:/lib/syscalls.exp -L/local/sharma/lib -lm
- 090.hydro2dFortran Compiler, VAST Preprocessor
- -O3 -qarch=ppc -qhsflt -qnofold -qunroll=8
- -Pv -Wp,-eq,-f,-me
- -bnso -bI:/lib/syscalls.exp -L/local/sharma/lib -lm
- 093.nasa7Fortran Compiler, KAP Fortran Preprocessor
- -O3 -qarch=ppc -qhsflt
- -DTIMES
- -Pk -Wp,-inline=vpetst:vpenta:ffttst,-ind=2,-inll=2,-ur=2,\
-f,-ur2=200,-r=3,-ag=a
- -bnso -bI:/lib/syscalls.exp -L/local/sharma/lib -lm
- 094.fppppFortran Compiler, VAST Preprocessor
- -O3 -qarch=ppc -qnofold -qstrict
- -Pv -Wp,-ea278,-me
- -bnso -bI:/lib/syscalls.exp -L/local/sharma/lib -lm
[ Table of Contents | Index ]
|