------- Comment #6 from matz at gcc dot gnu dot org  2010-02-04 15:03 -------
Re comment #4, there are two possibilities to fix this:
1) as you say, don't regard MEM addresses (i.e. used in double indirection)
   as const_or_frame_p, because that would put different (but runtime-same)
   bases into different groups, or
2) fix this marvel in check_mem_read_rtx:
     if (group_id == store_info->group_id)
       ...
     /* else
        The else case that is missing here is that the
        bases are constant but different.  There is nothing
        to do here because there is no overlap.  */

Clearly the comment is wrong, base addresses can be constant, different for
rtx_equal purposes, but still be the same at runtime.

When going the (2) way we would need to ask the oracle, which most of the time
would probably say "don't know" anyway, and be slow.  Hence not regarding
such base addresses as interesting for the global problem seems to be the
better fix.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42952

Reply via email to