public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug rtl-optimization/108508] New: [13 Regression] ICE in insert_def_after, at rtl-ssa/accesses.cc:622
@ 2023-01-24  4:38 asolokha at gmx dot com
  2023-01-24  9:20 ` [Bug rtl-optimization/108508] " rguenth at gcc dot gnu.org
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: asolokha at gmx dot com @ 2023-01-24  4:38 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 108508
           Summary: [13 Regression] ICE in insert_def_after, at
                    rtl-ssa/accesses.cc:622
           Product: gcc
           Version: 13.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: asolokha at gmx dot com
  Target Milestone: ---
            Target: aarch64-linux-gnu

gcc 13.0.1 20230122 snapshot (g:844eab81da3f49da88e8bb02e2b1255ba88d02b0) ICEs
when compiling the following testcase, reduced from
gcc/testsuite/gcc.target/aarch64/vldN_lane_1.c, w/ -O3
-fharden-conditional-branches -fno-dce -fno-guess-branch-probability:

#include <arm_neon.h>

int
test_vld3q_lane_f64 (void)
{
  float64x2x3_t vectors;
  float64_t temp[2];
  int i, j;

  for (i = 0; i < 3; i++)
  {
    vst1q_f64 (temp, vectors.val[i]);
    for (j = 0; j < 2; j++)
      if (temp[j])
        return 1;
  }

  return 0;
}

void
foo (void)
{
  if (test_vld3q_lane_f64 () || test_vld3q_lane_f64 ())
    __builtin_abort ();
}

% aarch64-linux-gnu-gcc-13 -O3 -fharden-conditional-branches -fno-dce
-fno-guess-branch-probability -c sajwlgxq.c
during RTL pass: fwprop1
sajwlgxq.c: In function 'foo':
sajwlgxq.c:26:1: internal compiler error: in insert_def_after, at
rtl-ssa/accesses.cc:622
   26 | }
      | ^
0x884123 rtl_ssa::function_info::insert_def_after(rtl_ssa::def_info*,
rtl_ssa::def_info*)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.1_p20230122/work/gcc-13-20230122/gcc/rtl-ssa/accesses.cc:622
0x1d86aa6 rtl_ssa::function_info::append_phi(rtl_ssa::ebb_info*,
rtl_ssa::phi_info*)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.1_p20230122/work/gcc-13-20230122/gcc/rtl-ssa/blocks.cc:383
0x1d86aa6 rtl_ssa::function_info::create_phi(rtl_ssa::ebb_info*,
rtl_ssa::resource_info, rtl_ssa::access_info**, unsigned int)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.1_p20230122/work/gcc-13-20230122/gcc/rtl-ssa/blocks.cc:507
0x1d86c70 rtl_ssa::function_info::create_degenerate_phi(rtl_ssa::ebb_info*,
rtl_ssa::set_info*)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.1_p20230122/work/gcc-13-20230122/gcc/rtl-ssa/blocks.cc:529
0x1cb5e20 rtl_ssa::function_info::finalize_new_accesses(rtl_ssa::insn_change&)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.1_p20230122/work/gcc-13-20230122/gcc/rtl-ssa/changes.cc:508
0x1cb658a
rtl_ssa::function_info::change_insns(array_slice<rtl_ssa::insn_change*>)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.1_p20230122/work/gcc-13-20230122/gcc/rtl-ssa/changes.cc:659
0x1cb6cf4 rtl_ssa::function_info::change_insn(rtl_ssa::insn_change&)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.1_p20230122/work/gcc-13-20230122/gcc/rtl-ssa/changes.cc:717
0x1b49d55 try_fwprop_subst_pattern
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.1_p20230122/work/gcc-13-20230122/gcc/fwprop.cc:553
0x1b49d55 try_fwprop_subst
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.1_p20230122/work/gcc-13-20230122/gcc/fwprop.cc:627
0x1b4a349 forward_propagate_and_simplify
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.1_p20230122/work/gcc-13-20230122/gcc/fwprop.cc:823
0x1b4a349 forward_propagate_into
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.1_p20230122/work/gcc-13-20230122/gcc/fwprop.cc:886
0x1b4a6f6 fwprop_insn
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.1_p20230122/work/gcc-13-20230122/gcc/fwprop.cc:943
0x1b4a8e2 fwprop
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.1_p20230122/work/gcc-13-20230122/gcc/fwprop.cc:995

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

* [Bug rtl-optimization/108508] [13 Regression] ICE in insert_def_after, at rtl-ssa/accesses.cc:622
  2023-01-24  4:38 [Bug rtl-optimization/108508] New: [13 Regression] ICE in insert_def_after, at rtl-ssa/accesses.cc:622 asolokha at gmx dot com
@ 2023-01-24  9:20 ` rguenth at gcc dot gnu.org
  2023-01-25  9:34 ` [Bug rtl-optimization/108508] [12/13 Regression] ICE in insert_def_after, at rtl-ssa/accesses.cc:622 since r12-4759-g95bb87b2458bfa marxin at gcc dot gnu.org
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-01-24  9:20 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |needs-bisection
   Target Milestone|---                         |13.0

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

* [Bug rtl-optimization/108508] [12/13 Regression] ICE in insert_def_after, at rtl-ssa/accesses.cc:622 since r12-4759-g95bb87b2458bfa
  2023-01-24  4:38 [Bug rtl-optimization/108508] New: [13 Regression] ICE in insert_def_after, at rtl-ssa/accesses.cc:622 asolokha at gmx dot com
  2023-01-24  9:20 ` [Bug rtl-optimization/108508] " rguenth at gcc dot gnu.org
