https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126008

--- Comment #9 from Richard Biener <rguenth at gcc dot gnu.org> ---
I'll note that the alternative attempt to fix PR125730, which was a simpler
move of the iv->base_object = determine_base_object (data, base); computation
before the affine combination round-trip did not work.

I'll also note that of course the "fix" was highly incomplete, IMO tree-affine
and how it's used by IVOPTs is a bit of a mess.  determine_base_object is
much like the old RTL find_base_term, arbitrarily walking into integer
computations, etc.

That said, for what tree-affine does in tree_to_aff_combination, namely
strip all nop converts (including sign conversions), means that
aff_combination_to_tree would need to spit out unsigned computations for
everything since tree-affine re-associates at will.  But this is in
contrast to IVOPTs also wanting to determine valid base objects to chose
as base for a MEM.

I believe pointer support in tree-affine is an afterthought, not properly
implemented -- there's no explicit field for the pointer base, one thing
I tried to recover with that partial "fix".

Reply via email to