------- Comment #4 from steven at gcc dot gnu dot org 2005-11-13 16:17 ------- What happens here is just copy propagation by DOM and VRP for "conditional copies", e.g. with "if (a==b) ..." we can record b as a copy of a, or a as a copy of b. In this case, copy propagation just happens to make IV analysis hard (or impossible).
Now, this sounds bad. But does this code really happen often enough in real world code to justify spending hours on figuring out how to fix this? Zdenek, where does your example come from? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23821