aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Koenig <tkoenig@gcc.gnu.org>2010-10-30 15:19:27 +0000
committerThomas Koenig <tkoenig@gcc.gnu.org>2010-10-30 15:19:27 +0000
commit1607a827d12cbb937bf8e7aa4898ff04205cd263 (patch)
tree0608ea9d977a8fa74b9ef3db8ea43a4d8e2e65a8
parentdcedcddb5aabef25f66c651a2c35b9974ceff3cb (diff)
downloadgcc-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/ChangeLog24
-rw-r--r--gcc/fortran/frontend-passes.c6
-rw-r--r--gcc/fortran/gfortran.h3
-rw-r--r--gcc/fortran/invoke.texi22
-rw-r--r--gcc/fortran/lang.opt10
-rw-r--r--gcc/fortran/options.c12
-rw-r--r--gcc/fortran/parse.c4
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)
{