tree-pass.h (TDF_GRAPH): Define.
* tree-pass.h (TDF_GRAPH): Define. * tree-dump.c (dump_options): Don't set TDF_GRAPH in "all". * passes.c (finish_optimization_passes): Only call finish_graph_dump_file if TDF_GRAPH is set. (execute_one_pass): Only call clean_graph_dump_file if dump_file != NULL. Set TDF_GRAPH bit. (execute_todo): Call print_rtl_graph_with_bb if TDF_GRAPH is set. * gcc.dg/20050811-1.c: New test. * gcc.dg/20050811-2.c: New test. From-SVN: r103304
This commit is contained in:
parent
b00d752c95
commit
5e34206b7e
7 changed files with 77 additions and 9 deletions
|
@ -1,3 +1,13 @@
|
|||
2005-08-20 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* tree-pass.h (TDF_GRAPH): Define.
|
||||
* tree-dump.c (dump_options): Don't set TDF_GRAPH in "all".
|
||||
* passes.c (finish_optimization_passes): Only call
|
||||
finish_graph_dump_file if TDF_GRAPH is set.
|
||||
(execute_one_pass): Only call clean_graph_dump_file if dump_file !=
|
||||
NULL. Set TDF_GRAPH bit.
|
||||
(execute_todo): Call print_rtl_graph_with_bb if TDF_GRAPH is set.
|
||||
|
||||
2005-08-20 Richard Earnshaw <richard.earnshaw@arm.com>
|
||||
|
||||
* arm.h (arm_stack_offsets): Add locals_base field.
|
||||
|
|
27
gcc/passes.c
27
gcc/passes.c
|
@ -237,12 +237,12 @@ finish_optimization_passes (void)
|
|||
if (graph_dump_format != no_graph)
|
||||
for (i = TDI_end; (dfi = get_dump_file_info (i)) != NULL; ++i)
|
||||
if (dump_initialized_p (i)
|
||||
&& (dfi->flags & TDF_RTL) != 0
|
||||
&& (dfi->flags & TDF_GRAPH) != 0
|
||||
&& (name = get_dump_file_name (i)) != NULL)
|
||||
{
|
||||
finish_graph_dump_file (name);
|
||||
free (name);
|
||||
}
|
||||
{
|
||||
finish_graph_dump_file (name);
|
||||
free (name);
|
||||
}
|
||||
|
||||
timevar_pop (TV_DUMP);
|
||||
}
|
||||
|
@ -708,7 +708,13 @@ execute_todo (struct tree_opt_pass *pass, unsigned int flags, bool use_required)
|
|||
dump_function_to_file (current_function_decl,
|
||||
dump_file, dump_flags);
|
||||
else if (properties & PROP_cfg)
|
||||
print_rtl_with_bb (dump_file, get_insns ());
|
||||
{
|
||||
print_rtl_with_bb (dump_file, get_insns ());
|
||||
|
||||
if (graph_dump_format != no_graph
|
||||
&& (dump_flags & TDF_GRAPH))
|
||||
print_rtl_graph_with_bb (dump_file_name, get_insns ());
|
||||
}
|
||||
else
|
||||
print_rtl (dump_file, get_insns ());
|
||||
|
||||
|
@ -782,10 +788,15 @@ execute_one_pass (struct tree_opt_pass *pass)
|
|||
}
|
||||
|
||||
if (initializing_dump
|
||||
&& graph_dump_format != no_graph
|
||||
&& dump_file
|
||||
&& graph_dump_format != no_graph
|
||||
&& (pass->properties_provided & (PROP_cfg | PROP_rtl))
|
||||
== (PROP_cfg | PROP_rtl))
|
||||
clean_graph_dump_file (dump_file_name);
|
||||
{
|
||||
get_dump_file_info (pass->static_pass_number)->flags |= TDF_GRAPH;
|
||||
dump_flags |= TDF_GRAPH;
|
||||
clean_graph_dump_file (dump_file_name);
|
||||
}
|
||||
}
|
||||
|
||||
/* If a timevar is present, start it. */
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2005-08-20 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* gcc.dg/20050811-1.c: New test.
|
||||
* gcc.dg/20050811-2.c: New test.
|
||||
|
||||
2005-08-20 Richard Earnshaw <richard.earnshaw@arm.com>
|
||||
|
||||
* gcc.dg/arm-eabi1.c (main): Exit with 0 on success.
|
||||
|
|
20
gcc/testsuite/gcc.dg/20050811-1.c
Normal file
20
gcc/testsuite/gcc.dg/20050811-1.c
Normal file
|
@ -0,0 +1,20 @@
|
|||
/* Test whether -dav doesn't crash. */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -dav" } */
|
||||
|
||||
int foo (void)
|
||||
{
|
||||
return 6;
|
||||
}
|
||||
|
||||
int bar (int x)
|
||||
{
|
||||
if (x < 0)
|
||||
return foo () + 8;
|
||||
else if (x > 0)
|
||||
return 2 * foo ();
|
||||
else
|
||||
return foo ();
|
||||
}
|
||||
|
||||
// { dg-final { cleanup-rtl-dump "*" } }
|
20
gcc/testsuite/gcc.dg/20050811-2.c
Normal file
20
gcc/testsuite/gcc.dg/20050811-2.c
Normal file
|
@ -0,0 +1,20 @@
|
|||
/* Test whether -dov doesn't crash. */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -dov" } */
|
||||
|
||||
int foo (void)
|
||||
{
|
||||
return 6;
|
||||
}
|
||||
|
||||
int bar (int x)
|
||||
{
|
||||
if (x < 0)
|
||||
return foo () + 8;
|
||||
else if (x > 0)
|
||||
return 2 * foo ();
|
||||
else
|
||||
return foo ();
|
||||
}
|
||||
|
||||
// { dg-final { cleanup-rtl-dump "postreload*" } }
|
|
@ -752,7 +752,7 @@ static const struct dump_option_value_info dump_options[] =
|
|||
{"uid", TDF_UID},
|
||||
{"stmtaddr", TDF_STMTADDR},
|
||||
{"all", ~(TDF_RAW | TDF_SLIM | TDF_LINENO | TDF_TREE | TDF_RTL | TDF_IPA
|
||||
| TDF_STMTADDR)},
|
||||
| TDF_STMTADDR | TDF_GRAPH)},
|
||||
{NULL, 0}
|
||||
};
|
||||
|
||||
|
|
|
@ -67,6 +67,8 @@ enum tree_dump_index
|
|||
#define TDF_IPA (1 << 11) /* is an IPA dump */
|
||||
#define TDF_STMTADDR (1 << 12) /* Address of stmt. */
|
||||
|
||||
#define TDF_GRAPH (1 << 13) /* a graph dump is being emitted */
|
||||
|
||||
extern char *get_dump_file_name (enum tree_dump_index);
|
||||
extern int dump_enabled_p (enum tree_dump_index);
|
||||
extern int dump_initialized_p (enum tree_dump_index);
|
||||
|
|
Loading…
Add table
Reference in a new issue