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

--- Comment #11 from Aldy Hernandez <aldyh at gcc dot gnu.org> ---
Just to clarify.  prange as well as irange keep a value/mask pair where we can
store alignment info, so every calculation (range-op) along the way can track
this properly.

Now, for pointers we loose this information across passes because of the union
in SSA_NAME_RANGE_INFO (struct tree_ssa_name) which keeps the range info in an
ptr_info_def, not a proper vrange_storage.  It's in my long term TODO list to
propose we properly track pointer ranges once prange comes live.

Note that IPA keeps alignment info on the side, so part of this info is kept
across passes.  But I assume they're doing this, because originally ranges
didn't have alignment (value/mask) info associated with them.

Reply via email to