[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: bug or a feature
From: |
Paul Pluzhnikov |
Subject: |
Re: bug or a feature |
Date: |
Mon, 04 Jul 2005 13:15:33 -0700 |
User-agent: |
Gnus/5.1006 (Gnus v5.10.6) XEmacs/21.4 (Jumbo Shrimp, linux) |
Robert Heller <heller@deepsoft.com> writes:
> The 'g++' program is just a wrapper. It calls the
> preprocessor on gcc_bug.cpp, yielding /tmp/<mumble>.i,
Actually, no current C++ compiler I know of has a separate
preprocessor. They all use integrated preprocessors, which means
that the <mumble>.i is never produced.
There is no reason (other then separation of concerns / ease of
maintenance) for other pieces to be separate either; and indeed
IBM's VisualAge compilers integrated everything.
There are advantages to such integration:
- Inter-procedure optimization becomes possible across compilation
units (the compiler keeps a database of "known program elements",
and can e.g. tell that bug::meth1() does not modify caller-saved
register X, therefore this register need not be saved).
- Partial recompilation becomes possible: if you modified the
body of inlined function foo(), only the functions that call foo()
must be recompiled.
- etc, etc.
All of this is of course extremely non-portable; I don't know
whether anybody takes advantage of the advanced VisualAge features.
Cheers,
--
In order to understand recursion you must first understand recursion.
Remove /-nsp/ for email.