Previous section   Next section

Imperfect C++ Practical Solutions for Real-Life Programming
By Matthew Wilson
Table of Contents
Appendix A.  Compilers and Libraries


A.1. Compilers

I used the following compilers from nine organizations in the research for the book:

  • Borland C/C++ versions 5.5(1), 5.6 and 5.64

  • CodePlay's VectorC version 2.06

  • Comeau C++ versions 4.3.0.1 and 4.3.3

  • Digital Mars C/C++ versions 8.30–8.38

  • GCC versions 2.95 and 3.2

  • Intel C/C++ versions 6.0, 7.0 and 7.1

  • Metrowerks' CodeWarrior versions 7 and 8

  • Microsoft's Visual C++ versions 6.0, 7.0, and 7.1

  • Watcom version 12.0 (also known as Open Watcom 1.0)

Of these, the following are completely freely available:

The following are freely available in some form:

The following are commercially available:

Even when not freely available in some form, most of these vendors also offer free trials. I'm not going to offer any comparative advice in this forum, as there are plenty of comparison articles to be found by even halfhearted searches on the net. You've probably already picked up my impressions of most of them from the discussions throughout the book. In any case, I'm a big believer in using several compilers in your work, rather than sticking to just one (see Appendix D); every one of these compilers has offered useful warnings that all the others missed.

I'd like to thank all these vendors for being kind enough to supply me with their tools for use in the preparation of the book. It's great to see such a supportive spirit evinced by the smallest compiler teams (the smallest is one man: Digital Mars's Walter Bright) all the way up to some of the world's largest IT companies. It's much appreciated.

A.1.1 Compiler Optimizations

Wherever the performance of code has been measured, rather than just verifying correctness, all compilations have been conducted with maximum speed optimization and targeted (as much as is possible) at the host system processor, a Pentium IV. The settings for the compilers on Win32 were as follows:

Compiler

Optimization settings

Borland 5.6

-O2 -6

CodePlay VectorC 2.06

-nodebug -optimize 10 -max -target p4

Comeau 4.3.0.1 (Visual C++ 6.0 backend)

/O2 /Ox /Ob2 /G6

Digital Mars 8.38

-o+speed -6

GCC 3.2

-O7 -mcpu=i686

Intel 7.0

-Ox -O2 -Ob2 -GS -G7

Metrowerks CodeWarrior 8

-opt full -inline all,deferred -proc generic

Microsoft Visual C++ 6.0

-Ox -O2 -Ob2 -G6

Microsoft Visual C++ 7.1

-O2 -Ox -Ob2 -GL -G7

Watcom 12.0 (Open Watcom 1.0)

-oxtean -ei -6r -fp6



      Previous section   Next section