http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45834
--- Comment #2 from richard.guenther at gmail dot com <richard.guenther at gmail dot com> 2010-10-18 11:38:03 UTC --- On Mon, Oct 18, 2010 at 1:33 PM, bmei at broadcom dot com <gcc-bugzi...@gcc.gnu.org> wrote: > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45834 > > Bingfeng Mei <bmei at broadcom dot com> changed: > > What |Removed |Added > ---------------------------------------------------------------------------- > CC| |richard.guenther at gmail > | |dot com > > --- Comment #1 from Bingfeng Mei <bmei at broadcom dot com> 2010-10-18 > 11:33:23 UTC --- > Before using rtx_refs_may_alias_p in may_alias_p, following statement is > executed. > > > /* We cannot use aliases_everything_p to test MEM, since we must look > at MEM_ADDR, rather than XEXP (mem, 0). */ > if (GET_MODE (mem) == QImode || GET_CODE (mem_addr) == AND) > return 1; > > Basically, it means that the memory access of a QImode always aliases > everything else. That explains why char data type doesn't work here. The code > in may_alias_p is mostly copied from true_dependence_1. The comment is not > very > clear to me. Richard, could you cast a light on this? Why do we need to treat > QImode differently? I think it tries to work around bugs (it looks like char accesses or maybe memcpy/string inline expansion). You can try searching the history for this code, but I wouldn't be surprised if it pre-dates the use of even CVS ;) Richard. > -- > Configure bugmail: http://gcc.gnu.org/bugzilla/userprefs.cgi?tab=email > ------- You are receiving this mail because: ------- > You are on the CC list for the bug. >