Bug 87745 - [9 regression] ICE in get_later_stmt, at tree-vectorizer.h:1109
Summary: [9 regression] ICE in get_later_stmt, at tree-vectorizer.h:1109
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: tree-optimization (show other bugs)
Version: 9.0
: P3 normal
Target Milestone: 9.0
Assignee: Richard Biener
URL:
Keywords:
Depends on:
Blocks: 87665
  Show dependency treegraph
 
Reported: 2018-10-25 08:39 UTC by Rainer Orth
Modified: 2018-11-26 13:33 UTC (History)
1 user (show)

See Also:
Host:
Target: aarch64, arm, i?86, x86_64
Build:
Known to work:
Known to fail:
Last reconfirmed: 2018-10-25 00:00:00


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Rainer Orth 2018-10-25 08:39:57 UTC
Between 20181023 (r265430) and 20181024 (r265465), two testsuite regressions
appeared on Solaris 11/x86, both 32 and 64-bit:

+FAIL: gfortran.fortran-torture/execute/where_1.f90,  -O3 -g  (internal compiler error)
+FAIL: gfortran.fortran-torture/execute/where_6.f90,  -O3 -g  (internal compiler error)

According to gcc-testresults, they also occur on aarch64 and arm.

The log shows

during GIMPLE pass: vect
/vol/gcc/src/hg/trunk/local/gcc/testsuite/gfortran.fortran-torture/execute/where_6.f90:23:0: internal compiler error: in get_later_stmt, at tree-vectorizer.h:1109
0x9a590a7 get_later_stmt
        /vol/gcc/src/hg/trunk/local/gcc/tree-vectorizer.h:1109
0x9a59274 get_later_stmt
        /vol/gcc/src/hg/trunk/local/gcc/tree-vect-data-refs.c:220
0x9a59274 vect_preserves_scalar_order_p
        /vol/gcc/src/hg/trunk/local/gcc/tree-vect-data-refs.c:221
0x9a49cb8 vect_analyze_data_ref_dependence
        /vol/gcc/src/hg/trunk/local/gcc/tree-vect-data-refs.c:453
0x9a49cb8 vect_analyze_data_ref_dependences(_loop_vec_info*, unsigned int*)
        /vol/gcc/src/hg/trunk/local/gcc/tree-vect-data-refs.c:559
0x9339749 vect_analyze_loop_2
        /vol/gcc/src/hg/trunk/local/gcc/tree-vect-loop.c:1849
0x9339749 vect_analyze_loop(loop*, _loop_vec_info*, vec_info_shared*)
        /vol/gcc/src/hg/trunk/local/gcc/tree-vect-loop.c:2268
0x9359b05 try_vectorize_loop_1
        /vol/gcc/src/hg/trunk/local/gcc/tree-vectorizer.c:873
0x935a368 try_vectorize_loop
        /vol/gcc/src/hg/trunk/local/gcc/tree-vectorizer.c:1015
0x935a87a vectorize_loops()
        /vol/gcc/src/hg/trunk/local/gcc/tree-vectorizer.c:1097

which suggests this might have been caused by

2018-10-24  Richard Biener  <rguenther@suse.de>

        PR tree-optimization/87665
        * tree-vect-data-refs.c (vect_preserves_scalar_order_p): Adjust
        to reflect reality.

        * gcc.dg/torture/pr87665.c: New testcase.
Comment 1 Christophe Lyon 2018-10-25 08:42:52 UTC
Seeing the regression between r265448 and r265478 on aarch64
Comment 2 Dominique d'Humieres 2018-10-25 08:46:08 UTC
Confirmed. Likely revision r265452.
Comment 3 Richard Biener 2018-10-25 08:57:44 UTC
Mine.
Comment 4 Richard Biener 2018-10-25 08:59:21 UTC
Fixed.
Comment 5 Richard Biener 2018-10-25 08:59:41 UTC
Author: rguenth
Date: Thu Oct 25 08:59:07 2018
New Revision: 265481

URL: https://gcc.gnu.org/viewcvs?rev=265481&root=gcc&view=rev
Log:
2018-10-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/87665
	PR tree-optimization/87745
	* tree-vectorizer.h (get_earlier_stmt): Remove.
	(get_later_stmt): Pick up UID from the original non-pattern stmt.

	* gfortran.dg/20181025-1.f: New testcase.

Added:
    trunk/gcc/testsuite/gfortran.dg/20181025-1.f
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/tree-vectorizer.h
Comment 6 Richard Biener 2018-10-25 13:46:57 UTC
Author: rguenth
Date: Thu Oct 25 13:46:20 2018
New Revision: 265487

URL: https://gcc.gnu.org/viewcvs?rev=265487&root=gcc&view=rev
Log:
2018-10-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/87665
	PR tree-optimization/87745
	* tree-vectorizer.h (get_earlier_stmt): Remove.
	(get_later_stmt): Pick up UID from the original non-pattern stmt.

	* gfortran.dg/20181025-1.f: New testcase.

Added:
    branches/gcc-8-branch/gcc/testsuite/gfortran.dg/20181025-1.f
Modified:
    branches/gcc-8-branch/gcc/ChangeLog
    branches/gcc-8-branch/gcc/testsuite/ChangeLog
    branches/gcc-8-branch/gcc/tree-vectorizer.h
Comment 7 Richard Biener 2018-11-26 13:33:24 UTC
Author: rguenth
Date: Mon Nov 26 13:31:21 2018
New Revision: 266460

URL: https://gcc.gnu.org/viewcvs?rev=266460&root=gcc&view=rev
Log:
2018-11-26  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2018-10-15  Richard Biener  <rguenther@suse.de>

	PR middle-end/87610
	* tree-ssa-structalias.c (struct vls_data): Add escaped_p member.
	(visit_loadstore): When a used restrict tag escaped verify that
	the points-to solution of "other" pointers do not include
	escaped.
	(compute_dependence_clique): If a used restrict tag escaped
	communicated that down to visit_loadstore.

	* gcc.dg/torture/restrict-6.c: New testcase.

	2018-10-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/87665
	PR tree-optimization/87745
	* tree-vectorizer.h (get_earlier_stmt): Remove.
	(get_later_stmt): Pick up UID from the original non-pattern stmt.

	* gfortran.dg/20181025-1.f: New testcase.

	2018-10-24  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/87665
	* tree-vect-data-refs.c (vect_preserves_scalar_order_p): Adjust
	to reflect reality.

	* gcc.dg/torture/pr87665.c: New testcase.

Added:
    branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr87665.c
    branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/restrict-6.c
    branches/gcc-7-branch/gcc/testsuite/gfortran.dg/20181025-1.f
Modified:
    branches/gcc-7-branch/gcc/ChangeLog
    branches/gcc-7-branch/gcc/testsuite/ChangeLog
    branches/gcc-7-branch/gcc/tree-ssa-structalias.c
    branches/gcc-7-branch/gcc/tree-vect-data-refs.c
    branches/gcc-7-branch/gcc/tree-vectorizer.h