------- Comment #13 from rguenth at gcc dot gnu dot org 2009-01-16 22:51 ------- Btw, I am sure this is not a problem for loads, as only CFG exits from functions causes the bogus PRE and that always clobbers memory if it may call exit (pure and const functions may not). It may become a problem in future, but not now.
In future we may want to have an IPA pass computing wheter a function may possibly not return and use this information to pre-split BBs and insert exit edges before PRE as a better general solution. Maybe this is what other compilers do (the Intel compiler doesn't PRE the modulo in this testcase). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38819