On 11 Feb 2008, at 14:49, Diego Novillo wrote:

On Fri, Feb 1, 2008 at 3:55 PM, Andrew MacLeod <[EMAIL PROTECTED]> wrote:

1 - Pass cleanup. There have been rumblings about this, but I haven't seen a lot of actual progress. We currently run 100's of passes all the time, and we don't really know how effective or necessary many of them
are. We also don't know whether the cleanups they run are truly doing
much. It would be nice to do some actual analysis and do something with
the results.

Yes, this is an area that is in desperate need of TLC.  Your plan
looks good to me.  We need to have a mechanism to determine whether a
pass did something, we need to be able to have different pipelines for
different architectures.

Do you have anything specific in mind?  Create a branch?  Work
directly on mainline?

Perhaps the first stage would be to define the logging so we can start
doing some analysis.

I believe the work we did for CGO'08 is relevant here. We came up with an automated way to select combinations of passes which perform well as candidate optimization levels. We trade off compilation time vs execution time in the paper, but the framework we came up with is more general than that. We had some nice results, showing that using only 25% of the passes activated at -O3 were enough to come up with candidate optimization levels which significantly outperform -O1/2/3, especially in terms of compilation time. There is an overview of the key passes in the paper, along with a description of how we handled things...

If you guys are interested, you can find the paper on my website (http://www.elis.ugent.be/~kehoste ), and I'll be happy to provide more info if needed, just shout. Or come and see my talk at CGO in April ;-)

Kenneth

--

Computer Science is no more about computers than astronomy is about telescopes. (E. W. Dijkstra)

Kenneth Hoste
ELIS - Ghent University
email: [EMAIL PROTECTED]
blog: http://www.elis.ugent.be/~kehoste/blog
website: http://www.elis.ugent.be/~kehoste

Reply via email to