------- Comment #5 from rakdver at gcc dot gnu dot org 2008-01-21 17:35 ------- (In reply to comment #3) > > This is a vectorizer vs not being able to run may_alias after it > > can you please remind me why we can't run may_alias after the vectorizer? (and > what do you think can be done about it?)
As for this ICE: may_alias rebuilds the smt's, and finds that the smt for the pointers created by vectorizer should be different (based on their type, not the artificial ones created by vectorizer). If we removed the hacks to update the alias info from vectorizer and run may_alias instead, we might get type-based alias analysis related misscompilations, as we create code of form vector_type *p = &object_of_arbitrary_type; *p = something; And TBA might decide that references through vector_type and arbitrary_type cannot alias. I actually tried this some time ago, and I was not able to get misscompilations this way (I am not really sure why). However, I got many fails in the testsuite (that I did not have time to investigate), so there may be some other problems with alias analysis after vectorizer. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34330