aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2018-09-04 15:59:38 +0200
committerMartin Liska <marxin@gcc.gnu.org>2018-09-04 13:59:38 +0000
commit8fcfe0474aed3d43f16d14c92216ec68f35895fd (patch)
treef73c5d80d9c2acbed4acac391f463e5ad3c54d0f /gcc
parentb88ad32d4e3527ed9cd89a6c53ff533755dab779 (diff)
downloadgcc-8fcfe0474aed3d43f16d14c92216ec68f35895fd.zip
gcc-8fcfe0474aed3d43f16d14c92216ec68f35895fd.tar.gz
gcc-8fcfe0474aed3d43f16d14c92216ec68f35895fd.tar.bz2
genmatch: put reporting on a cold path
2018-09-04 Martin Liska <mliska@suse.cz> * genmatch.c (output_line_directive): Add new argument fnargs. (dt_simplify::gen_1): Encapsulate dump within __builtin_expect. From-SVN: r264084
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/genmatch.c16
2 files changed, 17 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7cbfcad..8cba029 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2018-09-04 Martin Liska <mliska@suse.cz>
+
+ * genmatch.c (output_line_directive): Add new argument
+ fnargs.
+ (dt_simplify::gen_1): Encapsulate dump within __builtin_expect.
+
2018-09-04 Jonathan Wakely <jwakely@redhat.com>
* doc/invoke.texi (Option Summary): Add whitespace.
diff --git a/gcc/genmatch.c b/gcc/genmatch.c
index 50d72f8..5f1691a 100644
--- a/gcc/genmatch.c
+++ b/gcc/genmatch.c
@@ -184,7 +184,7 @@ fprintf_indent (FILE *f, unsigned int indent, const char *format, ...)
static void
output_line_directive (FILE *f, source_location location,
- bool dumpfile = false)
+ bool dumpfile = false, bool fnargs = false)
{
const line_map_ordinary *map;
linemap_resolve_location (line_table, location, LRK_SPELLING_LOCATION, &map);
@@ -202,7 +202,11 @@ output_line_directive (FILE *f, source_location location,
file = loc.file;
else
++file;
- fprintf (f, "%s:%d", file, loc.line);
+
+ if (fnargs)
+ fprintf (f, "\"%s\", %d", file, loc.line);
+ else
+ fprintf (f, "%s:%d", file, loc.line);
}
else
/* Other gen programs really output line directives here, at least for
@@ -3305,11 +3309,13 @@ dt_simplify::gen_1 (FILE *f, int indent, bool gimple, operand *result)
}
}
- fprintf_indent (f, indent, "if (dump_file && (dump_flags & TDF_FOLDING)) "
+ fprintf_indent (f, indent, "if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) "
"fprintf (dump_file, \"Applying pattern ");
+ fprintf (f, "%%s:%%d, %%s:%%d\\n\", ");
output_line_directive (f,
- result ? result->location : s->match->location, true);
- fprintf (f, ", %%s:%%d\\n\", __FILE__, __LINE__);\n");
+ result ? result->location : s->match->location, true,
+ true);
+ fprintf (f, ", __FILE__, __LINE__);\n");
if (!result)
{