* cp/decl2.c (emit_debug_for_namespace): Emit debugging for all
	decls, not just some.
	* debug.h (dwarf2out_mark_early_dies): Remove.
	* dwarf2out.c (deferred_locations_struct): Remove.
	(deferred_locations_list): Remove.
	(early_dwarf_dumping): New.
	(struct limbo_die_struct): Document better.
	(abbrev_die_table_in_use): Same.
	(new_die): Set dumped_early bit while early dwarf dumping.
	(print_die): Print additional information if DIE was dumped early.
	(mark_early_dies_helper): Remove.
	(dwarf2out_mark_early_dies): Remove.
	(dwarf2out_dump_early_debug_stats): Dump to asm_out_file.
	(check_die_inline): Fix comment.
	(defer_location): Remove.
	(add_subscript_info): Reuse previously generated
	DW_TAG_subrange_type.  Only set bounds that are unset.
	(gen_array_type_die): Handle variable-lengthed arrays that have
	been early dumped.
	(gen_formal_parameter_die): Create a new DIE if the cached die has
	a different context.
	(gen_subprogram_die): Document better.
	Early exit on cached declarations.
	Even if we have a cached DIE with locations, recurse on to its
	locals.
	Handle specifications even if DIE was early dumped.
	Only generate prototype parameters once.
	Move setting of calling convention earlier.
	Process locals regardless of DECL_STRUCT_FUNCTION.
	(gen_variable_die): Handle multiple passes with cached results.
	Remove defer_location calls.
	Abstract specification check into its own function...
	(decl_will_get_specification_p): ...here.
	(gen_lexical_block_die): Cache previously generated block DIEs in
	BLOCK_DIE field of tree structure.
	Handle early dwarf generation and multiple passes through this
	function.
	(gen_type_die_with_usage): Variable-lengthed types may be
	incomplete even if TREE_ASM_WRITTEN.
	(dwarf2out_early_global_decl): Set early_dwarf_dumping.
	Document better.
	(dwarf2out_late_global_decl): Document better.
	(dwarf2out_finish): Remove deferred_locations_list use.
	* toplev.c (compile_file): Do not call dwarf2out_mark_early_dies.
	* tree-core.h (struct tree_block): Add `die' field.
	* tree.h (BLOCK_DIE): New.