On October 3, 2017 11:48:35 AM GMT+02:00, Rainer Orth <r...@cebitec.uni-bielefeld.de> wrote: >Hi Richard, > >> The following patch adjust GRAPHITE testing to check that existing >> code generation issues occur and makes code generation ICE with >> -fchecking --param graphite-allow-codegen-errors=0. The param >> is really a testsuite artifact so we can have testcases with >> issues where we have papered over GRAPHITE issues with aborting >> code generation. >> >> This avoids regressing testcases that do not show code generation >> issues and it allows detecting testcases that no longer show >> code generation issues (so we can avoid regressing that feat later). >> >> I'm now working on code-generation issues so that's an important >> feature for me. >> >> Bootstrapped and tested on x86_64-unknown-linux-gnu, applied to >trunk. >> >> Richard. >> >> 2017-10-02 Richard Biener <rguent...@suse.de> >> >> * graphite-isl-ast-to-gimple.c (set_codegen_error): With >> -fchecking and --param graphite-allow-codegen-errors=0 ICE. >> * params.def (PARAM_GRAPHITE_ALLOW_CODEGEN_ERRORS): New param. >> >> * gcc.dg/graphite/graphite.exp: Add -fdump-tree-graphite-details. >> * gcc.dg/graphite/id-16.c: Adjust for existing codegen errors. >> * gcc.dg/graphite/pr46168.c: Likewise. >> * gcc.dg/graphite/pr68756.c: Likewise. >> * gcc.dg/graphite/pr69728.c: Likewise. >> * gcc.dg/graphite/pr71575-2.c: Likewise. >> * gcc.dg/graphite/pr77362.c: Likewise. >> * gcc.dg/graphite/pr81373.c: Likewise. >> * gcc.dg/graphite/run-id-pr67700-1.c: Likewise. >> * gfortran.dg/graphite/interchange-1.f: Likewise. >> * gfortran.dg/graphite/pr29581.f90: Likewise. >> * gfortran.dg/graphite/pr42334-1.f: Likewise. >> * gfortran.dg/graphite/pr42393-1.f90: Likewise. >> * gfortran.dg/graphite/pr42393.f90: Likewise. >> * gfortran.dg/graphite/pr47019.f: Likewise. > >the patch caused a couple of regressions, unfortunately. E.g. > >+FAIL: gfortran.dg/graphite/id-17.f -O (internal compiler error) >+FAIL: gfortran.dg/graphite/id-17.f -O (test for excess errors) > >Excess errors: >during GIMPLE pass: graphite >/vol/gcc/src/hg/trunk/local/gcc/testsuite/gfortran.dg/graphite/id-17.f:1:0: >internal compiler error: in set_codegen_error, at >graphite-isl-ast-to-gimple.c:248 >0x10d5ebb translate_isl_ast_to_gimple::set_codegen_error() > /vol/gcc/src/hg/trunk/local/gcc/graphite-isl-ast-to-gimple.c:247 >0x10d0023 translate_isl_ast_to_gimple::set_codegen_error() > /vol/gcc/src/hg/trunk/local/gcc/graphite-isl-ast-to-gimple.c:247 >0x10d0023 translate_isl_ast_to_gimple::get_rename_from_scev(tree_node*, >gimple**, loop*, basic_block_def*, basic_block_def*, vec<tree_node*, >va_heap, vl_ptr>) > /vol/gcc/src/hg/trunk/local/gcc/graphite-isl-ast-to-gimple.c:1510 >0x10d2963 translate_isl_ast_to_gimple::rename_uses(gimple*, >gimple_stmt_iterator*, basic_block_def*, loop*, vec<tree_node*, >va_heap, vl_ptr>) > /vol/gcc/src/hg/trunk/local/gcc/graphite-isl-ast-to-gimple.c:1644 >0x10d4217 >translate_isl_ast_to_gimple::graphite_copy_stmts_from_block(basic_block_def*, >basic_block_def*, vec<tree_node*, va_heap, vl_ptr>) > /vol/gcc/src/hg/trunk/local/gcc/graphite-isl-ast-to-gimple.c:2516 >0x10d4653 >translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences(basic_block_def*, >edge_def*, vec<tree_node*, va_heap, vl_ptr>) > /vol/gcc/src/hg/trunk/local/gcc/graphite-isl-ast-to-gimple.c:2717 >0x10d4ecb >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*> > >&) > /vol/gcc/src/hg/trunk/local/gcc/graphite-isl-ast-to-gimple.c:835 >0x10d5147 >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*> > >&) > /vol/gcc/src/hg/trunk/local/gcc/graphite-isl-ast-to-gimple.c:649 >0x10d53ab >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*> >> >&) > /vol/gcc/src/hg/trunk/local/gcc/graphite-isl-ast-to-gimple.c:752 >0x10d5477 >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*> >> >&) > /vol/gcc/src/hg/trunk/local/gcc/graphite-isl-ast-to-gimple.c:864 >0x10d5147 >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*> > >&) > /vol/gcc/src/hg/trunk/local/gcc/graphite-isl-ast-to-gimple.c:649 >0x10d53ab >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*> >> >&) > /vol/gcc/src/hg/trunk/local/gcc/graphite-isl-ast-to-gimple.c:752 >0x10d59cf graphite_regenerate_ast_isl(scop*) > /vol/gcc/src/hg/trunk/local/gcc/graphite-isl-ast-to-gimple.c:2954 >0x10cbb23 graphite_transform_loops() > /vol/gcc/src/hg/trunk/local/gcc/graphite.c:442 >0x10ccbe7 graphite_transforms > /vol/gcc/src/hg/trunk/local/gcc/graphite.c:486 >0x10ccbe7 execute > /vol/gcc/src/hg/trunk/local/gcc/graphite.c:563 > >and several more. I'm seeing this on 32-bit Solaris/SPARC, >Solaris/x86, >and Linux/x86_64.
What ISL Versions are affected? >Besides, there's > >+UNRESOLVED: gfortran.dg/graphite/pr42393-1.f90 -O >scan-tree-dump-times graphite "code generation error" 1 > >for both 32 and 64-bit. The log indicates > >gfortran.dg/graphite/pr42393-1.f90 -O : dump file does not exist > >and indeed the test lacks -fdump-tree-graphite-details contrary to >ChangeLog. Oops, I must have missed that one. Will fix tomorrow. Richard. > Rainer