--- Comment #2 from mattst88 at gmail dot com 2010-05-13 21:40 ---
(In reply to comment #1)
What do you mean by bad? If the code isn't correct, wrong is better
suited; if it is suboptimal, poor is better suited.
If the latter, it's expected that -O1 generates poorer code than
--- Comment #3 from pinskia at gcc dot gnu dot org 2010-05-13 21:43 ---
(In reply to comment #2)
Yes, poor is a better word.
And by poor, I mean that gcc produces many superfluous loads and stores and
even a branch.
Yes -O1 is by design produces extra loads/stores in some cases.
--- Comment #4 from rth at gcc dot gnu dot org 2010-05-13 22:41 ---
The only thing wrong with the code from -O1 is that it didn't inline __ffs.
Since that function isn't explicitly marked inline, I don't see anything wrong
with that decision.
Given that adding static inline to the