This is the mail archive of the
mailing list for the GCC project.
Re: empty loop elimination (lack of) ?
- From: Cyrille Chepelov <cyrille at chepelov dot org>
- To: gcc at gcc dot gnu dot org
- Date: Sun, 10 Feb 2002 21:22:53 +0100
- Subject: Re: empty loop elimination (lack of) ?
- References: <20020128210317.GA13439@calixo.net> <88AEA72F-1435-11D6-AA16firstname.lastname@example.org>
> I did not see the results you got.
> I even don't get a List<int>::isValid() const
OK, it took me some time to investigate, and even more to report something
meaningful out of the brute force results I've produced.
At first, I noticed that you had -funroll-loops in your command line; I had
mentioned that -funroll-loops gives the result I'm looking for (elimination
of the loop and inlinage of the resulting function), but I don't always want
to unroll loops, merely eliminating empty loops would be enough for me.
So, I tried a brute force solution: I've tried all combinations of 1, 2, 3,
4 and 5 arguments picked in the whole list of arguments in your command
line, in addition to -O3 -Wall. The results are at
http://www.chepelov.org/cyrille/loop-destroy/ (warning, lots of .s files)
matches.log contains all the "good" command lines
It looks like the following arguments are winners (they appear in every line
in the previously mentioned matches.log file):
--param max-inline-insns=10000 -save-temps
Would that be sane defaults for, say, -O3, or do these arguments carry
unwanted behaviour ?