------- 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

Reply via email to