Commit 182c7868 by Tom de Vries Committed by Tom de Vries

Only finalize dot files that have been initialized

2016-04-17  Tom de Vries  <tom@codesourcery.com>

	PR other/70185
	* tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
	* dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
	* dumpfile.c (dump_files): Initialize graph_dump_initialized field.
	* passes.c (finish_optimization_passes): Only call
	finish_graph_dump_file if dfi->graph_dump_initialized.
	(execute_function_dump, pass_init_dump_file): Use
	dfi->graph_dump_initialized instead of pass->graph_dump_initialized.

From-SVN: r235074
parent c5e2d17d
2016-04-17 Tom de Vries <tom@codesourcery.com>
PR other/70185
* tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
* dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
* dumpfile.c (dump_files): Initialize graph_dump_initialized field.
* passes.c (finish_optimization_passes): Only call
finish_graph_dump_file if dfi->graph_dump_initialized.
(execute_function_dump, pass_init_dump_file): Use
dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
2016-04-17 Tom de Vries <tom@codesourcery.com>
PR tree-optimization/70256
* tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
(debug_varmap): New function.
......
......@@ -50,29 +50,29 @@ int dump_flags;
TREE_DUMP_INDEX enumeration in dumpfile.h. */
static struct dump_file_info dump_files[TDI_end] =
{
{NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 0, 0, false},
{NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 0, 0, false, false},
{".cgraph", "ipa-cgraph", NULL, NULL, NULL, NULL, NULL, TDF_IPA,
0, 0, 0, 0, 0, false},
0, 0, 0, 0, 0, false, false},
{".type-inheritance", "ipa-type-inheritance", NULL, NULL, NULL, NULL, NULL, TDF_IPA,
0, 0, 0, 0, 0, false},
0, 0, 0, 0, 0, false, false},
{".tu", "translation-unit", NULL, NULL, NULL, NULL, NULL, TDF_TREE,
0, 0, 0, 0, 1, false},
0, 0, 0, 0, 1, false, false},
{".class", "class-hierarchy", NULL, NULL, NULL, NULL, NULL, TDF_TREE,
0, 0, 0, 0, 2, false},
0, 0, 0, 0, 2, false, false},
{".original", "tree-original", NULL, NULL, NULL, NULL, NULL, TDF_TREE,
0, 0, 0, 0, 3, false},
0, 0, 0, 0, 3, false, false},
{".gimple", "tree-gimple", NULL, NULL, NULL, NULL, NULL, TDF_TREE,
0, 0, 0, 0, 4, false},
0, 0, 0, 0, 4, false, false},
{".nested", "tree-nested", NULL, NULL, NULL, NULL, NULL, TDF_TREE,
0, 0, 0, 0, 5, false},
0, 0, 0, 0, 5, false, false},
#define FIRST_AUTO_NUMBERED_DUMP 6
{NULL, "tree-all", NULL, NULL, NULL, NULL, NULL, TDF_TREE,
0, 0, 0, 0, 0, false},
0, 0, 0, 0, 0, false, false},
{NULL, "rtl-all", NULL, NULL, NULL, NULL, NULL, TDF_RTL,
0, 0, 0, 0, 0, false},
0, 0, 0, 0, 0, false, false},
{NULL, "ipa-all", NULL, NULL, NULL, NULL, NULL, TDF_IPA,
0, 0, 0, 0, 0, false},
0, 0, 0, 0, 0, false, false},
};
/* Define a name->number mapping for a dump flag value. */
......
......@@ -120,6 +120,10 @@ struct dump_file_info
bool owns_strings; /* fields "suffix", "swtch", "glob" can be
const strings, or can be dynamically
allocated, needing free. */
bool graph_dump_initialized; /* When a given dump file is being initialized,
this flag is set to true if the corresponding
TDF_graph dump file has also been
initialized. */
};
/* In dumpfile.c */
......
......@@ -364,10 +364,9 @@ finish_optimization_passes (void)
/* Do whatever is necessary to finish printing the graphs. */
for (i = TDI_end; (dfi = dumps->get_dump_file_info (i)) != NULL; ++i)
if (dumps->dump_initialized_p (i)
&& (dfi->pflags & TDF_GRAPH) != 0
&& (name = dumps->get_dump_file_name (i)) != NULL)
if (dfi->graph_dump_initialized)
{
name = dumps->get_dump_file_name (dfi);
finish_graph_dump_file (name);
free (name);
}
......@@ -1764,10 +1763,13 @@ execute_function_dump (function *fn, void *data)
if ((fn->curr_properties & PROP_cfg)
&& (dump_flags & TDF_GRAPH))
{
if (!pass->graph_dump_initialized)
gcc::dump_manager *dumps = g->get_dumps ();
struct dump_file_info *dfi
= dumps->get_dump_file_info (pass->static_pass_number);
if (!dfi->graph_dump_initialized)
{
clean_graph_dump_file (dump_file_name);
pass->graph_dump_initialized = true;
dfi->graph_dump_initialized = true;
}
print_graph_cfg (dump_file_name, fn);
}
......@@ -2111,7 +2113,9 @@ pass_init_dump_file (opt_pass *pass)
&& cfun && (cfun->curr_properties & PROP_cfg))
{
clean_graph_dump_file (dump_file_name);
pass->graph_dump_initialized = true;
struct dump_file_info *dfi
= dumps->get_dump_file_info (pass->static_pass_number);
dfi->graph_dump_initialized = true;
}
timevar_pop (TV_DUMP);
return initializing_dump;
......
......@@ -108,11 +108,6 @@ public:
/* Static pass number, used as a fragment of the dump file name. */
int static_pass_number;
/* When a given dump file is being initialized, this flag is set to
true if the corresponding TDF_graph dump file has also been
initialized. */
bool graph_dump_initialized;
protected:
gcc::context *m_ctxt;
};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment