------- Comment #4 from law at redhat dot com  2006-02-10 20:24 -------
This is a bug in the vectorizer and has absolutely nothing to do with PR26169.

The vectorizer is twiddling things such that the set of virtual operands
changes
for the statement in question.  ie, if you look at the statement before and
after the vectorizer runs it has the form:
#   TMT.32D.2670_172 = V_MAY_DEF <TMT.32D.2670_17>;
D.2524_41->a0D.2385 = D.2477.a0D.2385;

However, if you were to call update_stmt on the statement immediately after
the vectorizer is complete, then dumped the statement again, you'd have:
#   TMT.32D.2670_172 = V_MAY_DEF <TMT.32D.2670_17>;
#   VUSE <SFT.11D.2649>;
#   VUSE <SFT.12D.2650>;
D.2524_41->a0D.2385 = D.2477.a0D.2385;

That's a clear indication that this bug is actually in the vectorizer.  Not
VRP or the SSA updating code.

When a pass twiddles aliasing information such that the set of virtual operands
would change on a statement that is a bug if the statement is not properly
updated.

Jeff


-- 

law at redhat dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|law at gcc dot gnu dot org  |


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

Reply via email to