This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c/45834] Redundant inter-loop edges in DDG


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?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]