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