[EMAIL PROTECTED] wrote:
Each of the functions in a C/C++ program is dependent on
the global environment, but each is independent of each other.
Separate threads could process the tree/RTL for each function
independently, with the results merged on completion. This
may interact adversely with some global optimizations, such
as inlining.
Is it just me or could lazy evaluation really help here?
Lazy evaluation only helps if it gives you an opportunity
to defer doing some work that you later discover that
you don't need.
If you can avoid processing a function because there are no
references to it, then you've saved some effort. Unfortunately,
you don't know whether a function is unreferenced until you
have processed all other functions. So you really need to
process (at least parse) all functions in a compilation.
In general, with multiple processors, it's better to do
work in parallel that is likely to be needed but possibly may
turn out to be unnecessary than wait until it's known for
sure that it is needed.
Ok maybe its just me.
Well, maybe. ;-)
--
Michael Eager [EMAIL PROTECTED]
1960 Park Blvd., Palo Alto, CA 94306 650-325-8077