public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug middle-end/102075] New: fill_always_executed_in_1 incomplete computation
@ 2021-08-26  9:29 luoxhu at gcc dot gnu.org
  2021-08-26 14:18 ` [Bug tree-optimization/102075] " rguenth at gcc dot gnu.org
  2021-09-14  1:20 ` luoxhu at gcc dot gnu.org
  0 siblings, 2 replies; 3+ messages in thread
From: luoxhu at gcc dot gnu.org @ 2021-08-26  9:29 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 102075
           Summary: fill_always_executed_in_1 incomplete computation
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
          Assignee: unassigned at gcc dot gnu.org
          Reporter: luoxhu at gcc dot gnu.org
  Target Milestone: ---

ALWAYS_EXECUTED_IN is not computed completely for nested loops.  Current design
will exit if an inner loop doesn't dominate outer loop's latch or exit after
exiting from inner loop, which caused early return from outer loop, then ALWAYS
EXECUTED blocks after inner loops are skipped.

For example, x->k should be move out of outer loop but doesn't.

struct X { int i; int j; int k;};

void foo(struct X *x, int n, int l)
{
  for (int j = 0; j < l; j++)
    {
      for (int i = 0; i < n; ++i)
        {
          int *p = &x->j;
          int tem = *p;
          x->j += tem * i;
        }
      int *r = &x->k;
      int tem2 = *r;
      x->k += tem2 * j;
    }
}


Discussion lists:

https://gcc.gnu.org/pipermail/gcc-patches/2021-August/577444.html

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Bug tree-optimization/102075] fill_always_executed_in_1 incomplete computation
  2021-08-26  9:29 [Bug middle-end/102075] New: fill_always_executed_in_1 incomplete computation luoxhu at gcc dot gnu.org
@ 2021-08-26 14:18 ` rguenth at gcc dot gnu.org
  2021-09-14  1:20 ` luoxhu at gcc dot gnu.org
  1 sibling, 0 replies; 3+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-08-26 14:18 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|middle-end                  |tree-optimization
             Status|UNCONFIRMED                 |NEW
           Keywords|                            |missed-optimization
   Last reconfirmed|                            |2021-08-26
     Ever confirmed|0                           |1

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Bug tree-optimization/102075] fill_always_executed_in_1 incomplete computation
  2021-08-26  9:29 [Bug middle-end/102075] New: fill_always_executed_in_1 incomplete computation luoxhu at gcc dot gnu.org
  2021-08-26 14:18 ` [Bug tree-optimization/102075] " rguenth at gcc dot gnu.org
@ 2021-09-14  1:20 ` luoxhu at gcc dot gnu.org
  1 sibling, 0 replies; 3+ messages in thread
From: luoxhu at gcc dot gnu.org @ 2021-09-14  1:20 UTC (permalink / raw)
  To: gcc-bugs

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

luoxhu at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #1 from luoxhu at gcc dot gnu.org ---
Fixed by Richard’s r12-3313,  r12-3429 and r12-3430.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-09-14  1:20 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-26  9:29 [Bug middle-end/102075] New: fill_always_executed_in_1 incomplete computation luoxhu at gcc dot gnu.org
2021-08-26 14:18 ` [Bug tree-optimization/102075] " rguenth at gcc dot gnu.org
2021-09-14  1:20 ` luoxhu at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).