From d558416ef32eb82c6cf3b8fa446709690567c777 Mon Sep 17 00:00:00 2001 From: Mark Mitchell Date: Tue, 5 Jun 2001 20:32:41 +0000 Subject: [PATCH] print-rtl.c (xspaces): Remove. * print-rtl.c (xspaces): Remove. (print_rtx): Use printf field-width, rather than xpsaces, to indent. * toplev.c (main): Disable sibling-call optimization if we are handling exceptions. * reload1.c (reload): Delete all USEs generated during reload. From-SVN: r42917 --- gcc/ChangeLog | 12 ++++++++++++ gcc/print-rtl.c | 17 ++++++----------- gcc/reload1.c | 2 +- gcc/toplev.c | 8 +++++++- 4 files changed, 26 insertions(+), 13 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index dd7a36973bb..62a19b7d281 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,15 @@ +2001-06-05 Mark Mitchell + + * print-rtl.c (xspaces): Remove. + (print_rtx): Use printf field-width, rather than xpsaces, to + indent. + * toplev.c (main): Disable sibling-call optimization if we are + handling exceptions. + +2001-06-05 Bernd Schmidt + + * reload1.c (reload): Delete all USEs generated during reload. + 2001-06-05 scott snyder * gccbug.in: Fix typo. diff --git a/gcc/print-rtl.c b/gcc/print-rtl.c index aeae71e89b6..1c4e6f312a2 100644 --- a/gcc/print-rtl.c +++ b/gcc/print-rtl.c @@ -47,8 +47,6 @@ const char * reg_names[] = REGISTER_NAMES; static FILE *outfile; -static const char xspaces[] = " "; - static int sawclose = 0; static int indent; @@ -91,9 +89,8 @@ print_rtx (in_rtx) if (flag_simple) fputc (' ', outfile); else - fprintf (outfile, "\n%s%s", - print_rtx_head, - (xspaces + (sizeof xspaces - 1 - indent * 2))); + fprintf (outfile, "\n%s%*s", + print_rtx_head, indent * 2, ""); sawclose = 0; } @@ -282,9 +279,8 @@ print_rtx (in_rtx) indent += 2; if (sawclose) { - fprintf (outfile, "\n%s%s", - print_rtx_head, - (xspaces + (sizeof xspaces - 1 - indent * 2))); + fprintf (outfile, "\n%s%*s", + print_rtx_head, indent * 2, ""); sawclose = 0; } fputs ("[ ", outfile); @@ -300,9 +296,8 @@ print_rtx (in_rtx) indent -= 2; } if (sawclose) - fprintf (outfile, "\n%s%s", - print_rtx_head, - (xspaces + (sizeof xspaces - 1 - indent * 2))); + fprintf (outfile, "\n%s%*s", + print_rtx_head, indent * 2, ""); fputs ("] ", outfile); sawclose = 1; diff --git a/gcc/reload1.c b/gcc/reload1.c index 5f08444ec91..53c3116f29a 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -1187,7 +1187,7 @@ reload (first, global) CALL_INSN_FUNCTION_USAGE (insn)); if ((GET_CODE (PATTERN (insn)) == USE - && find_reg_note (insn, REG_EQUAL, NULL_RTX)) + && INSN_UID (insn) >= reload_first_uid) || (GET_CODE (PATTERN (insn)) == CLOBBER && (GET_CODE (XEXP (PATTERN (insn), 0)) != REG || ! REG_FUNCTION_VALUE_P (XEXP (PATTERN (insn), 0))))) diff --git a/gcc/toplev.c b/gcc/toplev.c index 0cb787568b1..ba0864109b6 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -2523,7 +2523,7 @@ compile_file (name) This does nothing for local (non-static) variables, unless the variable is a register variable with an ASMSPEC. In that case, or - if the variable is not an automatice, it sets up the RTL and + if the variable is not an automatic, it sets up the RTL and outputs any assembler code (label definition, storage allocation and initialization). @@ -4897,6 +4897,12 @@ toplev_main (argc, argv) warning ("-Wuninitialized is not supported without -O"); } + /* We do not currently support sibling-call optimization in the + presence of exceptions. See PR2975 for a test-case that will + fail if we try to combine both of these features. */ + if (flag_exceptions) + flag_optimize_sibling_calls = 0; + #ifdef OVERRIDE_OPTIONS /* Some machines may reject certain combinations of options. */ OVERRIDE_OPTIONS; -- 2.30.2