------- Comment #9 from steven at gcc dot gnu dot org 2010-02-13 11:28 ------- Re. comment #8: No other compiler, I have ever seen, allows constants as PHI args.
Single-argument PHIs should be propagated out. Do you see this in one of the loop passes, then it's OK because they are probably there for loop-closed SSA. Anywhere else, they should be propagated out. We even used to do this in a simple CFG cleanup. It looks like something broke this. With "inserting in the wrong place" I mean that insert the new "s = 0" in a different place from where it was originally (which was the optimal place to begin with). We have pessimized the original code. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42839