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