summaryrefslogtreecommitdiffstats
path: root/gcc/print-rtl.c
diff options
context:
space:
mode:
authoraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>2000-09-11 21:03:26 +0000
committeraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>2000-09-11 21:03:26 +0000
commitf67c0d477617dfe5ee3d38fc1c60fe92a65ee7aa (patch)
tree1d26f3ff7a587dc7f37d23724c0dac8615974381 /gcc/print-rtl.c
parent13100710a1bb77aa9ca2c761e7bd28166a96cf48 (diff)
downloadppe42-gcc-f67c0d477617dfe5ee3d38fc1c60fe92a65ee7aa.tar.gz
ppe42-gcc-f67c0d477617dfe5ee3d38fc1c60fe92a65ee7aa.zip
* print-rtl.c (debug_call_placeholder_verbose): New variable.
(print_rtx) [CALL_PLACEHOLDER]: Dump all call sequences if it is set. * integrate.c (copy_rtx_and_substitute): Don't share LEAF_REG_REMAPpable registers with the inlined function. Don't share the function value with calling sequences. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36329 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/print-rtl.c')
-rw-r--r--gcc/print-rtl.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/gcc/print-rtl.c b/gcc/print-rtl.c
index 5d7cd5feebb..31eac815cef 100644
--- a/gcc/print-rtl.c
+++ b/gcc/print-rtl.c
@@ -63,6 +63,9 @@ int flag_dump_unnumbered = 0;
/* Nonzero if we are dumping graphical description. */
int dump_for_graph;
+/* Nonzero to dump all call_placeholder alternatives. */
+static int debug_call_placeholder_verbose;
+
/* Print IN_RTX onto OUTFILE. This is the recursive part of printing. */
static void
@@ -421,6 +424,37 @@ print_rtx (in_rtx)
break;
case CALL_PLACEHOLDER:
+ if (debug_call_placeholder_verbose)
+ {
+ fputs (" (cond [\n (const_string \"normal\") (sequence [", outfile);
+ for (tem = XEXP (in_rtx, 0); tem != 0; tem = NEXT_INSN (tem))
+ {
+ fputs ("\n ", outfile);
+ print_inline_rtx (outfile, tem, 4);
+ }
+
+ tem = XEXP (in_rtx, 1);
+ if (tem)
+ fputs ("\n ])\n (const_string \"tail_call\") (sequence [", outfile);
+ for (; tem != 0; tem = NEXT_INSN (tem))
+ {
+ fputs ("\n ", outfile);
+ print_inline_rtx (outfile, tem, 4);
+ }
+
+ tem = XEXP (in_rtx, 2);
+ if (tem)
+ fputs ("\n ])\n (const_string \"tail_recursion\") (sequence [", outfile);
+ for (; tem != 0; tem = NEXT_INSN (tem))
+ {
+ fputs ("\n ", outfile);
+ print_inline_rtx (outfile, tem, 4);
+ }
+
+ fputs ("\n ])\n ])", outfile);
+ break;
+ }
+
for (tem = XEXP (in_rtx, 0); tem != 0; tem = NEXT_INSN (tem))
if (GET_CODE (tem) == CALL_INSN)
{
OpenPOWER on IntegriCloud