From d22380ccd26489674065a386af0c5c112d2ad8b0 Mon Sep 17 00:00:00 2001 From: spop Date: Wed, 31 Mar 2010 18:36:54 +0000 Subject: [PATCH] Make print_scop output the scoplib format. 2010-03-16 Sebastian Pop * graphite-poly.c (print_scattering_function): Pretty print following the scoplib format. (print_pdr): Same. (print_pbb_domain): Same. (dump_gbb_cases): Same. (dump_gbb_conditions): Same. (print_pdrs): Same. (print_pbb): Same. (print_scop_params): Same. (print_scop_context): Same. (print_scop): Same. (print_pbb_body): New. (lst_indent_to): New. (print_lst): Start new lines with a #. * graphite-poly.h (pbb_bb): New. (pbb_index): Use pbb_bb. * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of disjuncts. * tree-data-ref.c (dump_data_reference): Start new lines with a #. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@157883 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog.graphite | 22 ++++ gcc/graphite-poly.c | 287 +++++++++++++++---------------------------------- 2 files changed, 106 insertions(+), 203 deletions(-) diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite index 1475ef6979b..fc7e16f36be 100644 --- a/gcc/ChangeLog.graphite +++ b/gcc/ChangeLog.graphite @@ -1,3 +1,25 @@ +2010-03-16 Sebastian Pop + + * graphite-poly.c (print_scattering_function): Pretty print following + the scoplib format. + (print_pdr): Same. + (print_pbb_domain): Same. + (dump_gbb_cases): Same. + (dump_gbb_conditions): Same. + (print_pdrs): Same. + (print_pbb): Same. + (print_scop_params): Same. + (print_scop_context): Same. + (print_scop): Same. + (print_pbb_body): New. + (lst_indent_to): New. + (print_lst): Start new lines with a #. + * graphite-poly.h (pbb_bb): New. + (pbb_index): Use pbb_bb. + * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of + disjuncts. + * tree-data-ref.c (dump_data_reference): Start new lines with a #. + 2010-03-13 Sebastian Pop PR middle-end/43351 diff --git a/gcc/graphite-poly.c b/gcc/graphite-poly.c index d25796f5dcf..3dfdb819c8e 100644 --- a/gcc/graphite-poly.c +++ b/gcc/graphite-poly.c @@ -148,8 +148,17 @@ print_scattering_function_1 (FILE *file, poly_bb_p pbb, int verbosity) fprintf (file, "# scattering bb_%d (\n", pbb_index (pbb)); fprintf (file, "# eq"); - for (i = 0; i < pbb_nb_scattering_transform (pbb); i++) - fprintf (file, " s%d", (int) i); + if (PBB_TRANSFORMED_SCATTERING (pbb) + || PBB_ORIGINAL_SCATTERING (pbb)) + fprintf (file, "# Scattering function is provided\n1\n"); + else + { + fprintf (file, "# Scattering function is not provided\n0\n"); + return; + } + + fprintf (file, "# scattering bb_%d (\n", pbb_index (pbb)); + fprintf (file, "# eq"); for (i = 0; i < pbb_nb_local_vars (pbb); i++) fprintf (file, " lv%d", (int) i); @@ -183,24 +192,14 @@ print_scattering_function (FILE *file, poly_bb_p pbb, int verbosity) if (!PBB_TRANSFORMED (pbb)) return; - if (PBB_TRANSFORMED_SCATTERING (pbb) - || PBB_ORIGINAL_SCATTERING (pbb)) - { - if (verbosity > 0) - fprintf (file, "# Scattering function is provided\n"); - - fprintf (file, "1\n"); - } - else - { - if (verbosity > 0) - fprintf (file, "# Scattering function is not provided\n"); - - fprintf (file, "0\n"); - return; - } + /* Number of disjunct components. Remove this when + PBB_TRANSFORMED_SCATTERING will be a pointset_powerset. */ + fprintf (file, "1\n"); + ppl_print_polyhedron_matrix (file, PBB_TRANSFORMED_SCATTERING (pbb) + ? PBB_TRANSFORMED_SCATTERING (pbb) + : PBB_ORIGINAL_SCATTERING (pbb)); - print_scattering_function_1 (file, pbb, verbosity); + fprintf (file, "#)\n"); } /* Prints to FILE the iteration domain of PBB, at some VERBOSITY @@ -455,7 +454,9 @@ print_pdr_access_layout (FILE *file, poly_dr_p pdr) void print_pdr (FILE *file, poly_dr_p pdr, int verbosity) { - if (verbosity > 1) + fprintf (file, "# pdr_%d (", PDR_ID (pdr)); + + switch (PDR_TYPE (pdr)) { fprintf (file, "# pdr_%d (", PDR_ID (pdr)); @@ -486,13 +487,12 @@ print_pdr (FILE *file, poly_dr_p pdr, int verbosity) print_pdr_access_layout (file, pdr); } + fprintf (file, "# data accesses (\n"); + print_pdr_access_layout (file, pdr); ppl_print_powerset_matrix (file, PDR_ACCESSES (pdr)); + fprintf (file, "#)\n"); - if (verbosity > 0) - fprintf (file, "#)\n"); - - if (verbosity > 1) - fprintf (file, "#)\n"); + fprintf (file, "#)\n"); } /* Prints to STDERR the polyhedral data reference PDR, at some @@ -558,10 +558,8 @@ print_pbb_domain (FILE *file, poly_bb_p pbb, int verbosity) if (!PBB_DOMAIN (pbb)) return; - if (verbosity > 0) - { - fprintf (file, "# Iteration domain of bb_%d (\n", GBB_BB (gbb)->index); - fprintf (file, "# eq"); + fprintf (file, "# Iteration domain of bb_%d (\n", GBB_BB (gbb)->index); + fprintf (file, "# eq"); for (i = 0; i < pbb_dim_iter_domain (pbb); i++) fprintf (file, " i%d", (int) i); @@ -577,8 +575,7 @@ print_pbb_domain (FILE *file, poly_bb_p pbb, int verbosity) else fprintf (file, "0\n"); - if (verbosity > 0) - fprintf (file, "#)\n"); + fprintf (file, "#)\n"); } /* Dump the cases of a graphite basic block GBB on FILE. */ @@ -648,18 +645,12 @@ print_pdrs (FILE *file, poly_bb_p pbb, int verbosity) if (VEC_length (poly_dr_p, PBB_DRS (pbb)) == 0) { - if (verbosity > 0) - fprintf (file, "# Access informations are not provided\n");\ - fprintf (file, "0\n"); + fprintf (file, "# Access informations are not provided\n0\n"); return; } - if (verbosity > 1) - fprintf (file, "# Data references (\n"); - - if (verbosity > 0) - fprintf (file, "# Access informations are provided\n"); - fprintf (file, "1\n"); + fprintf (file, "# Data references (\n"); + fprintf (file, "# Access informations are provided\n1\n"); for (i = 0; VEC_iterate (poly_dr_p, PBB_DRS (pbb), i, pdr); i++) if (PDR_TYPE (pdr) == PDR_READ) @@ -667,36 +658,20 @@ print_pdrs (FILE *file, poly_bb_p pbb, int verbosity) else nb_writes++; - if (verbosity > 1) - fprintf (file, "# Read data references (\n"); - - if (verbosity > 0) - fprintf (file, "# Read access informations\n"); - fprintf (file, "%d\n", nb_reads); - + fprintf (file, "# Read data references (\n"); + fprintf (file, "# Read access informations\n%d\n", nb_reads); for (i = 0; VEC_iterate (poly_dr_p, PBB_DRS (pbb), i, pdr); i++) if (PDR_TYPE (pdr) == PDR_READ) - print_pdr (file, pdr, verbosity); - - if (verbosity > 1) - fprintf (file, "#)\n"); - - if (verbosity > 1) - fprintf (file, "# Write data references (\n"); - - if (verbosity > 0) - fprintf (file, "# Write access informations\n"); - fprintf (file, "%d\n", nb_writes); + print_pdr (file, pdr); + fprintf (file, "#)\n"); + fprintf (file, "# Write data references (\n"); + fprintf (file, "# Write access informations\n%d\n", nb_writes); for (i = 0; VEC_iterate (poly_dr_p, PBB_DRS (pbb), i, pdr); i++) if (PDR_TYPE (pdr) != PDR_READ) - print_pdr (file, pdr, verbosity); - - if (verbosity > 1) - fprintf (file, "#)\n"); - - if (verbosity > 1) - fprintf (file, "#)\n"); + print_pdr (file, pdr); + fprintf (file, "#)\n"); + fprintf (file, "#)\n"); } /* Print to STDERR all the data references of PBB. */ @@ -733,26 +708,34 @@ print_pbb_body (FILE *file, poly_bb_p pbb, int verbosity) fprintf (file, "#)\n"); } -/* Print to FILE the domain and scattering function of PBB, at some - VERBOSITY level. */ +/* Print to FILE the body of PBB. */ -void -print_pbb (FILE *file, poly_bb_p pbb, int verbosity) +static void +print_pbb_body (FILE *file, poly_bb_p pbb) { - if (verbosity > 1) - { - fprintf (file, "# pbb_%d (\n", pbb_index (pbb)); - dump_gbb_conditions (file, PBB_BLACK_BOX (pbb)); - dump_gbb_cases (file, PBB_BLACK_BOX (pbb)); - } + fprintf (file, "# Body (\n"); + fprintf (file, "# Statement body is provided\n1\n"); + fprintf (file, "# Original iterator names\n# Iterator names are not provided yet.\n"); + fprintf (file, "# Statement body\n"); + fprintf (file, "{\n"); + dump_bb (pbb_bb (pbb), file, 0); + fprintf (file, "}\n"); + fprintf (file, "#)\n"); +} - print_pbb_domain (file, pbb, verbosity); - print_scattering_function (file, pbb, verbosity); - print_pdrs (file, pbb, verbosity); - print_pbb_body (file, pbb, verbosity); +/* Print to FILE the domain and scattering function of PBB. */ - if (verbosity > 1) - fprintf (file, "#)\n"); +void +print_pbb (FILE *file, poly_bb_p pbb, int verbosity) +{ + fprintf (file, "# pbb_%d (\n", pbb_index (pbb)); + dump_gbb_conditions (file, PBB_BLACK_BOX (pbb)); + dump_gbb_cases (file, PBB_BLACK_BOX (pbb)); + print_pbb_domain (file, pbb); + print_scattering_function (file, pbb); + print_pdrs (file, pbb); + print_pbb_body (file, pbb); + fprintf (file, "#)\n"); } /* Print to FILE the parameters of SCOP, at some VERBOSITY level. */ @@ -763,36 +746,19 @@ print_scop_params (FILE *file, scop_p scop, int verbosity) int i; tree t; - if (verbosity > 1) - fprintf (file, "# parameters (\n"); + fprintf (file, "# parameters (\n"); if (VEC_length (tree, SESE_PARAMS (SCOP_REGION (scop)))) - { - if (verbosity > 0) - fprintf (file, "# Parameter names are provided\n"); - - fprintf (file, "1\n"); - - if (verbosity > 0) - fprintf (file, "# Parameter names\n"); - } + fprintf (file, "# Parameter names are provided\n1\n# Parameter names \n"); else - { - if (verbosity > 0) - fprintf (file, "# Parameter names are not provided\n"); - fprintf (file, "0\n"); - } + fprintf (file, "# Parameter names are not provided\n0\n"); for (i = 0; VEC_iterate (tree, SESE_PARAMS (SCOP_REGION (scop)), i, t); i++) { print_generic_expr (file, t, 0); - fprintf (file, " "); + fprintf (file, " # p_%d \n", i); } - - fprintf (file, "\n"); - - if (verbosity > 1) - fprintf (file, "#)\n"); + fprintf (file, "#)\n"); } /* Print to FILE the context of SCoP, at some VERBOSITY level. */ @@ -802,10 +768,8 @@ print_scop_context (FILE *file, scop_p scop, int verbosity) { graphite_dim_t i; - if (verbosity > 0) - { - fprintf (file, "# Context (\n"); - fprintf (file, "# eq"); + fprintf (file, "# Context (\n"); + fprintf (file, "# eq"); for (i = 0; i < scop_nb_params (scop); i++) fprintf (file, " p%d", (int) i); @@ -818,43 +782,7 @@ print_scop_context (FILE *file, scop_p scop, int verbosity) else fprintf (file, "0 %d\n", (int) scop_nb_params (scop) + 2); - if (verbosity > 0) - fprintf (file, "# )\n"); -} - -/* Print to FILE the SCOP, at some VERBOSITY level. */ - -void -print_scop (FILE *file, scop_p scop, int verbosity) -{ - int i; - poly_bb_p pbb; - - fprintf (file, "SCoP #(\n"); - fprintf (file, "# Language\nGimple\n"); - print_scop_context (file, scop, verbosity); - print_scop_params (file, scop, verbosity); - - if (verbosity > 0) - fprintf (file, "# Number of statements\n"); - - fprintf (file, "%d\n",VEC_length (poly_bb_p, SCOP_BBS (scop))); - - for (i = 0; VEC_iterate (poly_bb_p, SCOP_BBS (scop), i, pbb); i++) - print_pbb (file, pbb, verbosity); - - if (verbosity > 1) - { - fprintf (file, "# original_lst (\n"); - print_lst (file, SCOP_ORIGINAL_SCHEDULE (scop), 0); - fprintf (file, "\n#)\n"); - - fprintf (file, "# transformed_lst (\n"); - print_lst (file, SCOP_TRANSFORMED_SCHEDULE (scop), 0); - fprintf (file, "\n#)\n"); - } - - fprintf (file, "#)\n"); + fprintf (file, "# )\n"); } /* Print to FILE the input file that CLooG would expect as input, at @@ -866,47 +794,12 @@ print_cloog (FILE *file, scop_p scop, int verbosity) int i; poly_bb_p pbb; - fprintf (file, "# SCoP (generated by GCC/Graphite\n"); - if (verbosity > 0) - fprintf (file, "# CLooG output language\n"); - fprintf (file, "c\n"); - - print_scop_context (file, scop, verbosity); - print_scop_params (file, scop, verbosity); - - if (verbosity > 0) - fprintf (file, "# Number of statements\n"); - - fprintf (file, "%d\n", VEC_length (poly_bb_p, SCOP_BBS (scop))); - - for (i = 0; VEC_iterate (poly_bb_p, SCOP_BBS (scop), i, pbb); i++) - { - if (verbosity > 1) - fprintf (file, "# pbb_%d (\n", pbb_index (pbb)); - - print_pbb_domain (file, pbb, verbosity); - fprintf (file, "0 0 0"); - - if (verbosity > 0) - fprintf (file, "# For future CLooG options.\n"); - else - fprintf (file, "\n"); - - if (verbosity > 1) - fprintf (file, "#)\n"); - } - - fprintf (file, "0"); - if (verbosity > 0) - fprintf (file, "# Don't set the iterator names.\n"); - else - fprintf (file, "\n"); - - if (verbosity > 0) - fprintf (file, "# Number of scattering functions\n"); - - fprintf (file, "%d\n", VEC_length (poly_bb_p, SCOP_BBS (scop))); - unify_scattering_dimensions (scop); + fprintf (file, "SCoP #(\n"); + fprintf (file, "# Language\nGimple\n"); + print_scop_context (file, scop); + print_scop_params (file, scop); + fprintf (file, "# Number of statements\n%d\n", + VEC_length (poly_bb_p, SCOP_BBS (scop))); for (i = 0; VEC_iterate (poly_bb_p, SCOP_BBS (scop), i, pbb); i++) { @@ -918,29 +811,17 @@ print_cloog (FILE *file, scop_p scop, int verbosity) if (verbosity > 1) fprintf (file, "# pbb_%d (\n", pbb_index (pbb)); - print_scattering_function_1 (file, pbb, verbosity); + fprintf (file, "# original_lst (\n"); + print_lst (file, SCOP_ORIGINAL_SCHEDULE (scop), 0); + fprintf (file, "\n#)\n"); - if (verbosity > 1) - fprintf (file, "#)\n"); - } - - fprintf (file, "0"); - if (verbosity > 0) - fprintf (file, "# Don't set the scattering dimension names.\n"); - else - fprintf (file, "\n"); + fprintf (file, "# transformed_lst (\n"); + print_lst (file, SCOP_TRANSFORMED_SCHEDULE (scop), 0); + fprintf (file, "\n#)\n"); fprintf (file, "#)\n"); } -/* Print to STDERR the domain of PBB, at some VERBOSITY level. */ - -void -debug_pbb_domain (poly_bb_p pbb, int verbosity) -{ - print_pbb_domain (stderr, pbb, verbosity); -} - /* Print to FILE the domain and scattering function of PBB, at some VERBOSITY level. */ -- 2.11.0