@ 2023-01-25  9:34 ` marxin at gcc dot gnu.org
  2023-02-01 12:34 ` jakub at gcc dot gnu.org
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: marxin at gcc dot gnu.org @ 2023-01-25  9:34 UTC (permalink / raw)
  To: gcc-bugs

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

Martin Liška <marxin at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
           Keywords|needs-bisection             |
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2023-01-25
                 CC|                            |aoliva at gcc dot gnu.org,
                   |                            |marxin at gcc dot gnu.org
            Summary|[13 Regression] ICE in      |[12/13 Regression] ICE in
                   |insert_def_after, at        |insert_def_after, at
                   |rtl-ssa/accesses.cc:622     |rtl-ssa/accesses.cc:622
                   |                            |since
                   |                            |r12-4759-g95bb87b2458bfa

--- Comment #1 from Martin Liška <marxin at gcc dot gnu.org> ---
It's there likely since the introduction of -fharden-conditional-branches:
r12-4759-g95bb87b2458bfa.

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

* [Bug rtl-optimization/108508] [12/13 Regression] ICE in insert_def_after, at rtl-ssa/accesses.cc:622 since r12-4759-g95bb87b2458bfa
  2023-01-24  4:38 [Bug rtl-optimization/108508] New: [13 Regression] ICE in insert_def_after, at rtl-ssa/accesses.cc:622 asolokha at gmx dot com
  2023-01-24  9:20 ` [Bug rtl-optimization/108508] " rguenth at gcc dot gnu.org
  2023-01-25  9:34 ` [Bug rtl-optimization/108508] [12/13 Regression] ICE in insert_def_after, at rtl-ssa/accesses.cc:622 since r12-4759-g95bb87b2458bfa marxin at gcc dot gnu.org
@ 2023-02-01 12:34 ` jakub at gcc dot gnu.org
  2023-02-01 16:43 ` rsandifo at gcc dot gnu.org
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-02-01 12:34 UTC (permalink / raw)
  To: gcc-bugs

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

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

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

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
CCing also Richard, because the ICE is in RTL-SSA.

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

* [Bug rtl-optimization/108508] [12/13 Regression] ICE in insert_def_after, at rtl-ssa/accesses.cc:622 since r12-4759-g95bb87b2458bfa
  2023-01-24  4:38 [Bug rtl-optimization/108508] New: [13 Regression] ICE in insert_def_after, at rtl-ssa/accesses.cc:622 asolokha at gmx dot com
                   ` (2 preceding siblings ...)
  2023-02-01 12:34 ` jakub at gcc dot gnu.org
@ 2023-02-01 16:43 ` rsandifo at gcc dot gnu.org
  2023-02-02 14:53 ` cvs-commit at gcc dot gnu.org
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: rsandifo at gcc dot gnu.org @ 2023-02-01 16:43 UTC (permalink / raw)
  To: gcc-bugs

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

rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |rsandifo at gcc dot gnu.org

--- Comment #3 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> ---
I'll have a look.

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

* [Bug rtl-optimization/108508] [12/13 Regression] ICE in insert_def_after, at rtl-ssa/accesses.cc:622 since r12-4759-g95bb87b2458bfa
  2023-01-24  4:38 [Bug rtl-optimization/108508] New: [13 Regression] ICE in insert_def_after, at rtl-ssa/accesses.cc:622 asolokha at gmx dot com
                   ` (3 preceding siblings ...)
  2023-02-01 16:43 ` rsandifo at gcc dot gnu.org
