Steven Bosscher wrote:
On 11/5/06, Kenneth Zadeck <[EMAIL PROTECTED]> wrote:
I would like to point out that the central point of my proposal was to
have the compilation manager be the process that manages if an
optimization is skipped or not rather than having each pass make a
decision on it's own.  If we have a central mechanism, then it is
relative easy to find some sweet spots.  If every pass rolls its own, it
is more difficult to balance.

Hmm, I don't understand this.  Why is it harder to find a sweet spot
if every pass decides for itself whether to run or not?  I would think
that this decision should be made by each pass individually, because
the pass manager is one abstraction level higher where it shouldn't
have to know the behavior of each pass.

If every expensive pass decides it is too expensive to run, then none of them will run, when what you might have wanted is for some but not all of them to run. Being at a higher level means you can query a pass for a cost estimate given a certain set of arguments, and then decide whether or not to disable the pass based on what you know so far about the entire compilation chain.

Also, often passes will interact with each other, i.e. they are not orthogonal, and a good way to manage the effects is at a higher level, as opposed to having individual passes communicating with each other.

Chris

Reply via email to