public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/97486] New: [11 Regression] ICE in vect_create_constant_vectors, at tree-vect-slp.c:4513 since r11-4005-g6c6e0cafa38cee83
@ 2020-10-19  9:01 marxin at gcc dot gnu.org
  2020-10-19  9:02 ` [Bug tree-optimization/97486] " marxin at gcc dot gnu.org
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: marxin at gcc dot gnu.org @ 2020-10-19  9:01 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 97486
           Summary: [11 Regression] ICE in vect_create_constant_vectors,
                    at tree-vect-slp.c:4513 since
                    r11-4005-g6c6e0cafa38cee83
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: marxin at gcc dot gnu.org
                CC: rguenth at gcc dot gnu.org
  Target Milestone: ---

It's reduced from emacs:

$ cat emacs.i
struct {
  int *end_info;
  int *fp;
} png_load_body_c;

int *png_set_longjmp_fn();

void setjmp();

void png_load_body() {
  int *fp;
  int png_ptr, info_ptr, *end_info;
  if (!fp)
    return;
  if (png_ptr) {
    info_ptr = 0;
    end_info = png_set_longjmp_fn();
  }
  png_load_body_c.end_info = end_info;
  png_load_body_c.fp = fp;
  if (png_ptr)
    png_set_longjmp_fn();
  setjmp(info_ptr);
}

$ gcc emacs.i -c -O3
during GIMPLE pass: slp
emacs.i: In function ‘png_load_body’:
emacs.i:10:6: internal compiler error: in vect_create_constant_vectors, at
tree-vect-slp.c:4513
   10 | void png_load_body() {
      |      ^~~~~~~~~~~~~
0x736046 vect_create_constant_vectors
        /home/marxin/Programming/gcc/gcc/tree-vect-slp.c:4513
0x736046 vect_schedule_slp_instance
        /home/marxin/Programming/gcc/gcc/tree-vect-slp.c:5032
0x1045d47 vect_schedule_slp_instance
        /home/marxin/Programming/gcc/gcc/tree-vect-slp.c:5041
0x1047a92 vect_schedule_slp(vec_info*, vec<_slp_instance*, va_heap, vl_ptr>)
        /home/marxin/Programming/gcc/gcc/tree-vect-slp.c:5299
0x104905d vect_slp_region
        /home/marxin/Programming/gcc/gcc/tree-vect-slp.c:4046
0x104905d vect_slp_bbs
        /home/marxin/Programming/gcc/gcc/tree-vect-slp.c:4164
0x1049afc vect_slp_function(function*)
        /home/marxin/Programming/gcc/gcc/tree-vect-slp.c:4215
0x104b76d execute
        /home/marxin/Programming/gcc/gcc/tree-vectorizer.c:1430
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

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

* [Bug tree-optimization/97486] [11 Regression] ICE in vect_create_constant_vectors, at tree-vect-slp.c:4513 since r11-4005-g6c6e0cafa38cee83
  2020-10-19  9:01 [Bug tree-optimization/97486] New: [11 Regression] ICE in vect_create_constant_vectors, at tree-vect-slp.c:4513 since r11-4005-g6c6e0cafa38cee83 marxin at gcc dot gnu.org
@ 2020-10-19  9:02 ` marxin at gcc dot gnu.org
  2020-10-19  9:25 ` rguenth at gcc dot gnu.org
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: marxin at gcc dot gnu.org @ 2020-10-19  9:02 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
      Known to fail|                            |11.0
   Last reconfirmed|                            |2020-10-19
      Known to work|                            |10.2.0
           Priority|P3                          |P1
   Target Milestone|---                         |11.0
             Status|UNCONFIRMED                 |NEW

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

* [Bug tree-optimization/97486] [11 Regression] ICE in vect_create_constant_vectors, at tree-vect-slp.c:4513 since r11-4005-g6c6e0cafa38cee83
  2020-10-19  9:01 [Bug tree-optimization/97486] New: [11 Regression] ICE in vect_create_constant_vectors, at tree-vect-slp.c:4513 since r11-4005-g6c6e0cafa38cee83 marxin at gcc dot gnu.org
  2020-10-19  9:02 ` [Bug tree-optimization/97486] " marxin at gcc dot gnu.org
