------- Comment #9 from rakdver at gcc dot gnu dot org 2006-02-17 19:54 -------
SFT for D.2477.a is SFT.12. Before vectorizer is run, SFT.12 has is_alias_tag
== false and may_aliases = {TMT.32}; thus, we would only add a vuse for TMT.32
to the statement, and this is subsumed by the VDEF.
Vectorizer calls new_type_alias for D.2477. This causes SFT.12 to be added to
the alias set of this new tag, and SFT.12->is_alias_tag is set to true (by
add_may_alias). This however means that since that moment on,
add_virtual_operand will be also adding vuses for SFT.12; i.e., although we
haven't touched the statement at all, its virtual operands will change.
I haven't any idea how this might be fixed (the more I learn about the way
alias info translates to virtual operands, the less I understand it :-( ). I am
CCing someone who might know.
--
rakdver at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |dberlin at gcc dot gnu dot
| |org, dnovillo at gcc dot gnu
| |dot org
AssignedTo|rakdver at gcc dot gnu dot |unassigned at gcc dot gnu
|org |dot org
Status|ASSIGNED |NEW
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26197