diff options
author | Thomas Koenig <tkoenig@gcc.gnu.org> | 2010-10-30 15:19:27 +0000 |
---|---|---|
committer | Thomas Koenig <tkoenig@gcc.gnu.org> | 2010-10-30 15:19:27 +0000 |
commit | 1607a827d12cbb937bf8e7aa4898ff04205cd263 (patch) | |
tree | 0608ea9d977a8fa74b9ef3db8ea43a4d8e2e65a8 | |
parent | dcedcddb5aabef25f66c651a2c35b9974ceff3cb (diff) | |
download | gcc-1607a827d12cbb937bf8e7aa4898ff04205cd263.zip gcc-1607a827d12cbb937bf8e7aa4898ff04205cd263.tar.gz gcc-1607a827d12cbb937bf8e7aa4898ff04205cd263.tar.bz2 |
gfortran.h (gfc_option_t): Replace dump_parse_tree by dump_fortran_original and add dump_fortran_optimized.
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.
From-SVN: r166091
-rw-r--r-- | gcc/fortran/ChangeLog | 24 | ||||
-rw-r--r-- | gcc/fortran/frontend-passes.c | 6 | ||||
-rw-r--r-- | gcc/fortran/gfortran.h | 3 | ||||
-rw-r--r-- | gcc/fortran/invoke.texi | 22 | ||||
-rw-r--r-- | gcc/fortran/lang.opt | 10 | ||||
-rw-r--r-- | gcc/fortran/options.c | 12 | ||||
-rw-r--r-- | gcc/fortran/parse.c | 4 |
7 files changed, 68 insertions, 13 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 0f783b53..9dae56a 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,27 @@ +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. + 2010-10-30 Janus Weil <janus@gcc.gnu.org> PR fortran/44917 diff --git a/gcc/fortran/frontend-passes.c b/gcc/fortran/frontend-passes.c index c089302..6cea263 100644 --- a/gcc/fortran/frontend-passes.c +++ b/gcc/fortran/frontend-passes.c @@ -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 diff --git a/gcc/fortran/gfortran.h b/gcc/fortran/gfortran.h index 33c7ba6..b96dd64 100644 --- a/gcc/fortran/gfortran.h +++ b/gcc/fortran/gfortran.h @@ -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; diff --git a/gcc/fortran/invoke.texi b/gcc/fortran/invoke.texi index 9e2bc75..bacab6b 100644 --- a/gcc/fortran/invoke.texi +++ b/gcc/fortran/invoke.texi @@ -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,22 @@ GNU Fortran has various special options that are used for debugging 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. + +@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} diff --git a/gcc/fortran/lang.opt b/gcc/fortran/lang.opt index f60eaabe..6088730 100644 --- a/gcc/fortran/lang.opt +++ b/gcc/fortran/lang.opt @@ -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 diff --git a/gcc/fortran/options.c b/gcc/fortran/options.c index a65a63a..36dd9c8 100644 --- a/gcc/fortran/options.c +++ b/gcc/fortran/options.c @@ -90,7 +90,8 @@ gfc_init_options (unsigned int decoded_options_count, 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,8 +687,13 @@ gfc_handle_option (size_t scode, const char *arg, int value, 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: diff --git a/gcc/fortran/parse.c b/gcc/fortran/parse.c index 89ffbaf..2e43824 100644 --- a/gcc/fortran/parse.c +++ b/gcc/fortran/parse.c @@ -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) { |