2017-05-22  Nathan Sidwell  <nathan@acm.org>

	gcc/
	* doc/invoke.texi (fdump-translation-unit): Delete documentation.
	(fdump-lang): Document 'raw' option.
	* dumpfile.h (TDI_tu): Delete.
	* dumpfile.c (dump_files): Remove translation-unit.
	(FIRST_AUTO_NUMBERED_DUMP): Decrement.
	gcc/cp/
	* cp-objcp-common.c (cp_register_dumps): Register raw dumper.
	* cp-tree.h (raw_dump_id): Declare.
	* decl2.c (raw_dump_id): Define.
	(dump_tu): Use raw_dump_id.
	gcc/c/
	* c-decl.c (c_parse_final_cleanups): Drop TDI_tu handling.

Index: c/c-decl.c
===================================================================
--- c/c-decl.c	(revision 248332)
+++ c/c-decl.c	(working copy)
@@ -11214,18 +11214,6 @@ c_parse_final_cleanups (void)
       dump_ada_specs (collect_all_refs, NULL);
     }
 
-  if (ext_block)
-    {
-      tree tmp = BLOCK_VARS (ext_block);
-      dump_flags_t flags;
-      FILE * stream = dump_begin (TDI_tu, &flags);
-      if (stream && tmp)
-	{
-	  dump_node (tmp, flags & ~TDF_SLIM, stream);
-	  dump_end (TDI_tu, stream);
-	}
-    }
-
   /* Process all file scopes in this compilation, and the external_scope,
      through wrapup_global_declarations.  */
   FOR_EACH_VEC_ELT (*all_translation_units, i, t)
Index: cp/cp-objcp-common.c
===================================================================
--- cp/cp-objcp-common.c	(revision 248332)
+++ cp/cp-objcp-common.c	(working copy)
@@ -359,6 +359,9 @@ cp_register_dumps (gcc::dump_manager *du
 {
   class_dump_id = dumps->dump_register
     (".class", "lang-class", "lang-class", DK_lang, OPTGROUP_NONE, false);
+
+  raw_dump_id = dumps->dump_register
+    (".raw", "lang-raw", "lang-raw", DK_lang, OPTGROUP_NONE, false);
 }
 
 void
Index: cp/cp-tree.h
===================================================================
--- cp/cp-tree.h	(revision 248332)
+++ cp/cp-tree.h	(working copy)
@@ -5776,6 +5776,7 @@ extern cp_parameter_declarator *no_param
 
 /* Various dump ids.  */
 extern int class_dump_id;
+extern int raw_dump_id;
 
 /* in call.c */
 extern bool check_dtor_name			(tree, tree);
Index: cp/decl2.c
===================================================================
--- cp/decl2.c	(revision 248332)
+++ cp/decl2.c	(working copy)
@@ -49,6 +49,9 @@ along with GCC; see the file COPYING3.
 #include "c-family/c-ada-spec.h"
 #include "asan.h"
 
+/* Id for dumping the raw trees.  */
+int raw_dump_id;
+ 
 extern cpp_reader *parse_in;
 
 /* This structure contains information about the initializations
@@ -4362,12 +4365,10 @@ static void
 dump_tu (void)
 {
   dump_flags_t flags;
-  FILE *stream = dump_begin (TDI_tu, &flags);
-
-  if (stream)
+  if (FILE *stream = dump_begin (raw_dump_id, &flags))
     {
       dump_node (global_namespace, flags & ~TDF_SLIM, stream);
-      dump_end (TDI_tu, stream);
+      dump_end (raw_dump_id, stream);
     }
 }
 
Index: doc/invoke.texi
===================================================================
--- doc/invoke.texi	(revision 248332)
+++ doc/invoke.texi	(working copy)
@@ -550,7 +550,6 @@ Objective-C and Objective-C++ Dialects}.
 -fdump-passes @gol
 -fdump-rtl-@var{pass}  -fdump-rtl-@var{pass}=@var{filename} @gol
 -fdump-statistics @gol
--fdump-translation-unit@r{[}-@var{n}@r{]} @gol
 -fdump-tree-all @gol
 -fdump-tree-@var{switch} @gol
 -fdump-tree-@var{switch}-@var{options} @gol
@@ -12972,7 +12971,7 @@ Dump after function inlining.
 @opindex fdump-lang
 Control the dumping of language-specific information.  The @var{options}
 and @var{filename} portions behave as described in the
-`@option{-fdump-tree} option.  The following @var{switch} values are
+@option{-fdump-tree} option.  The following @var{switch} values are
 accepted:
 
 @table @samp
@@ -12984,6 +12983,9 @@ Enable all language-specific dumps.
 Dump class hierarchy information.  Virtual table information is emitted
 unless '@option{slim}' is specified.  This option is applicable to C++ only.
 
+@item raw
+Dump the raw internal tree data.  This option is applicable to C++ only.
+
 @end table
 
 @item -fdump-passes
@@ -13002,16 +13004,6 @@ whole compilation unit while @samp{-deta
 the passes generate them.  The default with no option is to sum
 counters for each function compiled.
 
-@item -fdump-translation-unit @r{(C++ only)}
-@itemx -fdump-translation-unit-@var{options} @r{(C++ only)}
-@opindex fdump-translation-unit
-Dump a representation of the tree structure for the entire translation
-unit to a file.  The file name is made by appending @file{.tu} to the
-source file name, and the file is created in the same directory as the
-output file.  If the @samp{-@var{options}} form is used, @var{options}
-controls the details of the dump as described for the
-@option{-fdump-tree} options.
-
 @item -fdump-tree-all
 @itemx -fdump-tree-@var{switch}
 @itemx -fdump-tree-@var{switch}-@var{options}
Index: dumpfile.c
===================================================================
--- dumpfile.c	(revision 248332)
+++ dumpfile.c	(working copy)
@@ -73,11 +73,10 @@ static struct dump_file_info dump_files[
   dump_file_info (".cgraph", "ipa-cgraph", DK_ipa, 0),
   dump_file_info (".type-inheritance", "ipa-type-inheritance", DK_ipa, 0),
   dump_file_info (".ipa-clones", "ipa-clones", DK_ipa, 0),
-  dump_file_info (".tu", "translation-unit", DK_lang, 1),
   dump_file_info (".original", "tree-original", DK_tree, 3),
   dump_file_info (".gimple", "tree-gimple", DK_tree, 4),
   dump_file_info (".nested", "tree-nested", DK_tree, 5),
-#define FIRST_AUTO_NUMBERED_DUMP 4
+#define FIRST_AUTO_NUMBERED_DUMP 3
 
   dump_file_info (NULL, "lang-all", DK_lang, 0),
   dump_file_info (NULL, "tree-all", DK_tree, 0),
Index: dumpfile.h
===================================================================
--- dumpfile.h	(revision 248332)
+++ dumpfile.h	(working copy)
@@ -30,7 +30,6 @@ enum tree_dump_index
   TDI_cgraph,			/* dump function call graph.  */
   TDI_inheritance,		/* dump type inheritance graph.  */
   TDI_clones,			/* dump IPA cloning decisions.  */
-  TDI_tu,			/* dump the whole translation unit.  */
   TDI_original,			/* dump each function before optimizing it */
   TDI_generic,			/* dump each function after genericizing it */
   TDI_nested,			/* dump each function after unnesting it */
