help-gplusplus
[Top][All Lists]
Advanced

[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.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]