------- Comment #5 from pinskia at gcc dot gnu dot org  2006-09-01 05:14 -------
For 4.1, we get:
i_1: VARYING
size_2: VARYING
size_3: [size_2, size_2]  EQUIVALENCES: { size_2 } (1 elements)
i_4: [0, +INF]  EQUIVALENCES: { i_1 i_7 i_8 i_9 } (4 elements)
n_5: [0, size_2 - 1]  EQUIVALENCES: { i_1 i_9 } (2 elements)
i_6: [1, +INF]  EQUIVALENCES: { } (0 elements)
i_7: [0, +INF]  EQUIVALENCES: { i_1 i_8 i_9 } (3 elements)
i_8: ~[0, 0]  EQUIVALENCES: { i_1 i_9 } (2 elements)
i_9: [0, size_2 - 1]  EQUIVALENCES: { i_1 } (1 elements)

While on the mainline, we get:
i_1: VARYING
size_2: VARYING
size_3: [size_2, size_2]  EQUIVALENCES: { size_2 } (1 elements)
n_5: [0, size_2 - 1]  EQUIVALENCES: { i_1 i_9 } (2 elements)
i_6: ~[0, 0]  EQUIVALENCES: { } (0 elements)
i_7: [-INF, -1]  EQUIVALENCES: { i_8 i_9 } (2 elements)
i_8: ~[0, 0]  EQUIVALENCES: { i_9 } (1 elements)
i_9: [0, size_2 - 1]  EQUIVALENCES: { i_1 } (1 elements)


Note the missing of i_4, yes it is there in the IR too really so maybe this is
a VRP problem.  I have not looked at the dump before the patch to make sure it
was the same.

Anyways the ICE is because i_7 and i_7 are not equivalant as detected by VRP,
though I say it is.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28905

Reply via email to