public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/97627] New: loop end condition missing - endless loop
@ 2020-10-29 11:32 marcin.jachu19 at gmail dot com
  2020-10-29 12:19 ` [Bug c++/97627] [9/10/11 Regression] loop end condition missing - endless loop with -fPIC rguenth at gcc dot gnu.org
                   ` (17 more replies)
  0 siblings, 18 replies; 19+ messages in thread
From: marcin.jachu19 at gmail dot com @ 2020-10-29 11:32 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 97627
           Summary: loop end condition missing - endless loop
           Product: gcc
           Version: 9.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: marcin.jachu19 at gmail dot com
  Target Milestone: ---

Created attachment 49467
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49467&action=edit
cpp source file

It seems a loop end condition is missing in this example. Observed on gcc 9.x
and 10.x (all versions). 
This example may look as not much sense, but it is extracted from bigger system
to just explore the issue.

GCC version (in practice any 9.x and 10.x):
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-9.2.0/configure --enable-languages=c,c++
--enable-multilib
Thread model: posix
gcc version 9.2.0 (GCC)
GNU C++17 (GCC) version 9.2.0 (x86_64-pc-linux-gnu)
        compiled by GNU C version 9.2.0, GMP version 4.3.1, MPFR version 2.4.1,
MPC version 0.8, isl version none

