* [PATCH] combine: Print to dump if some insn cannot be combined into i3
@ 2017-11-29 23:35 Segher Boessenkool
0 siblings, 0 replies; only message in thread
From: Segher Boessenkool @ 2017-11-29 23:35 UTC (permalink / raw)
To: gcc-patches; +Cc: Segher Boessenkool
Eventually we should print the reason that any combination fails.
This is a good start (these happen often).
Applying to trunk.
Segher
2017-11-29 Segher Boessenkool <segher@kernel.crashing.org>
* combine.c (try_combine): Print a message to dump file whenever
I0, I1, or I2 cannot be combined into I3.
---
gcc/combine.c | 24 ++++++++++++++++++------
1 file changed, 18 insertions(+), 6 deletions(-)
diff --git a/gcc/combine.c b/gcc/combine.c
index c578e47..22a382d 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -3061,13 +3061,25 @@ try_combine (rtx_insn *i3, rtx_insn *i2, rtx_insn *i1, rtx_insn *i0,
SUBST (PATTERN (i2), XVECEXP (PATTERN (i2), 0, 1));
}
- /* Verify that I2 and I1 are valid for combining. */
- if (! can_combine_p (i2, i3, i0, i1, NULL, NULL, &i2dest, &i2src)
- || (i1 && ! can_combine_p (i1, i3, i0, NULL, i2, NULL,
- &i1dest, &i1src))
- || (i0 && ! can_combine_p (i0, i3, NULL, NULL, i1, i2,
- &i0dest, &i0src)))
+ /* Verify that I2 and maybe I1 and I0 can be combined into I3. */
+ if (!can_combine_p (i2, i3, i0, i1, NULL, NULL, &i2dest, &i2src))
{
+ if (dump_file)
+ fprintf (dump_file, "Can't combine i2 into i3\n");
+ undo_all ();
+ return 0;
+ }
+ if (i1 && !can_combine_p (i1, i3, i0, NULL, i2, NULL, &i1dest, &i1src))
+ {
+ if (dump_file)
+ fprintf (dump_file, "Can't combine i1 into i3\n");
+ undo_all ();
+ return 0;
+ }
+ if (i0 && !can_combine_p (i0, i3, NULL, NULL, i1, i2, &i0dest, &i0src))
+ {
+ if (dump_file)
+ fprintf (dump_file, "Can't combine i0 into i3\n");
undo_all ();
return 0;
}
--
1.8.3.1
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2017-11-29 22:49 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-29 23:35 [PATCH] combine: Print to dump if some insn cannot be combined into i3 Segher Boessenkool
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).