gcc 3.3 versus bench++

poschmid@lbl.gov poschmid@lbl.gov
Thu Mar 27 02:05:00 GMT 2003


Here are bench++ results for two snapshots of gcc 3.3 versus the gcc
3.2 release. The testsuite were run on an i686-pc-linux-gnu
target. 

The system is equipped with a Pentium iv at 1800 MHz and 256 MB of
RAM. The system setup is glibc-2.3.2, binutils 2.12.90.0.15 and
linux-2.4.19.

Hope this helps,

Peter Schmid


          RELATIVE TIMES ..........
TEST NAME Pentium iv Pentium iv Pentium iv 
          gcc 3.3    gcc 3.2    gcc 3.3    
	  20030325   release	20030314
          -O2        -O2        -O2        
--------- ---------- ---------- ---------- 
A000091         1.00       0.96       1.03 
A000092         1.00       0.99       1.00 
A000094a        1.00       1.06       1.02 
A000094b        1.00       1.18       1.00 
A000094c        1.00       1.00       1.00 

A000094d        1.00       0.97       1.00 
A000094e        1.00       1.07       1.00 
A000094f        1.00       1.31       0.97 
A000094g        1.00       1.00       1.00 
A000094h        1.00       0.99       0.99 

A000094i        1.00       0.91       0.99 
A000094j        1.00       1.05       0.99 
A000094k        1.00       1.08       1.01 
B000002b        1.00       1.01       1.00 
B000003b        1.00       1.02       1.00 

B000004b        1.00       1.05       1.04 
B000010         1.00       1.16       1.00 
B000011         1.00       1.07       0.97 
B000013         1.00       1.03       0.99 
D000001         1.00       1.08       0.99 

D000002         1.00       2.08       1.00 
D000003         1.00       0.87       1.00 
D000004         1.00       2.05       1.01 
D000005         1.00       0.16       1.04 
D000006         1.00       1.92       1.00 

E000001         1.00       1.01       0.99 
E000002         1.00       1.44       0.98 
E000003         1.00       1.14       0.98 
E000004         1.00       1.15       0.98 
E000007         1.00       1.22       0.98 

E000008         1.00       2.38       1.00 
F000001         1.00       1.25       1.00 
F000002         1.00       1.66       0.98 
F000003         1.00       1.16       0.76 
F000004         1.00       0.87       0.58 

F000005         1.00       1.02       0.86 
F000006         1.00       0.63       0.78 
F000007         1.00       0.96       0.92 
F000008         1.00       1.12       1.01 
G000001         1.00       1.07       1.00 

G000002         1.00       1.22       0.96 
G000003         1.00       0.80       0.98 
G000004         1.00       0.78       1.00 
G000007         1.00       0.24       0.98 
H000001         1.00       1.00       1.02 

H000002         1.00       0.95       1.02 
H000003         1.00       1.12       1.01 
H000004         1.00       1.01       1.00 
H000005         1.00       0.00       0.00 
H000006         1.00       7.61       0.92 

H000007         1.00       1.17       0.98 
H000008         1.00       0.38       0.86 
H000009         1.00       1.57       1.00 
L000001         1.00       0.52       0.73 
L000002         1.00       0.74       0.34 

L000003         1.00       1.67       1.15 
L000004         1.00       3.95       2.52 
O000001a        1.00       1.09       1.01 
O000001b        1.00       1.10       1.00 
O000002a        1.00       1.01       1.00 

O000002b        1.00       1.05       1.00 
O000003a        1.00       1.05       0.99 
O000003b        1.00       0.93       1.00 
O000004a        1.00       0.96       1.02 
O000004b        1.00       0.97       1.02 

O000005a        1.00       1.02       1.01 
O000005b        1.00       1.01       1.01 
O000006a        1.00       1.01       1.00 
O000006b        1.00       0.99       1.00 
O000007a        1.00       1.07       1.00 

O000007b        1.00       1.22       1.01 
O000008a        1.00       0.98       1.01 
O000008b        1.00       0.88       0.94 
O000009a        1.00       0.98       1.01 
O000009b        1.00       1.08       1.02 

O000010a        1.00       0.99       1.00 
O000010b        1.00       0.94       1.04 
O000011a        1.00       1.27       0.97 
O000011b        1.00       0.94       0.97 
O000012a        1.00       0.94       0.97 

