Commit 141283 introduced new code in create_single_entry_edge, that breaks
polyhedron in linpk.f90, mdbx.f90, protein.f90, rnflow.f90, test_fpu.f90:

The code added was:

     {
+      edge e = single_succ_edge (region->entry);
+      int e_flags = e->flags;
+      int b_flags = region->entry->flags;
+      bool irreducible_e = e_flags & EDGE_IRREDUCIBLE_LOOP;
+      bool irreducible_b = region->entry->flags & BB_IRREDUCIBLE_LOOP;
       edge forwarder = split_block_after_labels (region->entry);
+
+      if (irreducible_e)
+       forwarder->flags = e_flags;
+
+      if (irreducible_b)
+       forwarder->dest->flags = b_flags;
+
       region->entry = forwarder->dest;

It fails e.g. in:
linpk.f90: In function 'daxpy':
linpk.f90:290: internal compiler error: in single_succ_edge, at
basic-block.h:642


-- 
           Summary: [graphite-branch] Invalid use of single_succ_edge in
                    create_single_entry_edge
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: grosser at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37891

Reply via email to