empty loop elimination (lack of) ?

Cyrille Chepelov cyrille@chepelov.org
Sun Feb 10 12:26:00 GMT 2002


> 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 ?

	-- Cyrille

-- 
Grumpf.



More information about the Gcc mailing list