dumpfile.h (TDI_lang_all): New.
* dumpfile.h (TDI_lang_all): New. (TDF_KIND): New. Renumber others (TDF_LANG, TDF_TREE, TDF_RTL, TDF_IPA): Enumerate value, rather than bits. * dumpfile.c (dump_files): Mark language dumps as TDF_LANG. add lang-all. (get_dump_file_name): Adjust suffix generation. (dump_enable_all): Use TDF_KIND. * doc/invoke.texi (-fdump-lang-all): Document. From-SVN: r247833
This commit is contained in:
parent
0e0a19c5df
commit
a529e0a697
4 changed files with 49 additions and 29 deletions
|
@ -1,5 +1,15 @@
|
|||
2017-05-10 Nathan Sidwell <nathan@acm.org>
|
||||
|
||||
* dumpfile.h (TDI_lang_all): New.
|
||||
(TDF_KIND): New. Renumber others
|
||||
(TDF_LANG, TDF_TREE, TDF_RTL, TDF_IPA): Enumerate value, rather
|
||||
than bits.
|
||||
* dumpfile.c (dump_files): Mark language dumps as TDF_LANG. add
|
||||
lang-all.
|
||||
(get_dump_file_name): Adjust suffix generation.
|
||||
(dump_enable_all): Use TDF_KIND.
|
||||
* doc/invoke.texi (-fdump-lang-all): Document.
|
||||
|
||||
* dumpfile.h: Tabify.
|
||||
|
||||
2017-05-10 Wilco Dijkstra <wdijkstr@arm.com>
|
||||
|
|
|
@ -543,6 +543,7 @@ Objective-C and Objective-C++ Dialects}.
|
|||
-fdump-class-hierarchy@r{[}-@var{n}@r{]} @gol
|
||||
-fdump-final-insns@r{[}=@var{file}@r{]}
|
||||
-fdump-ipa-all -fdump-ipa-cgraph -fdump-ipa-inline @gol
|
||||
-fdump-lang-all @gol
|
||||
-fdump-passes @gol
|
||||
-fdump-rtl-@var{pass} -fdump-rtl-@var{pass}=@var{filename} @gol
|
||||
-fdump-statistics @gol
|
||||
|
@ -12970,6 +12971,10 @@ Dump after function inlining.
|
|||
|
||||
@end table
|
||||
|
||||
@item -fdump-lang-all
|
||||
@opindex fdump-lang-all
|
||||
Control the dumping of language-specific information.
|
||||
|
||||
@item -fdump-passes
|
||||
@opindex fdump-passes
|
||||
Print on @file{stderr} the list of optimization passes that are turned
|
||||
|
|
|
@ -57,9 +57,9 @@ static struct dump_file_info dump_files[TDI_end] =
|
|||
0, 0, 0, 0, 0, false, false},
|
||||
{".ipa-clones", "ipa-clones", NULL, NULL, NULL, NULL, NULL, TDF_IPA,
|
||||
0, 0, 0, 0, 0, false, false},
|
||||
{".tu", "translation-unit", NULL, NULL, NULL, NULL, NULL, TDF_TREE,
|
||||
{".tu", "translation-unit", NULL, NULL, NULL, NULL, NULL, TDF_LANG,
|
||||
0, 0, 0, 0, 1, false, false},
|
||||
{".class", "class-hierarchy", NULL, NULL, NULL, NULL, NULL, TDF_TREE,
|
||||
{".class", "class-hierarchy", NULL, NULL, NULL, NULL, NULL, TDF_LANG,
|
||||
0, 0, 0, 0, 2, false, false},
|
||||
{".original", "tree-original", NULL, NULL, NULL, NULL, NULL, TDF_TREE,
|
||||
0, 0, 0, 0, 3, false, false},
|
||||
|
@ -69,6 +69,8 @@ static struct dump_file_info dump_files[TDI_end] =
|
|||
0, 0, 0, 0, 5, false, false},
|
||||
#define FIRST_AUTO_NUMBERED_DUMP 6
|
||||
|
||||
{NULL, "lang-all", NULL, NULL, NULL, NULL, NULL, TDF_LANG,
|
||||
0, 0, 0, 0, 0, false, false},
|
||||
{NULL, "tree-all", NULL, NULL, NULL, NULL, NULL, TDF_TREE,
|
||||
0, 0, 0, 0, 0, false, false},
|
||||
{NULL, "rtl-all", NULL, NULL, NULL, NULL, NULL, TDF_RTL,
|
||||
|
@ -115,7 +117,7 @@ static const struct dump_option_value_info dump_options[] =
|
|||
{"missed", MSG_MISSED_OPTIMIZATION},
|
||||
{"note", MSG_NOTE},
|
||||
{"optall", MSG_ALL},
|
||||
{"all", ~(TDF_RAW | TDF_SLIM | TDF_LINENO | TDF_TREE | TDF_RTL | TDF_IPA
|
||||
{"all", ~(TDF_KIND_MASK | TDF_RAW | TDF_SLIM | TDF_LINENO
|
||||
| TDF_STMTADDR | TDF_GRAPH | TDF_DIAGNOSTIC | TDF_VERBOSE
|
||||
| TDF_RHS_ONLY | TDF_NOUID | TDF_ENUMERATE_LOCALS | TDF_SCEV
|
||||
| TDF_GIMPLE)},
|
||||
|
@ -282,15 +284,11 @@ get_dump_file_name (struct dump_file_info *dfi) const
|
|||
dump_id[0] = '\0';
|
||||
else
|
||||
{
|
||||
char suffix;
|
||||
if (dfi->pflags & TDF_TREE)
|
||||
suffix = 't';
|
||||
else if (dfi->pflags & TDF_IPA)
|
||||
suffix = 'i';
|
||||
else
|
||||
suffix = 'r';
|
||||
|
||||
if (snprintf (dump_id, sizeof (dump_id), ".%03d%c", dfi->num, suffix) < 0)
|
||||
/* LANG, TREE, RTL, IPA. */
|
||||
char suffix = "ltri"[TDF_KIND (dfi->pflags)];
|
||||
|
||||
if (snprintf (dump_id, sizeof (dump_id), ".%03d%c", dfi->num, suffix)
|
||||
< 0)
|
||||
dump_id[0] = '\0';
|
||||
}
|
||||
|
||||
|
@ -657,13 +655,13 @@ int
|
|||
gcc::dump_manager::
|
||||
dump_enable_all (int flags, const char *filename)
|
||||
{
|
||||
int ir_dump_type = (flags & (TDF_TREE | TDF_RTL | TDF_IPA));
|
||||
int ir_dump_type = TDF_KIND (flags);
|
||||
int n = 0;
|
||||
size_t i;
|
||||
|
||||
for (i = TDI_none + 1; i < (size_t) TDI_end; i++)
|
||||
{
|
||||
if ((dump_files[i].pflags & ir_dump_type))
|
||||
if (TDF_KIND (dump_files[i].pflags) == ir_dump_type)
|
||||
{
|
||||
const char *old_filename = dump_files[i].pfilename;
|
||||
dump_files[i].pstate = -1;
|
||||
|
@ -684,7 +682,7 @@ dump_enable_all (int flags, const char *filename)
|
|||
|
||||
for (i = 0; i < m_extra_dump_files_in_use; i++)
|
||||
{
|
||||
if ((m_extra_dump_files[i].pflags & ir_dump_type))
|
||||
if (TDF_KIND (m_extra_dump_files[i].pflags) & ir_dump_type)
|
||||
{
|
||||
const char *old_filename = m_extra_dump_files[i].pfilename;
|
||||
m_extra_dump_files[i].pstate = -1;
|
||||
|
|
|
@ -35,6 +35,8 @@ enum tree_dump_index
|
|||
TDI_original, /* dump each function before optimizing it */
|
||||
TDI_generic, /* dump each function after genericizing it */
|
||||
TDI_nested, /* dump each function after unnesting it */
|
||||
|
||||
TDI_lang_all, /* enable all the language dumps. */
|
||||
TDI_tree_all, /* enable all the GENERIC/GIMPLE dumps. */
|
||||
TDI_rtl_all, /* enable all the RTL dumps. */
|
||||
TDI_ipa_all, /* enable all the IPA dumps. */
|
||||
|
@ -47,21 +49,26 @@ enum tree_dump_index
|
|||
the DUMP_OPTIONS array in dumpfile.c. The TDF_* flags coexist with
|
||||
MSG_* flags (for -fopt-info) and the bit values must be chosen to
|
||||
allow that. */
|
||||
#define TDF_ADDRESS (1 << 0) /* dump node addresses */
|
||||
#define TDF_SLIM (1 << 1) /* don't go wild following links */
|
||||
#define TDF_RAW (1 << 2) /* don't unparse the function */
|
||||
#define TDF_DETAILS (1 << 3) /* show more detailed info about
|
||||
each pass */
|
||||
#define TDF_STATS (1 << 4) /* dump various statistics about
|
||||
each pass */
|
||||
#define TDF_BLOCKS (1 << 5) /* display basic block boundaries */
|
||||
#define TDF_VOPS (1 << 6) /* display virtual operands */
|
||||
#define TDF_LINENO (1 << 7) /* display statement line numbers */
|
||||
#define TDF_UID (1 << 8) /* display decl UIDs */
|
||||
#define TDF_LANG 0 /* is a lang-specific dump. */
|
||||
#define TDF_TREE 1 /* is a tree dump */
|
||||
#define TDF_RTL 2 /* is a RTL dump */
|
||||
#define TDF_IPA 3 /* is an IPA dump */
|
||||
#define TDF_KIND_MASK 3
|
||||
#define TDF_KIND(X) ((X) & TDF_KIND_MASK)
|
||||
|
||||
/* Bit 2 unused, available for hire. */
|
||||
#define TDF_ADDRESS (1 << 3) /* dump node addresses */
|
||||
#define TDF_SLIM (1 << 4) /* don't go wild following links */
|
||||
#define TDF_RAW (1 << 5) /* don't unparse the function */
|
||||
#define TDF_DETAILS (1 << 6) /* show more detailed info about
|
||||
each pass */
|
||||
#define TDF_STATS (1 << 7) /* dump various statistics about
|
||||
each pass */
|
||||
#define TDF_BLOCKS (1 << 8) /* display basic block boundaries */
|
||||
#define TDF_VOPS (1 << 9) /* display virtual operands */
|
||||
#define TDF_LINENO (1 << 10) /* display statement line numbers */
|
||||
#define TDF_UID (1 << 11) /* display decl UIDs */
|
||||
|
||||
#define TDF_TREE (1 << 9) /* is a tree dump */
|
||||
#define TDF_RTL (1 << 10) /* is a RTL dump */
|
||||
#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 */
|
||||
|
|
Loading…
Add table
Reference in a new issue