System type (doesn't matter, any Linux, for this example used):
centos-release-7-7.1908.0.el7.centos.x86_64

GCC compilation options:
../gcc-9.2.0/configure --enable-languages=c,c++ --enable-multilib

Test compilation options:
g++ -Wall -Wextra -fPIC -O2 -std=c++17 -o test test.cpp

Compiler output:
(none)

Source files attached, the problematic loop:

for (int h = 0; h < num_of_repeats_h; h++)
{
    for (int w = 0; w < num_of_repeats_w; w++)
    {
        printf("w: %d, num_of_repeats_w: %d\n", w, num_of_repeats_w);
    }
}

Expected behavior:
test enters to the inter loop only once, printing counter always equal 0 like:
w: 0, num_of_repeats_w: 1

Actual behavior:
the internal loop never ends, the counter reaches high numbers like:
w: 22373, num_of_repeats_w: 1

Command line
./test
Ctrl+c

More comments:
- gcc 8.x works OK on this example
- it's worth to mention, that -fwrapv option makes it working fine, but I
believe the issue just hides.
- also the -O1 option makes the difference.
- also the -fsanitize=undefined option makes the difference like:
<unknown>: runtime error: execution reached an unreachable program point
but I still believe the source code is correct and the gcc causes the issue.

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

* [Bug c++/97627] [9/10/11 Regression] loop end condition missing - endless loop with -fPIC
  2020-10-29 11:32 [Bug c++/97627] New: loop end condition missing - endless loop marcin.jachu19 at gmail dot com
@ 2020-10-29 12:19 ` rguenth at gcc dot gnu.org
  2020-10-29 12:21 ` jakub at gcc dot gnu.org
                   ` (16 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: rguenth at gcc dot gnu.org @ 2020-10-29 12:19 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|loop end condition missing  |[9/10/11 Regression] loop
                   |- endless loop              |end condition missing -
                   |                            |endless loop with -fPIC
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2020-10-29
      Known to fail|                            |10.1.0, 10.2.0, 9.1.0
      Known to work|                            |8.4.0
           Keywords|                            |wrong-code
             Status|UNCONFIRMED                 |NEW
   Target Milestone|---                         |9.4

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed with GCC 10, triggers with -fPIC, works with plain -O2.  Odd.

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

* [Bug c++/97627] [9/10/11 Regression] loop end condition missing - endless loop with -fPIC
  2020-10-29 11:32 [Bug c++/97627] New: loop end condition missing - endless loop marcin.jachu19 at gmail dot com
  2020-10-29 12:19 ` [Bug c++/97627] [9/10/11 Regression] loop end condition missing - endless loop with -fPIC rguenth at gcc dot gnu.org
@ 2020-10-29 12:21 ` jakub at gcc dot gnu.org
  2020-10-29 12:26 ` jakub at gcc dot gnu.org
                   ` (15 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: jakub at gcc dot gnu.org @ 2020-10-29 12:21 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Doesn't reproduce on the trunk since
r11-3300-g83e037364e0d6dd74d595751e8bc8c461b4cb8fa
Adjusted testcase so that it doesn't loop forever when not miscompiled and
doesn't need -fPIC either:

struct S { unsigned short x, y; } m = { 1, 0 };

__attribute__((noipa)) void
bar ()
{
  throw 1;
}

void
foo ()
{
  while (1)
    {
      int a = m.x + 1;
      int b = m.y + 1;
      for (int h = 0; h < a; h++)
        for (int w = 0; w < b; w++)
          __builtin_printf ("w: %d, b: %d\n", w, b);
      bar ();
    }
}

int
main ()
{
  try
    {
      foo ();
    }
  catch (int)
    {
    }
  return 0;
}

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

* [Bug c++/97627] [9/10/11 Regression] loop end condition missing - endless loop with -fPIC
  2020-10-29 11:32 [Bug c++/97627] New: loop end condition missing - endless loop marcin.jachu19 at gmail dot com
  2020-10-29 12:19 ` [Bug c++/97627] [9/10/11 Regression] loop end condition missing - endless loop with -fPIC rguenth at gcc dot gnu.org
  2020-10-29 12:21 ` jakub at gcc dot gnu.org
@ 2020-10-29 12:26 ` jakub at gcc dot gnu.org
  2020-10-29 12:32 ` jakub at gcc dot gnu.org
                   ` (14 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: jakub at gcc dot gnu.org @ 2020-10-29 12:26 UTC (permalink / raw)
  To: gcc-bugs

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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Started with r9-4145-ga81e2c6240655f60a49c16e0d8bbfd2ba40bba51

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

* [Bug c++/97627] [9/10/11 Regression] loop end condition missing - endless loop with -fPIC
  2020-10-29 11:32 [Bug c++/97627] New: loop end condition missing - endless loop marcin.jachu19 at gmail dot com
                   ` (2 preceding siblings ...)
  2020-10-29 12:26 ` jakub at gcc dot gnu.org
@ 2020-10-29 12:32 ` jakub at gcc dot gnu.org
  2020-10-29 12:56 ` amker at gcc dot gnu.org
                   ` (13 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: jakub at gcc dot gnu.org @ 2020-10-29 12:32 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Further adjustment so that it just aborts when miscompiled.  The throw is there
only to avoid using __builtin_exit.

struct S { unsigned short x, y; } m = { 1, 0 };

__attribute__((noipa)) void
baz (int x, int y)
{
  if (x != 0 || y != 1)
    __builtin_abort ();
}

__attribute__((noipa)) void
bar ()
{
  throw 1;
}

void
foo ()
{
  while (1)
    {
      int a = m.x + 1;
      int b = m.y + 1;
      for (int c = 0; c < a; c++)
        for (int d = 0; d < b; d++)
          baz (d, b);
      bar ();
    }
}

int
main ()
{
  try
    {
      foo ();
    }
  catch (int)
    {
    }
  return 0;
}

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

* [Bug c++/97627] [9/10/11 Regression] loop end condition missing - endless loop with -fPIC
  2020-10-29 11:32 [Bug c++/97627] New: loop end condition missing - endless loop marcin.jachu19 at gmail dot com
                   ` (3 preceding siblings ...)
  2020-10-29 12:32 ` jakub at gcc dot gnu.org
@ 2020-10-29 12:56 ` amker at gcc dot gnu.org
  2020-10-30 11:29 ` rguenth at gcc dot gnu.org
                   ` (12 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: amker at gcc dot gnu.org @ 2020-10-29 12:56 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #5 from bin cheng <amker at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #3)
> Started with r9-4145-ga81e2c6240655f60a49c16e0d8bbfd2ba40bba51

Sorry for the breakage.  Will fix this.

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

* [Bug c++/97627] [9/10/11 Regression] loop end condition missing - endless loop with -fPIC
  2020-10-29 11:32 [Bug c++/97627] New: loop end condition missing - endless loop marcin.jachu19 at gmail dot com
                   ` (4 preceding siblings ...)
  2020-10-29 12:56 ` amker at gcc dot gnu.org
@ 2020-10-30 11:29 ` rguenth at gcc dot gnu.org
  2020-11-03 13:14 ` rguenth at gcc dot gnu.org
                   ` (11 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: rguenth at gcc dot gnu.org @ 2020-10-30 11:29 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P2

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

* [Bug c++/97627] [9/10/11 Regression] loop end condition missing - endless loop with -fPIC
  2020-10-29 11:32 [Bug c++/97627] New: loop end condition missing - endless loop marcin.jachu19 at gmail dot com
                   ` (5 preceding siblings ...)
  2020-10-30 11:29 ` rguenth at gcc dot gnu.org
@ 2020-11-03 13:14 ` rguenth at gcc dot gnu.org
  2020-11-03 13:15 ` rguenth at gcc dot gnu.org
                   ` (10 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: rguenth at gcc dot gnu.org @ 2020-11-03 13:14 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> ---
*** Bug 97697 has been marked as a duplicate of this bug. ***

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

* [Bug c++/97627] [9/10/11 Regression] loop end condition missing - endless loop with -fPIC
  2020-10-29 11:32 [Bug c++/97627] New: loop end condition missing - endless loop marcin.jachu19 at gmail dot com
                   ` (6 preceding siblings ...)
  2020-11-03 13:14 ` rguenth at gcc dot gnu.org
@ 2020-11-03 13:15 ` rguenth at gcc dot gnu.org
  2021-01-21 12:07 ` jakub at gcc dot gnu.org
                   ` (9 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: rguenth at gcc dot gnu.org @ 2020-11-03 13:15 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
Smaller testcase from other PR, still needs the C++ FE

struct S { unsigned short x, y; } m = { 0, 0 };
void __attribute__((noipa)) bar() {}
void __attribute__((noipa)) baz()
{
  __builtin_exit (0);
}
void foo()
{
  while (1)
    { 
      unsigned int nrn_pass_num = m.x + 1;
      for (unsigned int nrn_idx = 0; nrn_idx < nrn_pass_num; ++nrn_idx)
        bar();
      baz();
    }
}
int main()
{
  foo();
  return 0;
}

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

* [Bug c++/97627] [9/10/11 Regression] loop end condition missing - endless loop with -fPIC
  2020-10-29 11:32 [Bug c++/97627] New: loop end condition missing - endless loop marcin.jachu19 at gmail dot com
                   ` (7 preceding siblings ...)
  2020-11-03 13:15 ` rguenth at gcc dot gnu.org
@ 2021-01-21 12:07 ` jakub at gcc dot gnu.org
  2021-01-21 12:24 ` amker at gcc dot gnu.org
                   ` (8 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-01-21 12:07 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Still broken on current 10 branch, as written works fine on the trunk due to
the C++ FE loop changes.
Bin, did you have time to look into this yet?

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

* [Bug c++/97627] [9/10/11 Regression] loop end condition missing - endless loop with -fPIC
  2020-10-29 11:32 [Bug c++/97627] New: loop end condition missing - endless loop marcin.jachu19 at gmail dot com
                   ` (8 preceding siblings ...)
  2021-01-21 12:07 ` jakub at gcc dot gnu.org
@ 2021-01-21 12:24 ` amker at gcc dot gnu.org
  2021-01-25 11:19 ` amker at gcc dot gnu.org
                   ` (7 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: amker at gcc dot gnu.org @ 2021-01-21 12:24 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #9 from bin cheng <amker at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #8)
> Still broken on current 10 branch, as written works fine on the trunk due to
> the C++ FE loop changes.
> Bin, did you have time to look into this yet?

I am very sorry, seems I have two correctness PRs now? Will try to investigate
these on this WE.

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

* [Bug c++/97627] [9/10/11 Regression] loop end condition missing - endless loop with -fPIC
  2020-10-29 11:32 [Bug c++/97627] New: loop end condition missing - endless loop marcin.jachu19 at gmail dot com
                   ` (9 preceding siblings ...)
  2021-01-21 12:24 ` amker at gcc dot gnu.org
@ 2021-01-25 11:19 ` amker at gcc dot gnu.org
  2021-01-25 11:29 ` amker at gcc dot gnu.org
                   ` (6 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: amker at gcc dot gnu.org @ 2021-01-25 11:19 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #10 from bin cheng <amker at gcc dot gnu.org> ---
hmm,
For below basic block:
128 ;;   basic block 4, loop depth 2, maybe hot
129 ;;    prev block 3, next block 9, flags: (NEW, VISITED)
130 ;;    pred:       3 (FALLTHRU,EXECUTABLE)
131 ;;                7 (FALLTHRU,DFS_BACK,EXECUTABLE)
132   # RANGE [0, 2147483647] NONZERO 2147483647
133   # c_5 = PHI <0(3), c_17(7)>
134   # .MEM_8 = PHI <.MEM_7(3), .MEM_9(7)>
135   if (_2 < c_5)
136     goto <bb 8>; [INV]
137   else
138     goto <bb 9>; [INV]
139 ;;    succ:       8 (TRUE_VALUE,EXECUTABLE)
140 ;;                9 (FALSE_VALUE,EXECUTABLE)

Code in :
4276 
4277   basic_block *body = get_loop_body (loop);
4278   exits = get_loop_exit_edges (loop, body);
4279   likely_exit = single_likely_exit (loop, exits);
4280   FOR_EACH_VEC_ELT (exits, i, ex)
4281     {
4282       if (ex == likely_exit)
4283         {
4284           gimple *stmt = last_stmt (ex->src);
4285           if (stmt != NULL)
4286             {

gets three exit edges, one of which is <bb4 -> bb1>, as a result, 0 niter is
computed for this exit in function number_of_iterations_exit_assumptions.  This
seems strange, is it a fake edge added for some reason?

Thanks

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

* [Bug c++/97627] [9/10/11 Regression] loop end condition missing - endless loop with -fPIC
  2020-10-29 11:32 [Bug c++/97627] New: loop end condition missing - endless loop marcin.jachu19 at gmail dot com
                   ` (10 preceding siblings ...)
  2021-01-25 11:19 ` amker at gcc dot gnu.org
@ 2021-01-25 11:29 ` amker at gcc dot gnu.org
  2021-01-25 11:32 ` amker at gcc dot gnu.org
                   ` (5 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: amker at gcc dot gnu.org @ 2021-01-25 11:29 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #11 from bin cheng <amker at gcc dot gnu.org> ---
(In reply to bin cheng from comment #10)
> hmm,
> For below basic block:
> 128 ;;   basic block 4, loop depth 2, maybe hot
> 129 ;;    prev block 3, next block 9, flags: (NEW, VISITED)
> 130 ;;    pred:       3 (FALLTHRU,EXECUTABLE)
> 131 ;;                7 (FALLTHRU,DFS_BACK,EXECUTABLE)
> 132   # RANGE [0, 2147483647] NONZERO 2147483647
> 133   # c_5 = PHI <0(3), c_17(7)>
> 134   # .MEM_8 = PHI <.MEM_7(3), .MEM_9(7)>
> 135   if (_2 < c_5)
> 136     goto <bb 8>; [INV]
> 137   else
> 138     goto <bb 9>; [INV]
> 139 ;;    succ:       8 (TRUE_VALUE,EXECUTABLE)
> 140 ;;                9 (FALSE_VALUE,EXECUTABLE)
> 
> Code in :
> 4276 
> 4277   basic_block *body = get_loop_body (loop);
> 4278   exits = get_loop_exit_edges (loop, body);
> 4279   likely_exit = single_likely_exit (loop, exits);
> 4280   FOR_EACH_VEC_ELT (exits, i, ex)
> 4281     {
> 4282       if (ex == likely_exit)
> 4283         {
> 4284           gimple *stmt = last_stmt (ex->src);
> 4285           if (stmt != NULL)
> 4286             {
> 
> gets three exit edges, one of which is <bb4 -> bb1>, as a result, 0 niter is
> computed for this exit in function number_of_iterations_exit_assumptions. 
> This seems strange, is it a fake edge added for some reason?
> 
> Thanks

Right, it's added by connect_infinite_loops_to_exit.

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

* [Bug c++/97627] [9/10/11 Regression] loop end condition missing - endless loop with -fPIC
  2020-10-29 11:32 [Bug c++/97627] New: loop end condition missing - endless loop marcin.jachu19 at gmail dot com
                   ` (11 preceding siblings ...)
  2021-01-25 11:29 ` amker at gcc dot gnu.org
@ 2021-01-25 11:32 ` amker at gcc dot gnu.org
  2021-01-29 11:01 ` [Bug tree-optimization/97627] " cvs-commit at gcc dot gnu.org
                   ` (4 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: amker at gcc dot gnu.org @ 2021-01-25 11:32 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #12 from bin cheng <amker at gcc dot gnu.org> ---
a. why the loop is considered as infinite
b. we need to skip fake exit edges in niter analysis?

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

* [Bug tree-optimization/97627] [9/10/11 Regression] loop end condition missing - endless loop with -fPIC
  2020-10-29 11:32 [Bug c++/97627] New: loop end condition missing - endless loop marcin.jachu19 at gmail dot com
                   ` (12 preceding siblings ...)
  2021-01-25 11:32 ` amker at gcc dot gnu.org
@ 2021-01-29 11:01 ` cvs-commit at gcc dot gnu.org
  2021-01-29 11:08 ` [Bug tree-optimization/97627] [9 " rguenth at gcc dot gnu.org
                   ` (3 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-01-29 11:01 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #13 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-10 branch has been updated by Richard Biener
<rguenth@gcc.gnu.org>:

https://gcc.gnu.org/g:3976b2701b826569ffcd90877d94095def507e3f

commit r10-9310-g3976b2701b826569ffcd90877d94095def507e3f
Author: Richard Biener <rguenther@suse.de>
Date:   Fri Jan 29 11:17:42 2021 +0100

    tree-optimization/97627 - Avoid computing niters for fake edges

    This avoids computing niters information for fake edges.

    2021-01-29  Bin Cheng  <bin.cheng@linux.alibaba.com>
                Richard Biener  <rguenther@suse.de>

            PR tree-optimization/97627
            * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
            Do not analyze fake edges.

            * g++.dg/pr97627.C: New testcase.

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

* [Bug tree-optimization/97627] [9 Regression] loop end condition missing - endless loop with -fPIC
  2020-10-29 11:32 [Bug c++/97627] New: loop end condition missing - endless loop marcin.jachu19 at gmail dot com
                   ` (13 preceding siblings ...)
  2021-01-29 11:01 ` [Bug tree-optimization/97627] " cvs-commit at gcc dot gnu.org
@ 2021-01-29 11:08 ` rguenth at gcc dot gnu.org
  2021-01-29 11:09 ` cvs-commit at gcc dot gnu.org
                   ` (2 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-01-29 11:08 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|amker at gcc dot gnu.org           |rguenth at gcc dot gnu.org
            Summary|[9/10/11 Regression] loop   |[9 Regression] loop end
                   |end condition missing -     |condition missing - endless
                   |endless loop with -fPIC     |loop with -fPIC
      Known to work|                            |10.2.1, 11.0
             Status|NEW                         |ASSIGNED

--- Comment #14 from Richard Biener <rguenth at gcc dot gnu.org> ---
Mine for the last backport.

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

* [Bug tree-optimization/97627] [9 Regression] loop end condition missing - endless loop with -fPIC
  2020-10-29 11:32 [Bug c++/97627] New: loop end condition missing - endless loop marcin.jachu19 at gmail dot com
                   ` (14 preceding siblings ...)
  2021-01-29 11:08 ` [Bug tree-optimization/97627] [9 " rguenth at gcc dot gnu.org
@ 2021-01-29 11:09 ` cvs-commit at gcc dot gnu.org
  2021-01-29 11:51 ` cvs-commit at gcc dot gnu.org
  2021-01-29 11:51 ` rguenth at gcc dot gnu.org
  17 siblings, 0 replies; 19+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-01-29 11:09 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #15 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Richard Biener <rguenth@gcc.gnu.org>:

https://gcc.gnu.org/g:f4e426f7bd7df279cb7aaecd91d273d9b7db338d

commit r11-6972-gf4e426f7bd7df279cb7aaecd91d273d9b7db338d
Author: Richard Biener <rguenther@suse.de>
Date:   Fri Jan 29 11:17:42 2021 +0100

    tree-optimization/97627 - Avoid computing niters for fake edges

    This avoids computing niters information for fake edges.

    2021-01-29  Bin Cheng  <bin.cheng@linux.alibaba.com>
                Richard Biener  <rguenther@suse.de>

            PR tree-optimization/97627
            * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
            Do not analyze fake edges.

            * g++.dg/pr97627.C: New testcase.

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

* [Bug tree-optimization/97627] [9 Regression] loop end condition missing - endless loop with -fPIC
  2020-10-29 11:32 [Bug c++/97627] New: loop end condition missing - endless loop marcin.jachu19 at gmail dot com
                   ` (15 preceding siblings ...)
  2021-01-29 11:09 ` cvs-commit at gcc dot gnu.org
@ 2021-01-29 11:51 ` cvs-commit at gcc dot gnu.org
  2021-01-29 11:51 ` rguenth at gcc dot gnu.org
  17 siblings, 0 replies; 19+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-01-29 11:51 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #16 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-9 branch has been updated by Richard Biener
<rguenth@gcc.gnu.org>:

https://gcc.gnu.org/g:a7e6e7a9299208e5aa3d805d502370d59f92b8b5

commit r9-9211-ga7e6e7a9299208e5aa3d805d502370d59f92b8b5
Author: Richard Biener <rguenther@suse.de>
Date:   Fri Jan 29 11:17:42 2021 +0100

    tree-optimization/97627 - Avoid computing niters for fake edges

    This avoids computing niters information for fake edges.

    2021-01-29  Bin Cheng  <bin.cheng@linux.alibaba.com>
                Richard Biener  <rguenther@suse.de>

            PR tree-optimization/97627
            * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
            Do not analyze fake edges.

            * g++.dg/pr97627.C: New testcase.

    (cherry picked from commit 3976b2701b826569ffcd90877d94095def507e3f)

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

* [Bug tree-optimization/97627] [9 Regression] loop end condition missing - endless loop with -fPIC
  2020-10-29 11:32 [Bug c++/97627] New: loop end condition missing - endless loop marcin.jachu19 at gmail dot com
                   ` (16 preceding siblings ...)
  2021-01-29 11:51 ` cvs-commit at gcc dot gnu.org
@ 2021-01-29 11:51 ` rguenth at gcc dot gnu.org
  17 siblings, 0 replies; 19+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-01-29 11:51 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|ASSIGNED                    |RESOLVED
      Known to work|                            |9.3.1
      Known to fail|                            |9.3.0

--- Comment #17 from Richard Biener <rguenth at gcc dot gnu.org> ---
Fixed everywhere.

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

end of thread, other threads:[~2021-01-29 11:51 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-29 11:32 [Bug c++/97627] New: loop end condition missing - endless loop marcin.jachu19 at gmail dot com
2020-10-29 12:19 ` [Bug c++/97627] [9/10/11 Regression] loop end condition missing - endless loop with -fPIC rguenth at gcc dot gnu.org
2020-10-29 12:21 ` jakub at gcc dot gnu.org
2020-10-29 12:26 ` jakub at gcc dot gnu.org
2020-10-29 12:32 ` jakub at gcc dot gnu.org
2020-10-29 12:56 ` amker at gcc dot gnu.org
2020-10-30 11:29 ` rguenth at gcc dot gnu.org
2020-11-03 13:14 ` rguenth at gcc dot gnu.org
2020-11-03 13:15 ` rguenth at gcc dot gnu.org
2021-01-21 12:07 ` jakub at gcc dot gnu.org
2021-01-21 12:24 ` amker at gcc dot gnu.org
2021-01-25 11:19 ` amker at gcc dot gnu.org
2021-01-25 11:29 ` amker at gcc dot gnu.org
2021-01-25 11:32 ` amker at gcc dot gnu.org
2021-01-29 11:01 ` [Bug tree-optimization/97627] " cvs-commit at gcc dot gnu.org
2021-01-29 11:08 ` [Bug tree-optimization/97627] [9 " rguenth at gcc dot gnu.org
2021-01-29 11:09 ` cvs-commit at gcc dot gnu.org
2021-01-29 11:51 ` cvs-commit at gcc dot gnu.org
2021-01-29 11:51 ` rguenth 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).