Commit a27a5de9 by Steven Bosscher

invoke.texi: Remove -dv documentation.

gcc/
	* doc/invoke.texi: Remove -dv documentation.  Fix up graph dump related
	documentation.  Document the '-graph' dump option.  Complete the '-slim'
	dump option documentation.

	* common.opt (Variable graph_dump_format): Remove.
	* flag-types.h (enum graph_dump_types): Remove.
	* flags.h (dump_for_graph): Remove.
	* opts.c (decode_d_option): Remove -dv handling.
	* sched-int.h (print_insn, print_pattern, print_value): Move prototypes
	from here ...
	* rtl.h: ...to here.  Add note that these functions ought to be in
	another file.
	* sched-vis.c (print_insn): Add detailed dump for insn notes.
	* print-rtl.c (dump_for_graph): Remove.
	(print_rtx): Remove dump_for_graph related code.
	* graph.c: Almost complete re-write to dump DOT (GraphViz) dumps
	instead of VCG dumps.
	* graph.h (print_rtl_graph_with_bb): Update prototype.
	* passes.c (finish_optimization_passes): Fix profile dump finishing.
	Unconditionally loop over graph dumps to finalize.
	(execute_function_dump): Split code to dump graphs to separate block.
	(execute_one_pass): Don't set TDF_GRAPH here, let the dump option
	decoders do their job.

	* ddg.c (vcg_print_ddg): Make it a DEBUG_FUNCTION.
	* toplev.c: Don't include graph.h.
	* tree-optimize.c: Don't include graph.h.

testsuite/
	* testsuite/gcc.dg/20050811-1.c: Change -dv option to -graph option
	to -fdump-rtl-all.
	* testsuite/gcc.dg/pr37858.c: Remove -dv option.