@ 2023-02-02 14:53 ` cvs-commit at gcc dot gnu.org
  2023-04-03  8:57 ` [Bug rtl-optimization/108508] [12 " cvs-commit at gcc dot gnu.org
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-02-02 14:53 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Richard Sandiford <rsandifo@gcc.gnu.org>:

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

commit r13-5657-gf4e1b46618ef3bd7933992ab79f663ab9112bb80
Author: Richard Sandiford <richard.sandiford@arm.com>
Date:   Thu Feb 2 14:53:34 2023 +0000

    rtl-ssa: Fix splitting of clobber groups [PR108508]

    Since rtl-ssa isn't a real/native SSA representation, it has
    to honour the constraints of the underlying rtl representation.
    Part of this involves maintaining an rpo list of definitions
    for each rtl register, backed by a splay tree where necessary
    for quick lookup/insertion.

    However, clobbers of a register don't act as barriers to
    other clobbers of a register.  E.g. it's possible to move one
    flag-clobbering instruction across an arbitrary number of other
    flag-clobbering instructions.  In order to allow passes to do
    that without quadratic complexity, the splay tree groups all
    consecutive clobbers into groups, with only the group being
    entered into the splay tree.  These groups in turn have an
    internal splay tree of clobbers where necessary.

    This means that, if we insert a new definition and use into
    the middle of a sea of clobbers, we need to split the clobber
    group into two groups.  This was quite a difficult condition
    to trigger during development, and the PR shows that the code
    to handle it had (at least) two bugs.

    First, the process involves searching the clobber tree for
    the split point.  This search can give either the previous
    clobber (which will belong to the first of the split groups)
    or the next clobber (which will belong to the second of the
    split groups).  The code for the former case handled the
    split correctly but the code for the latter case didn't.

    Second, I'd forgotten to add the second clobber group to the
    main splay tree. :-(

    gcc/
            PR rtl-optimization/108508
            * rtl-ssa/accesses.cc (function_info::split_clobber_group): When
            the splay tree search gives the first clobber in the second group,
            make sure that the root of the first clobber group is updated
            correctly.  Enter the new clobber group into the definition splay
            tree.

    gcc/testsuite/
            PR rtl-optimization/108508
            * gcc.target/aarch64/pr108508.c: New test.

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

* [Bug rtl-optimization/108508] [12 Regression] ICE in insert_def_after, at rtl-ssa/accesses.cc:622 since r12-4759-g95bb87b2458bfa
  2023-01-24  4:38 [Bug rtl-optimization/108508] New: [13 Regression] ICE in insert_def_after, at rtl-ssa/accesses.cc:622 asolokha at gmx dot com
                   ` (4 preceding siblings ...)
  2023-02-02 14:53 ` cvs-commit at gcc dot gnu.org
@ 2023-04-03  8:57 ` cvs-commit at gcc dot gnu.org
  2023-04-03  9:02 ` [Bug rtl-optimization/108508] [11 Backport] " rsandifo at gcc dot gnu.org
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-04-03  8:57 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #5 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-12 branch has been updated by Richard Sandiford
<rsandifo@gcc.gnu.org>:

https://gcc.gnu.org/g:44ca5bc6800987e56db3e5537079b10ad5faac88

commit r12-9379-g44ca5bc6800987e56db3e5537079b10ad5faac88
Author: Richard Sandiford <richard.sandiford@arm.com>
Date:   Mon Apr 3 09:57:06 2023 +0100

    rtl-ssa: Fix splitting of clobber groups [PR108508]

    Since rtl-ssa isn't a real/native SSA representation, it has
    to honour the constraints of the underlying rtl representation.
    Part of this involves maintaining an rpo list of definitions
    for each rtl register, backed by a splay tree where necessary
    for quick lookup/insertion.

    However, clobbers of a register don't act as barriers to
    other clobbers of a register.  E.g. it's possible to move one
    flag-clobbering instruction across an arbitrary number of other
    flag-clobbering instructions.  In order to allow passes to do
    that without quadratic complexity, the splay tree groups all
    consecutive clobbers into groups, with only the group being
    entered into the splay tree.  These groups in turn have an
    internal splay tree of clobbers where necessary.

    This means that, if we insert a new definition and use into
    the middle of a sea of clobbers, we need to split the clobber
    group into two groups.  This was quite a difficult condition
    to trigger during development, and the PR shows that the code
    to handle it had (at least) two bugs.

    First, the process involves searching the clobber tree for
    the split point.  This search can give either the previous
    clobber (which will belong to the first of the split groups)
    or the next clobber (which will belong to the second of the
    split groups).  The code for the former case handled the
    split correctly but the code for the latter case didn't.

    Second, I'd forgotten to add the second clobber group to the
    main splay tree. :-(

    gcc/
            PR rtl-optimization/108508
            * rtl-ssa/accesses.cc (function_info::split_clobber_group): When
            the splay tree search gives the first clobber in the second group,
            make sure that the root of the first clobber group is updated
            correctly.  Enter the new clobber group into the definition splay
            tree.

    gcc/testsuite/
            PR rtl-optimization/108508
            * gcc.target/aarch64/pr108508.c: New test.

    (cherry picked from commit f4e1b46618ef3bd7933992ab79f663ab9112bb80)

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

* [Bug rtl-optimization/108508] [11 Backport] ICE in insert_def_after, at rtl-ssa/accesses.cc:622 since r12-4759-g95bb87b2458bfa
  2023-01-24  4:38 [Bug rtl-optimization/108508] New: [13 Regression] ICE in insert_def_after, at rtl-ssa/accesses.cc:622 asolokha at gmx dot com
                   ` (5 preceding siblings ...)
  2023-04-03  8:57 ` [Bug rtl-optimization/108508] [12 " cvs-commit at gcc dot gnu.org
@ 2023-04-03  9:02 ` rsandifo at gcc dot gnu.org
  2023-04-26  6:57 ` rguenth at gcc dot gnu.org
  2023-07-27  9:25 ` rguenth at gcc dot gnu.org
  8 siblings, 0 replies; 10+ messages in thread
From: rsandifo at gcc dot gnu.org @ 2023-04-03  9:02 UTC (permalink / raw)
  To: gcc-bugs

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

rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[12 Regression] ICE in      |[11 Backport] ICE in
                   |insert_def_after, at        |insert_def_after, at
                   |rtl-ssa/accesses.cc:622     |rtl-ssa/accesses.cc:622
                   |since                       |since
                   |r12-4759-g95bb87b2458bfa    |r12-4759-g95bb87b2458bfa

--- Comment #6 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> ---
I'm intending to backport the rtl-ssa part to GCC 11 too.

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

* [Bug rtl-optimization/108508] [11 Backport] ICE in insert_def_after, at rtl-ssa/accesses.cc:622 since r12-4759-g95bb87b2458bfa
  2023-01-24  4:38 [Bug rtl-optimization/108508] New: [13 Regression] ICE in insert_def_after, at rtl-ssa/accesses.cc:622 asolokha at gmx dot com
                   ` (6 preceding siblings ...)
  2023-04-03  9:02 ` [Bug rtl-optimization/108508] [11 Backport] " rsandifo at gcc dot gnu.org
@ 2023-04-26  6:57 ` rguenth at gcc dot gnu.org
  2023-07-27  9:25 ` rguenth at gcc dot gnu.org
  8 siblings, 0 replies; 10+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-04-26  6:57 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|13.0                        |13.2

--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 13.1 is being released, retargeting bugs to GCC 13.2.

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

* [Bug rtl-optimization/108508] [11 Backport] ICE in insert_def_after, at rtl-ssa/accesses.cc:622 since r12-4759-g95bb87b2458bfa
  2023-01-24  4:38 [Bug rtl-optimization/108508] New: [13 Regression] ICE in insert_def_after, at rtl-ssa/accesses.cc:622 asolokha at gmx dot com
                   ` (7 preceding siblings ...)
  2023-04-26  6:57 ` rguenth at gcc dot gnu.org
@ 2023-07-27  9:25 ` rguenth at gcc dot gnu.org
  8 siblings, 0 replies; 10+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-07-27  9:25 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|13.2                        |13.3

--- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 13.2 is being released, retargeting bugs to GCC 13.3.

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

end of thread, other threads:[~2023-07-27  9:25 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-24  4:38 [Bug rtl-optimization/108508] New: [13 Regression] ICE in insert_def_after, at rtl-ssa/accesses.cc:622 asolokha at gmx dot com
2023-01-24  9:20 ` [Bug rtl-optimization/108508] " rguenth at gcc dot gnu.org
2023-01-25  9:34 ` [Bug rtl-optimization/108508] [12/13 Regression] ICE in insert_def_after, at rtl-ssa/accesses.cc:622 since r12-4759-g95bb87b2458bfa marxin at gcc dot gnu.org
2023-02-01 12:34 ` jakub at gcc dot gnu.org
2023-02-01 16:43 ` rsandifo at gcc dot gnu.org
2023-02-02 14:53 ` cvs-commit at gcc dot gnu.org
2023-04-03  8:57 ` [Bug rtl-optimization/108508] [12 " cvs-commit at gcc dot gnu.org
2023-04-03  9:02 ` [Bug rtl-optimization/108508] [11 Backport] " rsandifo at gcc dot gnu.org
2023-04-26  6:57 ` rguenth at gcc dot gnu.org
2023-07-27  9:25 ` 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).