------- Comment #14 from steven at gcc dot gnu dot org 2010-02-13 12:44 ------- Re. comment #12, if you mean the extra BB3, that one is not really "extra", it comes from loop header copying, and it easy to clean up. I assume ifcvt cleans this up?
Re. comment #12, yes that is expected, but most of those failures are easily solved. The bottom line IMHO is this: * propagating constants into PHI args sometimes exposes things, but it conceals more and does irreparable damage * not propagating means we have to work harder in a few places (following SSA_NAME_DEF_STMT in a few places) to avoid missing optimizations, but at least we never make the code worse than the original code (and aoliva would add that we get debug info right if we don't propagate...) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42839