This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: empty loop elimination (lack of) ?



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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]