[PATCH] New flag: -fgraphite-dump-cloog.
Sebastian Pop
sebpop@gmail.com
Mon Sep 20 19:34:00 GMT 2010
On Mon, Sep 20, 2010 at 13:57, Andreas Simbürger
<simbuerg@googlemail.com> wrote:
> Introduce a new flag: -fgraphite-dump-cloog. If enabled, graphite
> dumps each SCoP into a CLooG input file for further debugging.
> The naming follows the naming scheme of -fgraphite-write:
> <basename>.<scopnumber>.cloog
>
> The file is dumped into the current working directory.
>
> 2010-09-16 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
>
> * common.opt (fgraphite-dump-cloog): New flag.
> * doc/invoke.texi (-fgraphite-dump-cloog): Documented.
> * graphite-clast-to-gimple.c (init_cloog_input_file): New.
> (build_cloog_prog): Dump CLooG input file when
> flag_graphite_dump_cloog is set.
Thanks. I will commit this to the graphite branch.
Sebastian
> ---
> gcc/ChangeLog.graphite | 8 ++++++++
> gcc/common.opt | 5 +++++
> gcc/doc/invoke.texi | 8 ++++++++
> gcc/graphite-clast-to-gimple.c | 35 +++++++++++++++++++++++++++++++++++
> 4 files changed, 56 insertions(+), 0 deletions(-)
>
> diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite
> index f7fca3a..4a703bf 100644
> --- a/gcc/ChangeLog.graphite
> +++ b/gcc/ChangeLog.graphite
> @@ -1,3 +1,11 @@
> +2010-09-16 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
> +
> + * common.opt (fgraphite-dump-cloog): New flag.
> + * doc/invoke.texi (-fgraphite-dump-cloog): Documented.
> + * graphite-clast-to-gimple.c (init_cloog_input_file): New.
> + (build_cloog_prog): Dump CLooG input file when
> + flag_graphite_dump_cloog is set.
> +
> 2010-09-09 Sebastian Pop <sebastian.pop@amd.com>
>
> * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
> diff --git a/gcc/common.opt b/gcc/common.opt
> index 60de165..fea545c 100644
> --- a/gcc/common.opt
> +++ b/gcc/common.opt
> @@ -683,6 +683,11 @@ fgraphite-read
> Common Report Var(flag_graphite_read) Optimization
> Read Graphite transformation file
>
> +; This option is not documented yet as it is for debugging only.
> +fgraphite-dump-cloog
> +Common Report Var(flag_graphite_dump_cloog) Optimization
> +Write CLooG compatible input file
> +
> ; This option is not documented as it will be removed
> floop-parallelize-all
> Common Report Var(flag_loop_parallelize_all) Optimization
> diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
> index 61b1d45..a70a084 100644
> --- a/gcc/doc/invoke.texi
> +++ b/gcc/doc/invoke.texi
> @@ -311,6 +311,7 @@ Objective-C and Objective-C++ Dialects}.
> -feliminate-unused-debug-symbols -femit-class-debug-always @gol
> -fenable-icf-debug @gol
> -fgraphite-read -fgraphite-write @gol
> +-fgraphite-dump-cloog @gol
> -fmem-report -fpre-ipa-mem-report -fpost-ipa-mem-report -fprofile-arcs @gol
> -frandom-seed=@var{string} -fsched-verbose=@var{n} @gol
> -fsel-sched-verbose -fsel-sched-dump-cfg -fsel-sched-pipelining-verbose @gol
> @@ -6934,6 +6935,13 @@ program is described in a separate file. For a program @code{file.c}
> that has 3 scops, the dumped files are named @code{file.0.graphite},
> @code{file.1.graphite}, and @code{file.2.graphite}.
>
> +@item -fgraphite-dump-cloog
> +@opindex fgraphite-dump-cloog
> +Enable graphite to dump a cloog input file for each scop. Each scop in
> +the program is stored in a separate file. For a program @code{file.c}
> +that has 3 scops, the dumped files are named @code{file.0.cloog},
> +@code{file.1.cloog} and @code{file.2.graphite}.
> +
> @item -floop-flatten
> @opindex floop-flatten
> Removes the loop nesting structure: transforms the loop nest into a
> diff --git a/gcc/graphite-clast-to-gimple.c b/gcc/graphite-clast-to-gimple.c
> index 6899c78..14e4f07 100644
> --- a/gcc/graphite-clast-to-gimple.c
> +++ b/gcc/graphite-clast-to-gimple.c
> @@ -1217,6 +1217,31 @@ initialize_cloog_names (scop_p scop, CloogProgram *prog)
> scattering);
> }
>
> +/* Initialize a CLooG input file. */
> +
> +static FILE *
> +init_cloog_input_file (int scop_number)
> +{
> + FILE *graphite_out_file;
> + int len = strlen (dump_base_name);
> + char *dumpname = XNEWVEC (char, len + 25);
> + char *s_scop_number = XNEWVEC (char, 15);
> +
> + memcpy (dumpname, dump_base_name, len + 1);
> + strip_off_ending (dumpname, len);
> + sprintf (s_scop_number, ".%d", scop_number);
> + strcat (dumpname, s_scop_number);
> + strcat (dumpname, ".cloog");
> + graphite_out_file = fopen (dumpname, "w+b");
> +
> + if (graphite_out_file == 0)
> + fatal_error ("can%'t open %s for writing: %m", dumpname);
> +
> + free (dumpname);
> +
> + return graphite_out_file;
> +}
> +
> /* Build cloog program for SCoP. */
>
> static void
> @@ -1307,6 +1332,16 @@ build_cloog_prog (scop_p scop, CloogProgram *prog,
> /* Extract scalar dimensions to simplify the code generation problem. */
> cloog_program_extract_scalars (prog, scattering, options);
>
> + /* Dump a .cloog input file, if requested. */
> + if (flag_graphite_dump_cloog)
> + {
> + static size_t file_scop_number = 0;
> + FILE *cloog_file = init_cloog_input_file (file_scop_number);
> +
> + cloog_program_dump_cloog (cloog_file, prog, scattering);
> + ++file_scop_number;
> + }
> +
> /* Apply scattering. */
> cloog_program_scatter (prog, scattering, options);
> free_scattering (scattering);
> --
> 1.7.2.3
>
>
More information about the Gcc-patches
mailing list