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},
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,
{"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)},
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';
}
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;
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;
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. */
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
+#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 << 4) /* dump various statistics about
+#define TDF_STATS (1 << 7) /* 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_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_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_STMTADDR (1 << 12) /* Address of stmt. */
#define TDF_GRAPH (1 << 13) /* a graph dump is being emitted */