------- Additional Comments From dberlin at gcc dot gnu dot org 2005-08-08 18:53 ------- (In reply to comment #1) > Confirmed, for some reason the following is caught though: because it's a fully redundant expression, that is available when we go to eliminate, as opposed to the original, which would require hoisting, and is *not* partially redundant.
> Hmm there is only one VH for the expression: As one would expect. This is not a missed optimization for PRE. PRE is not a generic hoister. In fact, in this case, it doesn't actually save anything but size to perform this "optimization". All it will do is make b live over the use of a, adding another register to allocate that has a conflict. I don't see this as a bug at all, except maybe at -Os. Even then, it's a a hoisting issue, using very busy expressions, not a PRE issue. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23286