From-SVN: r193821
parent f460c170
2012-11-26 Steven Bosscher <steven@gcc.gnu.org>
* doc/invoke.texi: Remove -dv documentation. Fix up graph dump related
documentation. Document the '-graph' dump option. Complete the '-slim'
dump option documentation.
* common.opt (Variable graph_dump_format): Remove.
* flag-types.h (enum graph_dump_types): Remove.
* flags.h (dump_for_graph): Remove.
* opts.c (decode_d_option): Remove -dv handling.
* sched-int.h (print_insn, print_pattern, print_value): Move prototypes
from here ...
* rtl.h: ...to here. Add note that these functions ought to be in
another file.
* sched-vis.c (print_insn): Add detailed dump for insn notes.
* print-rtl.c (dump_for_graph): Remove.
(print_rtx): Remove dump_for_graph related code.
* graph.c: Almost complete re-write to dump DOT (GraphViz) dumps
instead of VCG dumps.
* graph.h (print_rtl_graph_with_bb): Update prototype.
* passes.c (finish_optimization_passes): Fix profile dump finishing.
Unconditionally loop over graph dumps to finalize.
(execute_function_dump): Split code to dump graphs to separate block.
(execute_one_pass): Don't set TDF_GRAPH here, let the dump option
decoders do their job.
* ddg.c (vcg_print_ddg): Make it a DEBUG_FUNCTION.
* toplev.c: Don't include graph.h.
* tree-optimize.c: Don't include graph.h.
2012-11-26 Marek Polacek <polacek@redhat.com>
* cprop.c (hash_set): Remove variable. Use regno
......@@ -174,9 +174,6 @@ int rtl_dump_and_exit
Variable
int flag_print_asm_name
Variable
enum graph_dump_types graph_dump_format = no_graph
; Name of top-level original source file (what was input to cpp).
; This comes from the #-command at the beginning of the actual input.
; If there isn't any there, then this is the cc1 input file name.
......
......@@ -753,7 +753,7 @@ print_ddg (FILE *file, ddg_ptr g)
}
/* Print the given DDG in VCG format. */
void
DEBUG_FUNCTION void
vcg_print_ddg (FILE *file, ddg_ptr g)
{
int src_cuid;
......
......@@ -5371,7 +5371,7 @@ appended with a sequential number starting from 1. @var{range-list} is a
comma-separated list of function ranges or assembler names. Each range is a number
pair separated by a colon. The range is inclusive in both ends. If the range
is trivial, the number pair can be simplified as a single number. If the
function's cgraph node's @var{uid} falls within one of the specified ranges,
function's call graph node's @var{uid} falls within one of the specified ranges,
the @var{pass} is disabled for that function. The @var{uid} is shown in the
function header of a dump file, and the pass names can be dumped by using
option @option{-fdump-passes}.
......@@ -5727,12 +5727,6 @@ also printed.
Dump the RTL in the assembler output as a comment before each instruction.
Also turns on @option{-dp} annotation.
@item -dv
@opindex dv
For each of the other indicated dump files (@option{-fdump-rtl-@var{pass}}),
dump a representation of the control flow graph suitable for viewing with VCG
to @file{@var{file}.@var{pass}.vcg}.
@item -dx
@opindex dx
Just generate RTL for a function instead of compiling it. Usually used
......@@ -5841,10 +5835,16 @@ If @code{DECL_ASSEMBLER_NAME} has been set for a given decl, use that
in the dump instead of @code{DECL_NAME}. Its primary use is ease of
use working backward from mangled names in the assembly file.
@item slim
Inhibit dumping of members of a scope or body of a function merely
because that scope has been reached. Only dump such items when they
are directly reachable by some other path. When dumping pretty-printed
trees, this option inhibits dumping the bodies of control structures.
When dumping front-end intermediate representations, inhibit dumping
of members of a scope or body of a function merely because that scope
has been reached. Only dump such items when they are directly reachable
by some other path.
When dumping pretty-printed trees, this option inhibits dumping the
bodies of control structures.
When dumping RTL, print the RTL in slim (condensed) form instead of
the default LISP-like representation.
@item raw
Print a raw representation of the tree. By default, trees are
pretty-printed into a C-like representation.
......@@ -5856,6 +5856,16 @@ Enable dumping various statistics about the pass (not honored by every dump
option).
@item blocks
Enable showing basic block boundaries (disabled in raw dumps).
@item graph
For each of the other indicated dump files (@option{-fdump-rtl-@var{pass}}),
dump a representation of the control flow graph suitable for viewing with
GraphViz to @file{@var{file}.@var{passid}.@var{pass}.dot}. Note that if
the file contains more than one function, the generated file cannot be
used directly by GraphViz@. You must cut and paste each function's
graph into its own separate file first.
This option currently only works for RTL dumps, and the RTL is always
dumped in slim form.
@item vops
Enable showing virtual operands for every statement.
@item lineno
......
......@@ -141,13 +141,6 @@ enum excess_precision
EXCESS_PRECISION_STANDARD
};
/* Selection of the graph form. */
enum graph_dump_types
{
no_graph = 0,
vcg
};
/* Type of stack check. */
enum stack_check_type
{
......
......@@ -89,9 +89,6 @@ extern struct target_flag_state *this_target_flag_state;
#define flag_excess_precision \
(this_target_flag_state->x_flag_excess_precision)
/* Nonzero if we dump in VCG format, not plain text. */
extern int dump_for_graph;
/* Returns TRUE if generated code should match ABI version N or
greater is in use. */
......
......@@ -20,7 +20,7 @@ along with GCC; see the file COPYING3. If not see
#ifndef GCC_GRAPH_H
#define GCC_GRAPH_H
extern void print_rtl_graph_with_bb (const char *, rtx);
extern void print_rtl_graph_with_bb (const char *, tree);
extern void clean_graph_dump_file (const char *);
extern void finish_graph_dump_file (const char *);
......
......@@ -1982,9 +1982,6 @@ decode_d_option (const char *arg, struct gcc_options *opts,
opts->x_flag_dump_rtl_in_asm = 1;
opts->x_flag_print_asm_name = 1;
break;
case 'v':
opts->x_graph_dump_format = vcg;
break;
case 'x':
opts->x_rtl_dump_and_exit = 1;
break;
......
......@@ -239,11 +239,10 @@ finish_optimization_passes (void)
{
dump_start (pass_profile.pass.static_pass_number, NULL);
print_combine_total_stats ();
dump_finish (pass_combine.pass.static_pass_number);
dump_finish (pass_profile.pass.static_pass_number);
}
/* Do whatever is necessary to finish printing the graphs. */
if (graph_dump_format != no_graph)
for (i = TDI_end; (dfi = get_dump_file_info (i)) != NULL; ++i)
if (dump_initialized_p (i)
&& (dfi->pflags & TDF_GRAPH) != 0
......@@ -1777,18 +1776,16 @@ execute_function_dump (void *data ATTRIBUTE_UNUSED)
if (cfun->curr_properties & PROP_trees)
dump_function_to_file (current_function_decl, dump_file, dump_flags);
else
{
print_rtl_with_bb (dump_file, get_insns (), dump_flags);
if ((cfun->curr_properties & PROP_cfg)
&& graph_dump_format != no_graph
&& (dump_flags & TDF_GRAPH))
print_rtl_graph_with_bb (dump_file_name, get_insns ());
}
/* Flush the file. If verification fails, we won't be able to
close the file before aborting. */
fflush (dump_file);
if ((cfun->curr_properties & PROP_cfg)
&& (cfun->curr_properties & PROP_rtl)
&& (dump_flags & TDF_GRAPH))
print_rtl_graph_with_bb (dump_file_name, cfun->decl);
}
}
......@@ -2338,13 +2335,11 @@ execute_one_pass (struct opt_pass *pass)
if (initializing_dump
&& dump_file
&& graph_dump_format != no_graph
&& (dump_flags & TDF_GRAPH)
&& cfun
&& (cfun->curr_properties & (PROP_cfg | PROP_rtl))
== (PROP_cfg | PROP_rtl))
{
get_dump_file_info (pass->static_pass_number)->pflags |= TDF_GRAPH;
dump_flags |= TDF_GRAPH;
clean_graph_dump_file (dump_file_name);
}
......
......@@ -77,9 +77,6 @@ int flag_dump_unnumbered_links = 0;
/* Nonzero means use simplified format without flags, modes, etc. */
int flag_simple = 0;
/* Nonzero if we are dumping graphical description. */
int dump_for_graph;
#ifndef GENERATOR_FILE
void
print_mem_expr (FILE *outfile, const_tree expr)
......@@ -124,17 +121,6 @@ print_rtx (const_rtx in_rtx)
is_insn = INSN_P (in_rtx);
/* When printing in VCG format we write INSNs, NOTE, LABEL, and BARRIER
in separate nodes and therefore have to handle them special here. */
if (dump_for_graph
&& (is_insn || NOTE_P (in_rtx)
|| LABEL_P (in_rtx) || BARRIER_P (in_rtx)))
{
i = 3;
indent = 0;
}
else
{
/* Print name of expression code. */
if (flag_simple && CONST_INT_P (in_rtx))
fputc ('(', outfile);
......@@ -192,7 +178,6 @@ print_rtx (const_rtx in_rtx)
}
#endif
}
}
#ifndef GENERATOR_FILE
if (CONST_DOUBLE_AS_FLOAT_P (in_rtx))
......@@ -217,14 +202,9 @@ print_rtx (const_rtx in_rtx)
string:
if (str == 0)
fputs (dump_for_graph ? " \\\"\\\"" : " \"\"", outfile);
else
{
if (dump_for_graph)
fprintf (outfile, " (\\\"%s\\\")", str);
fputs (" \"\"", outfile);
else
fprintf (outfile, " (\"%s\")", str);
}
sawclose = 1;
break;
......@@ -652,15 +632,8 @@ print_rtx (const_rtx in_rtx)
break;
}
if (dump_for_graph
&& (is_insn || NOTE_P (in_rtx)
|| LABEL_P (in_rtx) || BARRIER_P (in_rtx)))
sawclose = 0;
else
{
fputc (')', outfile);
sawclose = 1;
}
}
/* Print an rtx on the current line of FILE. Initially indent IND
......
......@@ -2605,6 +2605,14 @@ extern int print_rtl_single (FILE *, const_rtx);
extern int print_rtl_single_with_indent (FILE *, const_rtx, int);
extern void print_inline_rtx (FILE *, const_rtx, int);
/* Functions in sched-vis.c. These must be outside INSN_SCHEDULING as
sched-vis.c is compiled always. FIXME: Ideally these functions would
not be in sched-vis.c but in rtl.c, because they are not only used
by the scheduler anymore but for all "slim" RTL dumping. */
extern void print_insn (char *, const_rtx, int);
extern void print_pattern (char *, const_rtx, int);
extern void print_value (char *, const_rtx, int);
/* In function.c */
extern void reposition_prologue_and_epilogue_notes (void);
extern int prologue_epilogue_contains (const_rtx);
......
......@@ -1578,11 +1578,5 @@ extern void sd_debug_lists (rtx, sd_list_types_def);
#endif /* INSN_SCHEDULING */
/* Functions in sched-vis.c. These must be outside INSN_SCHEDULING as
sched-vis.c is compiled always. */
extern void print_insn (char *, const_rtx, int);
extern void print_pattern (char *, const_rtx, int);
extern void print_value (char *, const_rtx, int);
#endif /* GCC_SCHED_INT_H */
......@@ -782,12 +782,53 @@ print_insn (char *buf, const_rtx x, int verbose)
sprintf (buf, "i%4d: barrier", INSN_UID (x));
break;
case NOTE:
sprintf (buf, " %4d %s", INSN_UID (x),
GET_NOTE_INSN_NAME (NOTE_KIND (x)));
{
int uid = INSN_UID (x);
const char *note_name = GET_NOTE_INSN_NAME (NOTE_KIND (x));
switch (NOTE_KIND (x))
{
case NOTE_INSN_EH_REGION_BEG:
case NOTE_INSN_EH_REGION_END:
sprintf (buf, " %4d %s %d", uid, note_name,
NOTE_EH_HANDLER (x));
break;
case NOTE_INSN_BLOCK_BEG:
case NOTE_INSN_BLOCK_END:
sprintf (buf, " %4d %s %d", uid, note_name,
BLOCK_NUMBER (NOTE_BLOCK (x)));
break;
case NOTE_INSN_BASIC_BLOCK:
sprintf (buf, " %4d %s %d", uid, note_name,
NOTE_BASIC_BLOCK (x)->index);
break;
case NOTE_INSN_DELETED_LABEL:
case NOTE_INSN_DELETED_DEBUG_LABEL:
{
const char *label = NOTE_DELETED_LABEL_NAME (x);
if (label == NULL)
label = "";
sprintf (buf, " %4d %s (\"%s\")", uid, note_name, label);
}
break;
case NOTE_INSN_VAR_LOCATION:
print_pattern (t, NOTE_VAR_LOCATION (x), verbose);
sprintf (buf, " %4d %s {%s}", uid, note_name, t);
break;
default:
sprintf (buf, " %4d %s", uid, note_name);
break;
}
break;
}
default:
sprintf (buf, "i%4d <What %s?>", INSN_UID (x),
GET_RTX_NAME (GET_CODE (x)));
break;
}
} /* print_insn */
......
2012-11-26 Steven Bosscher <steven@gcc.gnu.org>
* testsuite/gcc.dg/20050811-1.c: Change -dv option to -graph option
to -fdump-rtl-all.
* testsuite/gcc.dg/pr37858.c: Remove -dv option.
2012-11-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* lib/target-supports.exp (check_effective_target_arm_v8_vfp_ok):
......
/* Test whether -dv -fdump-rtl-all doesn't crash. */
/* Test whether -fdump-rtl-all-graph doesn't crash. */
/* { dg-do compile } */
/* { dg-options "-O2 -dv -fdump-rtl-all" } */
/* { dg-options "-O2 -fdump-rtl-all-graph" } */
int foo (void)
{
......
/* PR middle-end/37858 */
/* ??? With -dv removed, this test is a bit silly. */
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-ipa-early_local_cleanups -dv" } */
/* { dg-options "-O2 -fdump-ipa-early_local_cleanups" } */
int
main (void)
......
......@@ -49,7 +49,6 @@ along with GCC; see the file COPYING3. If not see
#include "basic-block.h"
#include "intl.h"
#include "ggc.h"
#include "graph.h"
#include "regs.h"
#include "timevar.h"
#include "diagnostic.h"
......
......@@ -38,7 +38,6 @@ along with GCC; see the file COPYING3. If not see
#include "tree-pass.h"
#include "ggc.h"
#include "cgraph.h"
#include "graph.h"
#include "cfgloop.h"
#include "except.h"
#include "plugin.h"
......
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