O000012b        1.00       1.00       1.00 
P000001         1.00       2.56       2.77 
P000002         1.00       0.53       1.26 
P000003         1.00       0.45       0.97 
P000004         1.00        nan        nan 

P000005         1.00       0.82       0.96 
P000006         1.00       1.07       1.03 
P000007         1.00       1.01       0.97 
P000008         1.00       0.87       0.95 
P000010         1.00       0.66       1.01 

P000011         1.00       0.58       0.99 
P000012         1.00       0.55       1.00 
P000013         1.00       0.72       1.00 
P000020         1.00       1.03       0.96 
P000021         1.00       --         2.45 

P000022         1.00       --         2.90 
P000023         1.00       1.02       0.99 
S000001a        1.00       1.18       1.17 
S000001b        1.00       1.01       1.13 
S000002a        1.00       1.07       1.00 

S000002b        1.00       0.99       1.01 
S000003a        1.00       1.03       1.01 
S000003b        1.00       1.02       1.01 
S000004a        1.00       0.59       1.00 
S000004b        1.00       0.79       1.00 

S000005a        1.00       0.81       0.96 
S000005b        1.00       1.01       0.99 
S000005c        1.00       1.04       1.24 
S000005d        1.00       1.02       1.00 
S000005e        1.00       1.09       0.97 

S000005f        1.00       1.00       1.00 
S000005g        1.00       1.14       1.08 
S000005h        1.00       1.00       1.00 
S000005i        1.00       1.09       1.00 
S000005j        1.00       1.02       1.00 

