http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48702
--- Comment #17 from rakdver at kam dot mff.cuni.cz <rakdver at kam dot mff.cuni.cz> 2011-05-17 20:18:39 UTC --- > This is not really heuristic -- it prevents compiler from generating code in > ivopt that violates the aliasing assumption. no, it does not. For example, you only consider the case whent the base of the memory reference is addr_expr, and when the step is negative. However, ivopts may generate "pointers" outside of the memory objects in other cases as well; and if those get used in mem_refs (where the computations are currently interpreted according to the pointer arithmetics rules, for the purpose of alias analysis), this leads to misscompilations.