From 48d9ade562cf3cc077c60cb1f49436054b34a3c6 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Thu, 20 Apr 2000 12:06:58 +0000 Subject: [PATCH] toplev.c (enum dump_file_index, dump_file): Add DFI_sibling. * toplev.c (enum dump_file_index, dump_file): Add DFI_sibling. (rest_of_compilation): Write sibling dump file and account for time as jump time. * invoke.texi: Update documentation on dump flags. From-SVN: r33279 --- gcc/ChangeLog | 7 +++++++ gcc/invoke.texi | 51 +++++++++++++++++++++++++++++++------------------ gcc/toplev.c | 11 +++++++++-- 3 files changed, 48 insertions(+), 21 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 023978b6e33..b5a88c756e4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +Thu Apr 20 08:01:07 2000 Richard Kenner + + * toplev.c (enum dump_file_index, dump_file): Add DFI_sibling. + (rest_of_compilation): Write sibling dump file and account + for time as jump time. + * invoke.texi: Update documentation on dump flags. + 2000-04-19 Marek Michalkiewicz * avr.c: #include "system.h" instead of and . diff --git a/gcc/invoke.texi b/gcc/invoke.texi index 6638839039e..3e13098dfb6 100644 --- a/gcc/invoke.texi +++ b/gcc/invoke.texi @@ -2201,51 +2201,64 @@ Here are the possible letters for use in @var{letters}, and their meanings: @item A Annotate the assembler output with miscellaneous debugging information. @item b -Dump after computing branch probabilities, to @file{@var{file}.07.bp}. +Dump after computing branch probabilities, to @file{@var{file}.10.bp}. +@item B +Dump after block reordering, to @file{@var{file}.20.bbro}. @item c -Dump after instruction combination, to the file @file{@var{file}.09.combine}. +Dump after instruction combination, to the file @file{@var{file}.12.combine}. @item d -Dump after delayed branch scheduling, to @file{@var{file}.19.dbr}. +Dump after delayed branch scheduling, to @file{@var{file}.24.dbr}. @item D Dump all macro definitions, at the end of preprocessing, in addition to normal output. -@item F -Dump after purging ADDRESSOF, to @file{@var{file}.03.addressof}. +@item e +Dump after SSA optimizations, to @file{@var{file}.05.ssa} and +@file{@var{file}.06.ussa}. @item f -Dump after flow analysis, to @file{@var{file}.08.flow}. +Dump after flow analysis, to @file{@var{file}.11.flow}. +@item F +Dump after purging @code{ADDRESSOF} codes, to @file{@var{file}.04.addressof}. @item g -Dump after global register allocation, to @file{@var{file}.13.greg}. +Dump after global register allocation, to @file{@var{file}.16.greg}. @item G -Dump after GCSE, to @file{@var{file}.04.gcse}. +Dump after GCSE, to @file{@var{file}.07.gcse}. +@item i +Dump after sibling call optimizations, to @file{@var{file}.01.sibling}. @item j -Dump after first jump optimization, to @file{@var{file}.01.jump}. +Dump after first jump optimization, to @file{@var{file}.02.jump}. @item J -Dump after last jump optimization, to @file{@var{file}.17.jump2}. +Dump after last jump optimization, to @file{@var{file}.22.jump2}. @item k -Dump after conversion from registers to stack, to @file{@var{file}.20.stack}. +Dump after conversion from registers to stack, to @file{@var{file}.25.stack}. @item l -Dump after local register allocation, to @file{@var{file}.12.lreg}. +Dump after local register allocation, to @file{@var{file}.15.lreg}. @item L -Dump after loop optimization, to @file{@var{file}.05.loop}. +Dump after loop optimization, to @file{@var{file}.08.loop}. @item M Dump after performing the machine dependent reorganisation pass, to -@file{@var{file}.18.mach}. +@file{@var{file}.23.mach}. +@item n +Dump after register renumbering, to @file{@var{file}.21.rnreg}. @item N -Dump after the register move pass, to @file{@var{file}.10.regmove}. +Dump after the register move pass, to @file{@var{file}.13.regmove}. @item r Dump after RTL generation, to @file{@var{file}.00.rtl}. @item R Dump after the second instruction scheduling pass, to -@file{@var{file}.16.sched2}. +@file{@var{file}.19.sched2}. @item s Dump after CSE (including the jump optimization that sometimes follows -CSE), to @file{@var{file}.02.cse}. +CSE), to @file{@var{file}.03.cse}. @item S Dump after the first instruction scheduling pass, to -@file{@var{file}.11.sched}. +@file{@var{file}.14.sched}. @item t Dump after the second CSE pass (including the jump optimization that -sometimes follows CSE), to @file{@var{file}.06.cse2}. +sometimes follows CSE), to @file{@var{file}.09.cse2}. +@item w +Dump after the second flow pass, to @file{@var{file}.17.flow2}. +@item z +Dump after the peephold pass, to @file{@var{file}.18.peephole2}. @item a Produce all the dumps listed above. @item m diff --git a/gcc/toplev.c b/gcc/toplev.c index 4f9a3851216..17e8ebc6849 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -251,6 +251,7 @@ struct dump_file_info enum dump_file_index { DFI_rtl, + DFI_sibling, DFI_jump, DFI_cse, DFI_addressof, @@ -284,6 +285,7 @@ enum dump_file_index struct dump_file_info dump_file[DFI_MAX] = { { "rtl", 'r', 0, 0, 0 }, + { "sibling", 'i', 0, 0, 0 }, { "jump", 'j', 0, 0, 0 }, { "cse", 's', 0, 0, 0 }, { "addressof", 'F', 0, 0, 0 }, @@ -2897,8 +2899,13 @@ rest_of_compilation (decl) /* We may have potential sibling or tail recursion sites. Select one (of possibly multiple) methods of performing the call. */ - if (flag_optimize_sibling_calls) - optimize_sibling_and_tail_recursive_calls (); + open_dump_file (DFI_sibling, decl); + TIMEVAR (jump_time, + { + if (flag_optimize_sibling_calls) + optimize_sibling_and_tail_recursive_calls (); + }); + close_dump_file (DFI_sibling, print_rtl, get_insns ()); if (ggc_p) ggc_collect (); -- 2.30.2