2017-10-20 Richard Biener <rguenther@suse.de>
authorRichard Biener <rguenther@suse.de>
Fri, 20 Oct 2017 10:49:24 +0000 (10:49 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Fri, 20 Oct 2017 10:49:24 +0000 (10:49 +0000)
* graphite-isl-ast-to-gimple.c
(translate_isl_ast_to_gimple::graphite_copy_stmts_from_block):
Remove return value and simplify, dump copied stmt after lhs
adjustment.
(translate_isl_ast_to_gimple::translate_isl_ast_node_user):
Reduce dump verbosity.
(gsi_insert_earliest): Likewise.
(translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Adjust.
* graphite.c (print_global_statistics): Adjust dumping.
(print_graphite_scop_statistics): Likewise.
(print_graphite_statistics): Do not dump loops here.
(graphite_transform_loops): But here.

From-SVN: r253930

gcc/ChangeLog
gcc/graphite-isl-ast-to-gimple.c
gcc/graphite.c

index d0ca16c28208f3db84bd97892e9bc623c66024b7..2bb52cf1bda7c5da49420dc194ea708aec88dcd4 100644 (file)
@@ -1,3 +1,18 @@
+2017-10-20  Richard Biener  <rguenther@suse.de>
+
+       * graphite-isl-ast-to-gimple.c
+       (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block):
+       Remove return value and simplify, dump copied stmt after lhs
+       adjustment.
+       (translate_isl_ast_to_gimple::translate_isl_ast_node_user):
+       Reduce dump verbosity.
+       (gsi_insert_earliest): Likewise.
+       (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Adjust.
+       * graphite.c (print_global_statistics): Adjust dumping.
+       (print_graphite_scop_statistics): Likewise.
+       (print_graphite_statistics): Do not dump loops here.
+       (graphite_transform_loops): But here.
+
 2017-10-20  Nicolas Roche  <roche@adacore.com>
 
        * configure.ac (ACX_PROG_GNAT): Append "libgnat" to the include dir.
index e929193219ddce2b80fbf36cc89350722edf425a..b39ac5441c3cccb89e652c3cf1f4dbb266f9cfed 100644 (file)
@@ -191,7 +191,7 @@ class translate_isl_ast_to_gimple
 
   tree get_rename_from_scev (tree old_name, gimple_seq *stmts, loop_p loop,
                             vec<tree> iv_map);
-  bool graphite_copy_stmts_from_block (basic_block bb, basic_block new_bb,
+  void graphite_copy_stmts_from_block (basic_block bb, basic_block new_bb,
                                       vec<tree> iv_map);
   edge copy_bb_and_scalar_dependences (basic_block bb, edge next_e,
                                       vec<tree> iv_map);
@@ -791,13 +791,12 @@ translate_isl_ast_node_user (__isl_keep isl_ast_node *node,
   isl_ast_expr_free (user_expr);
 
   basic_block old_bb = GBB_BB (gbb);
-  if (dump_file)
+  if (dump_file && (dump_flags & TDF_DETAILS))
     {
       fprintf (dump_file,
               "[codegen] copying from bb_%d on edge (bb_%d, bb_%d)\n",
               old_bb->index, next_e->src->index, next_e->dest->index);
       print_loops_bb (dump_file, GBB_BB (gbb), 0, 3);
-
     }
 
   next_e = copy_bb_and_scalar_dependences (old_bb, next_e, iv_map);
@@ -807,7 +806,7 @@ translate_isl_ast_node_user (__isl_keep isl_ast_node *node,
   if (codegen_error_p ())
     return NULL;
 
-  if (dump_file)
+  if (dump_file && (dump_flags & TDF_DETAILS))
     {
       fprintf (dump_file, "[codegen] (after copy) new basic block\n");
       print_loops_bb (dump_file, next_e->src, 0, 3);
@@ -1049,9 +1048,9 @@ gsi_insert_earliest (gimple_seq seq)
 
       if (dump_file)
        {
-         fprintf (dump_file, "[codegen] inserting statement: ");
+         fprintf (dump_file, "[codegen] inserting statement in BB %d: ",
+                  gimple_bb (use_stmt)->index);
          print_gimple_stmt (dump_file, use_stmt, 0, TDF_VOPS | TDF_MEMSYMS);
-         print_loops_bb (dump_file, gimple_bb (use_stmt), 0, 3);
        }
     }
 }
@@ -1122,7 +1121,7 @@ should_copy_to_new_region (gimple *stmt, sese_info_p region)
 /* Duplicates the statements of basic block BB into basic block NEW_BB
    and compute the new induction variables according to the IV_MAP.  */
 
-bool translate_isl_ast_to_gimple::
+void translate_isl_ast_to_gimple::
 graphite_copy_stmts_from_block (basic_block bb, basic_block new_bb,
                                vec<tree> iv_map)
 {
@@ -1139,7 +1138,6 @@ graphite_copy_stmts_from_block (basic_block bb, basic_block new_bb,
       /* Create a new copy of STMT and duplicate STMT's virtual
         operands.  */
       gimple *copy = gimple_copy (stmt);
-      gsi_insert_after (&gsi_tgt, copy, GSI_NEW_STMT);
 
       /* Rather than not copying debug stmts we reset them.
          ???  Where we can rewrite uses without inserting new
@@ -1154,12 +1152,6 @@ graphite_copy_stmts_from_block (basic_block bb, basic_block new_bb,
            gcc_unreachable ();
        }
 
-      if (dump_file)
-       {
-         fprintf (dump_file, "[codegen] inserting statement: ");
-         print_gimple_stmt (dump_file, copy, 0);
-       }
-
       maybe_duplicate_eh_stmt (copy, stmt);
       gimple_duplicate_stmt_histograms (cfun, copy, cfun, stmt);
 
@@ -1172,8 +1164,12 @@ graphite_copy_stmts_from_block (basic_block bb, basic_block new_bb,
          create_new_def_for (old_name, copy, def_p);
        }
 
-      if (codegen_error_p ())
-       return false;
+      gsi_insert_after (&gsi_tgt, copy, GSI_NEW_STMT);
+      if (dump_file)
+       {
+         fprintf (dump_file, "[codegen] inserting statement: ");
+         print_gimple_stmt (dump_file, copy, 0);
+       }
 
       /* For each SCEV analyzable SSA_NAME, rename their usage.  */
       ssa_op_iter iter;
@@ -1198,8 +1194,6 @@ graphite_copy_stmts_from_block (basic_block bb, basic_block new_bb,
 
       update_stmt (copy);
     }
-
-  return true;
 }
 
 
@@ -1236,11 +1230,7 @@ copy_bb_and_scalar_dependences (basic_block bb, edge next_e, vec<tree> iv_map)
       gsi_insert_after (&gsi_tgt, ass, GSI_NEW_STMT);
     }
 
-  if (!graphite_copy_stmts_from_block (bb, new_bb, iv_map))
-    {
-      set_codegen_error ();
-      return NULL;
-    }
+  graphite_copy_stmts_from_block (bb, new_bb, iv_map);
 
   /* Insert out-of SSA copies on the original BB outgoing edges.  */
   gsi_tgt = gsi_last_bb (new_bb);
index 5e0d66d107bb122bda33fb61b0639f752d767aa0..22d83307bd2256599f9fb0211860957f9ea3213f 100644 (file)
@@ -111,7 +111,7 @@ print_global_statistics (FILE* file)
   fprintf (file, "LOOPS:%ld, ", n_loops);
   fprintf (file, "CONDITIONS:%ld, ", n_conditions);
   fprintf (file, "STMTS:%ld)\n", n_stmts);
-  fprintf (file, "\nGlobal profiling statistics (");
+  fprintf (file, "Global profiling statistics (");
   fprintf (file, "BBS:");
   n_p_bbs.dump (file);
   fprintf (file, ", LOOPS:");
@@ -120,7 +120,7 @@ print_global_statistics (FILE* file)
   n_p_conditions.dump (file);
   fprintf (file, ", STMTS:");
   n_p_stmts.dump (file);
-  fprintf (file, ")\n");
+  fprintf (file, ")\n\n");
 }
 
 /* Print statistics for SCOP to FILE.  */
@@ -185,7 +185,7 @@ print_graphite_scop_statistics (FILE* file, scop_p scop)
   fprintf (file, "LOOPS:%ld, ", n_loops);
   fprintf (file, "CONDITIONS:%ld, ", n_conditions);
   fprintf (file, "STMTS:%ld)\n", n_stmts);
-  fprintf (file, "\nSCoP profiling statistics (");
+  fprintf (file, "SCoP profiling statistics (");
   fprintf (file, "BBS:");
   n_p_bbs.dump (file);
   fprintf (file, ", LOOPS:");
@@ -194,7 +194,7 @@ print_graphite_scop_statistics (FILE* file, scop_p scop)
   n_p_conditions.dump (file);
   fprintf (file, ", STMTS:");
   n_p_stmts.dump (file);
-  fprintf (file, ")\n");
+  fprintf (file, ")\n\n");
 }
 
 /* Print statistics for SCOPS to FILE.  */
@@ -203,15 +203,10 @@ static void
 print_graphite_statistics (FILE* file, vec<scop_p> scops)
 {
   int i;
-
   scop_p scop;
 
   FOR_EACH_VEC_ELT (scops, i, scop)
     print_graphite_scop_statistics (file, scop);
-
-  /* Print the loop structure.  */
-  print_loops (file, 2);
-  print_loops (file, 3);
 }
 
 /* Deletes all scops in SCOPS.  */
@@ -358,6 +353,13 @@ graphite_transform_loops (void)
   sort_sibling_loops (cfun);
   canonicalize_loop_closed_ssa_form ();
 
+  /* Print the loop structure.  */
+  if (dump_file && (dump_flags & TDF_DETAILS))
+    {
+      print_loops (dump_file, 2);
+      print_loops (dump_file, 3);
+    }
+
   calculate_dominance_info (CDI_POST_DOMINATORS);
   build_scops (&scops);
   free_dominance_info (CDI_POST_DOMINATORS);