This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/26197] [4.2 regression] ICE in is_old_name, at tree-into-ssa.c:466
- From: "law at redhat dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 10 Feb 2006 20:24:36 -0000
- Subject: [Bug tree-optimization/26197] [4.2 regression] ICE in is_old_name, at tree-into-ssa.c:466
- References: <bug-26197-1771@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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