S000005k        1.00       1.10       1.00 
S000005l        1.00       0.85       1.06 
S000005m        1.00       1.04       1.01 


  a000091.cpp  Dhrystone
  a000092.cpp  Whetstone
  a000094a..k  Hennesy benchmarks

                 This group of tests measures the performance of some
                 real (useful) C++ code, including a tracker algorithm,
                 an Orbit calculation, a Kalman filter, and a Centroid
                 algorithm.  Here is where other small useful benchmarks
                 should be added.  Please send ideas to 
                 "joseph.orost@att.com".
  b000002b.cpp Tracker: float
  b000003b.cpp Tracker: double
  b000004b.cpp Tracker: float & int
  b000010.cpp  Orbit
  b000011.cpp  Kalman
  b000013.cpp  Centroid

                 This group of tests measures dynamic allocation related
                 timing.
  d000001.cpp  malloc & free: 1000 ints
  d000002.cpp  malloc & init & free: 1000 ints
  d000003.cpp  new & delete: 1000 ints
  d000004.cpp  new & init & delete: 1000 ints
  d000005.cpp  alloca: 1000 ints        (optional test)
  d000006.cpp  alloca & init: 1000 ints (optional test)

                 This group of tests measures exception related timing.
                 For historical reasons, e000005 is missing.
  e000001.cpp  Local exception caught
  e000002.cpp  Class method exception caught
  e000003.cpp  Procedure exception caught: 3-deep
  e000004.cpp  Procedure exception caught: 4-deep
  e000006.cpp  Declared Procedure exception caught: 4-deep
  e000007.cpp  Procedure exception caught: 4-deep re-thrown at each level
  e000008.cpp  Procedure exception 4-deep: Implemented using setjmp/longjmp

                 This group of tests measures coding style related timing.
  f000001.cpp  Boolean assignment
  f000002.cpp  Boolean if
  f000003.cpp  2-way if/else
  f000004.cpp  2-way switch
  f000005.cpp  10-way if/else
  f000006.cpp  10-way switch
  f000007.cpp  10-way sparse switch
  f000008.cpp  10-way virtual function call

                 This group of tests measures I/O related timing.
  g000001.cpp  iostream.getline: 20 char buffer
  g000002.cpp  iostream.>> : 20 chars in loop
  g000003.cpp  iostream.<< : 20 char buffer
  g000004.cpp  iostream.<< : 20 chars in loop
  g000005.cpp  istrstream.>> : int
  g000006.cpp  istrstream.>> : float
  g000007.cpp  fstream.open/fstream.close

                 This group of tests measures machine level features.
  h000001.cpp  packed bit arrays
  h000002.cpp  unpacked bit arrays
  h000003.cpp  packed bit ops in loop
  h000004.cpp  unpacked bit ops in loop
  h000005.cpp  int conversion
  h000006.cpp  10-float conversion
  h000007.cpp  bit-fields
  h000008.cpp  bit-fields and packed bit array
  h000009.cpp  pack and unpack class objects

                 This group of tests measures loop overhead related timing.
  l000001.cpp  "for" loop
  l000002.cpp  "while" loop
  l000003.cpp  inf. loop w/break
  l000004.cpp  5-iteration loop

                 This group of tests measures optimizer performance.
  o000001a.cpp Constant Propagation (including math functions)
  o000001b.cpp " Hand Optimized
  o000002a.cpp Local Common Sub-expression (including math functions)
  o000002b.cpp " Hand Optimized
  o000003a.cpp Global Common Sub-expression
  o000003b.cpp " Hand Optimized
  o000004a.cpp Unnecessary Copy
  o000004b.cpp " Hand Optimized
  o000005a.cpp Code Motion (including math functions)
  o000005b.cpp " Hand Optimized
  o000006a.cpp Induction Variable
  o000006b.cpp " Hand Optimized
  o000007a.cpp Reduction in Strength (including math functions)
  o000007b.cpp " Hand Optimized
  o000008a.cpp Dead Code
  o000008b.cpp " Hand Optimized
  o000009a.cpp Loop Jamming
  o000009b.cpp " Hand Optimized
  o000010a.cpp Redundant Code
  o000010b.cpp " Hand Optimized
  o000011a.cpp Unreachable Code
  o000011b.cpp " Hand Optimized
  o000012a.cpp String Ops
  o000012b.cpp " Hand Optimized

                 This group of tests measures procedure call related timing.
                 There is no test p000009, nor 14 thru 19.
  p000001.cpp  Procedure Call: No Args
  p000002.cpp  Procedure Call: No Args: Catches Exceptions
  p000003.cpp  Static Class Method Call: No Args: Catches Exceptions
  p000004.cpp  Inline Procedure Call: No Args
  p000005.cpp  Static Class Method Call: 1-int Arg: Catches Exceptions
  p000006.cpp  Static Class Method Call: 1-int *Arg: Catches Exceptions
  p000007.cpp  Static Class Method Call: 1-int &Arg: Catches Exceptions
  p000008.cpp  Procedure Call: No Parameters: Called thru pointer, Catches Exceptions
  p000010.cpp  Procedure Call: 10-int Args: Catches Exceptions
  p000011.cpp  Procedure Call: 20-int Args: Catches Exceptions
  p000012.cpp  Procedure Call: 10-(3-int) Args: Catches Exceptions
  p000013.cpp  Procedure Call: 20-(3-int) Args: Catches Exceptions
  p000020.cpp  Class Method Call: 1-"this" Arg: Catches Exceptions
  p000021.cpp  Virtual Class Method Call: 1-"this" Arg: Catches Exceptions
  p000022.cpp  Virtual Const Class Method Call: 1-"this" Arg: Catches Exceptions
  p000023.cpp  Same as p000022: called in loop to see if lookup is optimized

                 This group of tests measures object oriented style vs.
                 C style.
  s000001a.cpp Max: C++ Style
  s000001b.cpp Max: C Style
  s000002a.cpp Matrix: C++ Style
  s000002b.cpp Matrix: C Style
  s000003a.cpp Iterator: C++ Style
  s000003b.cpp Iterator: C Style
  s000004a.cpp Complex: C++ Style
  s000004b.cpp Complex: C Style
  s000005a.cpp Stepanov: C++ Style Abstraction Level 12
  s000005b.cpp Stepanov: C++ Style Abstraction Level 11
  s000005c.cpp Stepanov: C++ Style Abstraction Level 10
  s000005d.cpp Stepanov: C++ Style Abstraction Level 9
  s000005e.cpp Stepanov: C++ Style Abstraction Level 8
  s000005f.cpp Stepanov: C++ Style Abstraction Level 7
  s000005g.cpp Stepanov: C++ Style Abstraction Level 6
  s000005h.cpp Stepanov: C++ Style Abstraction Level 5
  s000005i.cpp Stepanov: C++ Style Abstraction Level 4
  s000005j.cpp Stepanov: C++ Style Abstraction Level 3
  s000005k.cpp Stepanov: C++ Style Abstraction Level 2
  s000005l.cpp Stepanov: C++ Style Abstraction Level 1
  s000005m.cpp Stepanov: C++ Style Abstraction Level 0




More information about the Libstdc++ mailing list