@ 2020-10-19  9:25 ` rguenth at gcc dot gnu.org
  2020-10-19 11:23 ` cvs-commit at gcc dot gnu.org
  2020-10-19 11:23 ` rguenth at gcc dot gnu.org
  3 siblings, 0 replies; 5+ messages in thread
From: rguenth at gcc dot gnu.org @ 2020-10-19  9:25 UTC (permalink / raw)
  To: gcc-bugs

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

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

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

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
OK, so we insert on the edge 4->5

<bb 4> [local count: 290235635]:
info_ptr_14(ab) = 0;
_16 = png_set_longjmp_fn ();

<bb 5> [local count: 290197324]:
# info_ptr_1(ab) = PHI <info_ptr_14(ab)(4)>
png_load_body_c.end_info = _16;
png_load_body_c.fp = fp_9(D);
png_set_longjmp_fn ();

where gimple_find_edge_insert_loc has

  /* If the destination has one predecessor which has no PHI nodes,
     insert there.  Except for the exit block.

     The requirement for no PHI nodes could be relaxed.  Basically we
     would have to examine the PHIs to prove that none of them used
     the value set by the statement we want to insert on E.  That
     hardly seems worth the effort.  */
 restart:
  if (single_pred_p (dest)
      && gimple_seq_empty_p (phi_nodes (dest))
      && dest != EXIT_BLOCK_PTR_FOR_FN (cfun))
    {

so the single-arg PHI confuses us here.

So we now either have to restrict the BB region or convince ourselves that
splitting the edge is OK at the above point (I think it is) ...

I'm tending to keep regions small for now.

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

* [Bug tree-optimization/97486] [11 Regression] ICE in vect_create_constant_vectors, at tree-vect-slp.c:4513 since r11-4005-g6c6e0cafa38cee83
  2020-10-19  9:01 [Bug tree-optimization/97486] New: [11 Regression] ICE in vect_create_constant_vectors, at tree-vect-slp.c:4513 since r11-4005-g6c6e0cafa38cee83 marxin at gcc dot gnu.org
  2020-10-19  9:02 ` [Bug tree-optimization/97486] " marxin at gcc dot gnu.org
  2020-10-19  9:25 ` rguenth at gcc dot gnu.org
@ 2020-10-19 11:23 ` cvs-commit at gcc dot gnu.org
  2020-10-19 11:23 ` rguenth at gcc dot gnu.org
  3 siblings, 0 replies; 5+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2020-10-19 11:23 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #2 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:361c378dda1f17435ecc364ab246978784df2482

commit r11-4068-g361c378dda1f17435ecc364ab246978784df2482
Author: Richard Biener <rguenther@suse.de>
Date:   Mon Oct 19 11:30:46 2020 +0200

    tree-optimization/97486 - avoid edge insertion in SLP vectorizing

    This avoids edge inserting and eventual splitting during BB SLP
    vectorization for now.

    2020-10-19  Richard Biener  <rguenther@suse.de>

            PR tree-optimization/97486
            * tree-vect-slp.c (vect_slp_function): Split after stmts
            ending a BB.

            * gcc.dg/vect/bb-slp-pr97486.c: New testcase.

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

* [Bug tree-optimization/97486] [11 Regression] ICE in vect_create_constant_vectors, at tree-vect-slp.c:4513 since r11-4005-g6c6e0cafa38cee83
  2020-10-19  9:01 [Bug tree-optimization/97486] New: [11 Regression] ICE in vect_create_constant_vectors, at tree-vect-slp.c:4513 since r11-4005-g6c6e0cafa38cee83 marxin at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2020-10-19 11:23 ` cvs-commit at gcc dot gnu.org
@ 2020-10-19 11:23 ` rguenth at gcc dot gnu.org
  3 siblings, 0 replies; 5+ messages in thread
From: rguenth at gcc dot gnu.org @ 2020-10-19 11:23 UTC (permalink / raw)
  To: gcc-bugs

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

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

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

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

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

end of thread, other threads:[~2020-10-19 11:23 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-19  9:01 [Bug tree-optimization/97486] New: [11 Regression] ICE in vect_create_constant_vectors, at tree-vect-slp.c:4513 since r11-4005-g6c6e0cafa38cee83 marxin at gcc dot gnu.org
2020-10-19  9:02 ` [Bug tree-optimization/97486] " marxin at gcc dot gnu.org
2020-10-19  9:25 ` rguenth at gcc dot gnu.org
2020-10-19 11:23 ` cvs-commit at gcc dot gnu.org
2020-10-19 11:23 ` 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).