Bug 71380 - [7 Regression] internal compiler error: in copy_cond_phi_nodes, at graphite-isl-ast-to-gimple.c:2498
Summary: [7 Regression] internal compiler error: in copy_cond_phi_nodes, at graphite-i...
Status: RESOLVED DUPLICATE of bug 71575
Alias: None
Product: gcc
Classification: Unclassified
Component: tree-optimization (show other bugs)
Version: 7.0
: P3 normal
Target Milestone: 7.0
Assignee: Not yet assigned to anyone
URL:
Keywords: ice-on-valid-code
Depends on:
Blocks: graphite
  Show dependency treegraph
 
Reported: 2016-06-02 09:11 UTC by ktkachov
Modified: 2016-11-11 08:22 UTC (History)
2 users (show)

See Also:
Host:
Target:
Build:
Known to work: 6.1.0
Known to fail: 7.0
Last reconfirmed: 2016-11-11 00:00:00


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description ktkachov 2016-06-02 09:11:12 UTC
GCC trunk at r237026 ICEs on the testcase:

int *a;
int b, c, d, e, g;
char f;

void fn1() {
  for (; c;) {
    b = 0;
    for (; b <= 2; b++) {
      unsigned **h = (unsigned **) &a[b];
      *h = (g && (e = d)) != f++;
    }
  }
}

on aarch64 with -Ofast -floop-interchange.

mycrash.c: In function 'fn1':
mycrash.c:10:10: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
       *h = (g && (e = d)) != f++;
          ^
mycrash.c:5:6: internal compiler error: in copy_cond_phi_nodes, at graphite-isl-ast-to-gimple.c:2498
 void fn1() {
      ^~~
0x10a45c5 translate_isl_ast_to_gimple::copy_cond_phi_nodes(basic_block_def*, basic_block_def*, vec<tree_node*, va_heap, vl_ptr>)
        $SRC/gcc/graphite-isl-ast-to-gimple.c:2498
0x10a5030 translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences(basic_block_def*, edge_def*, vec<tree_node*, va_heap, vl_ptr>)
        $SRC/gcc/graphite-isl-ast-to-gimple.c:2787
0x10a57ed 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*> > >&)
        $SRC/gcc/graphite-isl-ast-to-gimple.c:936
0x10a599d translate_isl_ast_to_gimple::translate_isl_ast(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*> > >&)
        $SRC/gcc/graphite-isl-ast-to-gimple.c:1040
0x10a5eb4 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*> > >&)
        $SRC/gcc/graphite-isl-ast-to-gimple.c:965
0x10a59b3 translate_isl_ast_to_gimple::translate_isl_ast(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*> > >&)
        $SRC/gcc/graphite-isl-ast-to-gimple.c:1044
0x10a60d6 translate_isl_ast_to_gimple::translate_isl_ast_node_if(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*> > >&)
        $SRC/gcc/graphite-isl-ast-to-gimple.c:1004
0x10a598a translate_isl_ast_to_gimple::translate_isl_ast(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*> > >&)
        $SRC/gcc/graphite-isl-ast-to-gimple.c:1037
0x10a5eb4 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*> > >&)
        $SRC/gcc/graphite-isl-ast-to-gimple.c:965
0x10a59b3 translate_isl_ast_to_gimple::translate_isl_ast(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*> > >&)
        $SRC/gcc/graphite-isl-ast-to-gimple.c:1044
0x10a6467 graphite_regenerate_ast_isl(scop*)
        $SRC/gcc/graphite-isl-ast-to-gimple.c:3184
0x109db70 graphite_transform_loops()
        $SRC/gcc/graphite.c:329
0x109dcd4 graphite_transforms
        $SRC/gcc/graphite.c:356
0x109dcd4 execute
        $SRC/gcc/graphite.c:433
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.


This doesn't occur on the GCC 6 branch for me
Comment 1 Aldy Hernandez 2016-11-11 02:15:26 UTC
Confirmed on a cross build.  Started with:

commit 410372fef14173261ce8e547db98eafb3174921f
Author: rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Thu May 19 07:39:52 2016 +0000

    2016-05-19  Richard Biener  <rguenther@suse.de>
    
        PR tree-optimization/70729                                                      * passes.def: Move LIM pass before PRE.  Remove no longer
        required copyprop and move first DCE out of the loop pipeline.
    
        * gcc.dg/autopar/outer-6.c: Adjust to avoid redundant store.
        * gcc.dg/graphite/scop-18.c: Likewise.
        * gcc.dg/pr41783.c: Disable LIM.
        * gcc.dg/tree-ssa/loadpre10.c: Likewise.
        * gcc.dg/tree-ssa/loadpre23.c: Likewise.
        * gcc.dg/tree-ssa/loadpre24.c: Likewise.
        * gcc.dg/tree-ssa/loadpre25.c: Likewise.
        * gcc.dg/tree-ssa/loadpre4.c: Likewise.
        * gcc.dg/tree-ssa/loadpre8.c: Likewise.
        * gcc.dg/tree-ssa/ssa-pre-16.c: Likewise.
        * gcc.dg/tree-ssa/ssa-pre-18.c: Likewise.
        * gcc.dg/tree-ssa/ssa-pre-20.c: Likewise.
        * gcc.dg/tree-ssa/ssa-pre-3.c: Likewise.
        * gfortran.dg/pr42108.f90: Likewise.
    
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236440 138bc75d-0d04-0410-961f-82ee72b054a4
Comment 2 Richard Biener 2016-11-11 08:22:18 UTC
Duplicate of PR71575, same fix works.

*** This bug has been marked as a duplicate of bug 71575 ***