summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog10
-rw-r--r--gcc/dumpfile.c23
-rw-r--r--gcc/dumpfile.h1
3 files changed, 26 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c33a3ad7ce9..e7e9788ea6c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,13 @@
+2012-10-22 Sharad Singhai <singhai@google.com>
+
+ * dumpfile.c (dump_phase_enabled_p): Renamed dump_enabled_p. Update
+ all callers.
+ (dump_enabled_p): A new function to check if any of the dump files
+ is available.
+ (dump_kind_p): Remove check for current_function_decl. Add check for
+ dumpfile and alt_dump_file.
+ * dumpfile.h: Add declaration of dump_enabled_p.
+
2012-10-22 Richard Biener <rguenther@suse.de>
PR lto/55021
diff --git a/gcc/dumpfile.c b/gcc/dumpfile.c
index 2f610b6c259..4ac427b273a 100644
--- a/gcc/dumpfile.c
+++ b/gcc/dumpfile.c
@@ -35,7 +35,7 @@ static int alt_flags; /* current opt_info flags */
static FILE *alt_dump_file = NULL;
static void dump_loc (int, FILE *, source_location);
-static int dump_enabled_p (int);
+static int dump_phase_enabled_p (int);
static FILE *dump_open_alternate_stream (struct dump_file_info *);
/* Table of tree dump switches. This must be consistent with the
@@ -380,7 +380,7 @@ dump_start (int phase, int *flag_ptr)
char *name;
struct dump_file_info *dfi;
FILE *stream;
- if (phase == TDI_none || !dump_enabled_p (phase))
+ if (phase == TDI_none || !dump_phase_enabled_p (phase))
return 0;
dfi = get_dump_file_info (phase);
@@ -461,7 +461,7 @@ dump_begin (int phase, int *flag_ptr)
struct dump_file_info *dfi;
FILE *stream;
- if (phase == TDI_none || !dump_enabled_p (phase))
+ if (phase == TDI_none || !dump_phase_enabled_p (phase))
return NULL;
name = get_dump_file_name (phase);
@@ -493,8 +493,8 @@ dump_begin (int phase, int *flag_ptr)
If PHASE is TDI_tree_all, return nonzero if any dump is enabled for
any phase. */
-int
-dump_enabled_p (int phase)
+static int
+dump_phase_enabled_p (int phase)
{
if (phase == TDI_tree_all)
{
@@ -514,6 +514,14 @@ dump_enabled_p (int phase)
}
}
+/* Return true if any of the dumps are enabled, false otherwise. */
+
+inline bool
+dump_enabled_p (void)
+{
+ return (dump_file || alt_dump_file);
+}
+
/* Returns nonzero if tree dump PHASE has been initialized. */
int
@@ -834,9 +842,8 @@ opt_info_switch_p (const char *arg)
bool
dump_kind_p (int msg_type)
{
- if (!current_function_decl)
- return 0;
- return ((msg_type & pflags) || (msg_type & alt_flags));
+ return (dump_file && (msg_type & pflags))
+ || (alt_dump_file && (msg_type & alt_flags));
}
/* Print basic block on the dump streams. */
diff --git a/gcc/dumpfile.h b/gcc/dumpfile.h
index 87a2c728623..24374bfd96b 100644
--- a/gcc/dumpfile.h
+++ b/gcc/dumpfile.h
@@ -121,6 +121,7 @@ extern int dump_switch_p (const char *);
extern int opt_info_switch_p (const char *);
extern const char *dump_flag_name (int);
extern bool dump_kind_p (int);
+extern inline bool dump_enabled_p (void);
extern void dump_printf (int, const char *, ...) ATTRIBUTE_PRINTF_2;
extern void dump_printf_loc (int, source_location,
const char *, ...) ATTRIBUTE_PRINTF_3;