Message ID | 1288445116.3588.5.camel@linux-fd1f.site |
---|---|
State | New |
Headers | show |
On Saturday 30 October 2010 15:25:16 Thomas Koenig wrote: > Here's a patch which implements these options. Regression-tested, > also tested with "make info", "make dvi" and "make pdf". > > OK for trunk? > > 2010-10-30 Thomas Koenig <tkoenig@gcc.gnu.org> > > * gfortran.h (gfc_option_t): Replace dump_parse_tree by > dump_fortran_original and add dump_fortran_optimized. > * lang.opt: Add fdump-fortran-original and > fdump-fortran-optimized. Document that fdump-parse-tree is > deprecated. > * gfortran.texi: Add -fdump-fortran-original and > -fdump-fortran-optimized. -fdump-parse-tree is deprecated. > * frontend-passes.c (gfc_run_passes): If optimizing and > if gfc_option.dump_fortran_optimized is set, dump the parse tree > after optimization. > * parse.c: Rename gfc_option.dump_parse_tree to > gfc_option.dump_fortran_original. > * options.c (gfc_init_options): Rename gfc_option.dump_parse_tree > to gfc_option.dump_fortran_original and handle > gfc_option.dump_fortran_optimize. > (gfc_post_options): Rename gfc_option.dump_parse_tree > to gfc_option.dump_fortran_original. > (gfc_handle_option): Rename OPT_fdump_parse_tree to > OPT_fdump_fortran_original and gfc_option.dump_parse_tree > to gfc_option.dump_fortran_original. Handle > OPT_fdump_fortran_optimized. > > > > Should we keep fdump-parse-tree around as an alias for 4.6, then remove > > > it for 4.7? > > > > Well, in principle one should really avoid removing flags; thus, we can > > deprecate it, but I am not sure that we should already remove it in 4.7. > > (On the other hand, -fdump-parse-tree is presumably extremely rarely > > used by users and also I hardly every use it - thus, it does not matter > > as much as removing -fbounds-check in favour of -fcheck=bounds would do.) > > I think we can defer that decision until 4.7. > > Thomas > Index: invoke.texi > =================================================================== > --- invoke.texi (Revision 166074) > +++ invoke.texi (Arbeitskopie) > @@ -143,8 +143,8 @@ and warnings}. > > @item Debugging Options > @xref{Debugging Options,,Options for debugging your program or GNU Fortran}. > -@gccoptlist{-fdump-parse-tree -ffpe-trap=@var{list} @gol > --fdump-core -fbacktrace} > +@gccoptlist{-fdump-fortran-original -fdump-fortran-optimized @gol > +-ffpe-trap=@var{list} -fdump-core -fbacktrace -fdump-parse-tree} > > @item Directory Options > @xref{Directory Options,,Options for directory search}. > @@ -879,10 +879,23 @@ GNU Fortran has various special options that are u > either your program or the GNU Fortran compiler. > > @table @gcctabopt > -@item -fdump-parse-tree > +@item -fdump-fortran-original > +@opindex @code{fdump-fortran-original} > +Output the internal parse tree after translating the source program > +into internal representation. Only really useful for debugging the > +GNU Fortran compiler itself. This option is deprecated; use > +@code{-fdump-fortran-original} instead. maximum recursion depth exceeded ;-) Also, I would prefer "Output the internal parse tree _after parsing the source program_." as the internal representation seems ambiguous to me (front-end vs middle-end representation). Actually, I don't like my sentence either ("parse tree after parsing" isn't very nice). Oh well... > + > +@item -fdump-optimized-tree > +@opindex @code{fdump-fortran-optimized} > +Output the parse tree after front-end optimization. Only really > +useful for debugging the GNU Fortran compiler itself. > + > @opindex @code{fdump-parse-tree} > -Output the internal parse tree before starting code generation. Only > -really useful for debugging the GNU Fortran compiler itself. > +Output the internal parse tree after translating the source program > +into internal representation. Only really useful for debugging the > +GNU Fortran compiler itself. This option is deprecated; use > +@code{-fdump-fortran-original} instead. > > @item -ffpe-trap=@var{list} > @opindex @code{ffpe-trap=}@var{list} OK with the documentation fixed. Thanks Mikael
Am Samstag, den 30.10.2010, 15:58 +0200 schrieb Mikael Morin: > > OK with the documentation fixed. Thanks! Committed as rev. 166091, after fixing the recursive reference. Thomas
Index: gfortran.h =================================================================== --- gfortran.h (Revision 166074) +++ gfortran.h (Arbeitskopie) @@ -2178,7 +2178,8 @@ typedef struct int max_continue_fixed; int max_continue_free; int max_identifier_length; - int dump_parse_tree; + int dump_fortran_original; + int dump_fortran_optimized; int warn_aliasing; int warn_ampersand; Index: lang.opt =================================================================== --- lang.opt (Revision 166074) +++ lang.opt (Arbeitskopie) @@ -358,10 +358,18 @@ fdump-core Fortran Dump a core file when a runtime error occurs -fdump-parse-tree +fdump-fortran-original Fortran Display the code tree after parsing +fdump-fortran-optimized +Fortran +Display the code tree after front end optimization + +fdump-parse-tree +Fortran +Display the code tree after parsing; deprecated option + fexternal-blas Fortran Specify that an external BLAS library should be used for matmul calls on large-size arrays Index: invoke.texi =================================================================== --- invoke.texi (Revision 166074) +++ invoke.texi (Arbeitskopie) @@ -143,8 +143,8 @@ and warnings}. @item Debugging Options @xref{Debugging Options,,Options for debugging your program or GNU Fortran}. -@gccoptlist{-fdump-parse-tree -ffpe-trap=@var{list} @gol --fdump-core -fbacktrace} +@gccoptlist{-fdump-fortran-original -fdump-fortran-optimized @gol +-ffpe-trap=@var{list} -fdump-core -fbacktrace -fdump-parse-tree} @item Directory Options @xref{Directory Options,,Options for directory search}. @@ -879,10 +879,23 @@ GNU Fortran has various special options that are u either your program or the GNU Fortran compiler. @table @gcctabopt -@item -fdump-parse-tree +@item -fdump-fortran-original +@opindex @code{fdump-fortran-original} +Output the internal parse tree after translating the source program +into internal representation. Only really useful for debugging the +GNU Fortran compiler itself. This option is deprecated; use +@code{-fdump-fortran-original} instead. + +@item -fdump-optimized-tree +@opindex @code{fdump-fortran-optimized} +Output the parse tree after front-end optimization. Only really +useful for debugging the GNU Fortran compiler itself. + @opindex @code{fdump-parse-tree} -Output the internal parse tree before starting code generation. Only -really useful for debugging the GNU Fortran compiler itself. +Output the internal parse tree after translating the source program +into internal representation. Only really useful for debugging the +GNU Fortran compiler itself. This option is deprecated; use +@code{-fdump-fortran-original} instead. @item -ffpe-trap=@var{list} @opindex @code{ffpe-trap=}@var{list} Index: frontend-passes.c =================================================================== --- frontend-passes.c (Revision 166074) +++ frontend-passes.c (Arbeitskopie) @@ -42,7 +42,11 @@ void gfc_run_passes (gfc_namespace *ns) { if (optimize) - optimize_namespace (ns); + { + optimize_namespace (ns); + if (gfc_option.dump_fortran_optimized) + gfc_dump_parse_tree (ns, stdout); + } } /* Callback for each gfc_code node invoked through gfc_code_walker Index: parse.c =================================================================== --- parse.c (Revision 166074) +++ parse.c (Arbeitskopie) @@ -4373,7 +4373,7 @@ loop: gfc_resolve (gfc_current_ns); /* Dump the parse tree if requested. */ - if (gfc_option.dump_parse_tree) + if (gfc_option.dump_fortran_original) gfc_dump_parse_tree (gfc_current_ns, stdout); gfc_get_errors (NULL, &errors); @@ -4431,7 +4431,7 @@ prog_units: /* Do the parse tree dump. */ gfc_current_ns - = gfc_option.dump_parse_tree ? gfc_global_ns_list : NULL; + = gfc_option.dump_fortran_original ? gfc_global_ns_list : NULL; for (; gfc_current_ns; gfc_current_ns = gfc_current_ns->sibling) { Index: options.c =================================================================== --- options.c (Revision 166074) +++ options.c (Arbeitskopie) @@ -90,7 +90,8 @@ gfc_init_options (unsigned int decoded_options_cou gfc_option.flag_max_array_constructor = 65535; gfc_option.convert = GFC_CONVERT_NATIVE; gfc_option.record_marker = 0; - gfc_option.dump_parse_tree = 0; + gfc_option.dump_fortran_original = 0; + gfc_option.dump_fortran_optimized = 0; gfc_option.warn_aliasing = 0; gfc_option.warn_ampersand = 0; @@ -270,7 +271,7 @@ gfc_post_options (const char **pfilename) gfc_option.rtcheck |= GFC_RTCHECK_BOUNDS; if (flag_compare_debug) - gfc_option.dump_parse_tree = 0; + gfc_option.dump_fortran_original = 0; /* Verify the input file name. */ if (!filename || strcmp (filename, "-") == 0) @@ -686,10 +687,15 @@ gfc_handle_option (size_t scode, const char *arg, gfc_option.flag_d_lines = 0; break; + case OPT_fdump_fortran_original: case OPT_fdump_parse_tree: - gfc_option.dump_parse_tree = value; + gfc_option.dump_fortran_original = value; break; + case OPT_fdump_fortran_optimized: + gfc_option.dump_fortran_optimized = value; + break; + case OPT_ffixed_form: gfc_option.source_form = FORM_FIXED; break;