This is the mail archive of the
mailing list for the GCC project.
Re: Compiler Analysis: 3.3, 3.4, or tree-ssa?
- From: Scott Robert Ladd <coyote at coyotegulch dot com>
- To: Matthew Fago <fago at its dot caltech dot edu>
- Cc: gcc at gcc dot gnu dot org
- Date: Fri, 17 Oct 2003 20:51:03 -0400
- Subject: Re: Compiler Analysis: 3.3, 3.4, or tree-ssa?
- References: <Pine.GSO.4.58.0310170947190.20025@clyde>
Matthew Fago wrote:
However, its application to optimize (on "average") the default -O? flags
is much more generally beneficial. I would also love to use it in my
upcoming work on the "-farch-auto" flag.
This latter class of work requires a standard set of representative code.
Does such a collection already exist?
I do not think a "representative" code base exists, nor do I believe
such a beast *can* exist. Programming styles, languages, and
applications differ too much to define an "average" program. If
anything, Acovea is proving that point; I'm finding that two
similar-seeming programs can have very different optimization requirements.
The -O1, -O2, and -O3 options are general-purpose choices for producing
good code in general circumstances. Acovea is, in its current form, a
tool for refinement.
I'm using profiling to identify performance-critical code, then applying
Acovea to find the options that produce the fastest code for that
target. I'm thinking of this as another form of unit testing.
A future version will examine the way options affect accuracy, assuming
I can ever settle on an accuracy benchmark. I might look into compile
speed, too, as a tool for analyzing gcc's performance.
I'm still deciding which benchmarks to use for the initial release and
paper. Assuming all the ducks quack this weekend, I'll have them in a
row for publication early next week. Then everyone can kibbitz what I've
... although I may learn what it feels like to be nibbled to death by ducks.
..Scott (who's had far too little sleep and much too much caffiene)
Scott Robert Ladd
Coyote Gulch Productions (http://www.coyotegulch.com)
Software Invention for High-Performance Computing