Summary: | [10/11/12/13 Regression] [graphite] ICE in set_codegen_error, at graphite-isl-ast-to-gimple.c:206 | ||
---|---|---|---|
Product: | gcc | Reporter: | Arseny Solokha <asolokha> |
Component: | tree-optimization | Assignee: | Richard Biener <rguenth> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | rguenth |
Priority: | P2 | Keywords: | deferred, ice-on-valid-code |
Version: | 8.0.1 | ||
Target Milestone: | 8.0 | ||
Host: | Target: | ||
Build: | Known to work: | ||
Known to fail: | Last reconfirmed: | 2018-04-23 00:00:00 | |
Bug Depends on: | |||
Bug Blocks: | 59859 |
Description
Arseny Solokha
2018-04-23 03:08:38 UTC
This touches more cases where SCOP analysis only is checking scev_analyzable_p () but code-gen uses scalar_evolution_in_region with a loop != def-loop. The artificial scev-max-expr-size makes one succeed and the other fail. Note more complex cases could ICE because of the same reason or because some use site is really not analyzable. IMHO scev_analyzable_p should get a 'loop' arg. Nothing for 8.1. Note the testcase no longer fails on trunk or the branch or even with GCC 8.1.0. Testcase queued for backporting. Author: rguenth Date: Fri Feb 1 09:17:14 2019 New Revision: 268447 URL: https://gcc.gnu.org/viewcvs?rev=268447&root=gcc&view=rev Log: 2019-02-01 Richard Biener <rguenther@suse.de> PR tree-optimization/85497 * gcc.dg/graphite/pr85497.c: New testcase. Added: trunk/gcc/testsuite/gcc.dg/graphite/pr85497.c Modified: trunk/gcc/testsuite/ChangeLog Sorry, but it would be a mistake to think that I'm short of testcases… Usually I get one every few minutes. 1. % gcc-9.0.0-alpha20190127 -O3 -floop-parallelize-all -fopenacc -fopenmp -fno-guess-branch-probability --param scev-max-expr-size=3 -c libgomp/testsuite/libgomp.c-c++-common/target-1.c during GIMPLE pass: graphite libgomp/testsuite/libgomp.c-c++-common/target-1.c: In function 'main': libgomp/testsuite/libgomp.c-c++-common/target-1.c:78:1: internal compiler error: in set_codegen_error, at graphite-isl-ast-to-gimple.c:205 78 | main () | ^~~~ 0x79c1fa translate_isl_ast_to_gimple::set_codegen_error() /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/graphite-isl-ast-to-gimple.c:205 0x79c49c translate_isl_ast_to_gimple::set_codegen_error() /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/tree.h:3290 0x79c49c translate_isl_ast_to_gimple::get_rename_from_scev(tree_node*, gimple**, loop*, vec<tree_node*, va_heap, vl_ptr>) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/graphite-isl-ast-to-gimple.c:1104 0x15d8e8e translate_isl_ast_to_gimple::graphite_copy_stmts_from_block(basic_block_def*, basic_block_def*, vec<tree_node*, va_heap, vl_ptr>) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/graphite-isl-ast-to-gimple.c:1223 0x15d9845 translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences(basic_block_def*, edge_def*, vec<tree_node*, va_heap, vl_ptr>) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/graphite-isl-ast-to-gimple.c:1272 0x15d9ec4 translate_isl_ast_to_gimple::translate_isl_ast_node_user(isl_ast_node*, edge_def*, std::map<isl_id*, tree_node*, std::less<isl_id*>, std::allocator<std::pair<isl_id* const, tree_node*> > >&) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/graphite-isl-ast-to-gimple.c:832 0x15da16f translate_isl_ast_to_gimple::translate_isl_ast_for_loop(loop*, isl_ast_node*, edge_def*, tree_node*, tree_node*, tree_node*, std::map<isl_id*, tree_node*, std::less<isl_id*>, std::allocator<std::pair<isl_id* const, tree_node*> > >&) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/graphite-isl-ast-to-gimple.c:625 0x15da40f translate_isl_ast_to_gimple::translate_isl_ast_node_for(loop*, isl_ast_node*, edge_def*, std::map<isl_id*, tree_node*, std::less<isl_id*>, std::allocator<std::pair<isl_id* const, tree_node*> > >&) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/graphite-isl-ast-to-gimple.c:753 0x15da654 translate_isl_ast_to_gimple::translate_isl_ast_node_block(loop*, isl_ast_node*, edge_def*, std::map<isl_id*, tree_node*, std::less<isl_id*>, std::allocator<std::pair<isl_id* const, tree_node*> > >&) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/graphite-isl-ast-to-gimple.c:861 0x15daa1d graphite_regenerate_ast_isl(scop*) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/graphite-isl-ast-to-gimple.c:1510 0x15d6b34 graphite_transform_loops() /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/graphite.c:413 0x15d7130 graphite_transforms /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/graphite.c:476 0x15d7130 execute /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/graphite.c:553 2. % gcc-9.0.0-alpha20190127 -O1 -floop-parallelize-all --param scev-max-expr-size=3 -c gcc/testsuite/gcc.dg/graphite/uns-block-1.c 3. % powerpc-e300c3-linux-gnu-gfortran-9.0.0-alpha20190127 -O2 -fgraphite-identity -fopenmp --param max-completely-peel-times=3 --param scev-max-expr-size=3 -w -c gcc/testsuite/gfortran.dg/gomp/pr70855.f90 On Fri, 1 Feb 2019, asolokha at gmx dot com wrote:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85497
>
> --- Comment #6 from Arseny Solokha <asolokha at gmx dot com> ---
> Sorry, but it would be a mistake to think that I'm short of testcases… Usually
> I get one every few minutes.
Heh ;) Well, I'm (slowly) working on elimiating SCEV expr size limiting,
it's really a bit fragile to rely on the various entries to produce
a meaningful result if one ends up hitting the limit...
GCC 10.1 has been released. GCC 10.2 is released, adjusting target milestone. GCC 10.3 is being released, retargeting bugs to GCC 10.4. GCC 10.4 is being released, retargeting bugs to GCC 10.5. Let's close this one, we have a "duplicate" with another testcase for the scev-expr-size issues. |