Dump file for sibling call
Richard Kenner
kenner@vlsi1.ultra.nyu.edu
Thu Apr 20 05:08:00 GMT 2000
The sibling call optimization can do major changes to the RTL (including
deleting unreachable blocks!), so it needs its own dump file.
Moreover, teh time to do it needs to be aloocated for.
Finally, when I went to add teh new code to the documentation, I found
that the list of dump flags and file numbers was already wrong, so I fixed it.
Thu Apr 20 08:01:07 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* 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.
*** toplev.c 2000/04/17 16:49:00 1.320
--- toplev.c 2000/04/20 10:56:45
*************** enum dump_file_index
*** 252,255 ****
--- 252,256 ----
{
DFI_rtl,
+ DFI_sibling,
DFI_jump,
DFI_cse,
*************** struct dump_file_info dump_file[DFI_MAX]
*** 285,288 ****
--- 286,290 ----
{
{ "rtl", 'r', 0, 0, 0 },
+ { "sibling", 'i', 0, 0, 0 },
{ "jump", 'j', 0, 0, 0 },
{ "cse", 's', 0, 0, 0 },
*************** rest_of_compilation (decl)
*** 2898,2903 ****
/* 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 ();
if (ggc_p)
--- 2900,2910 ----
/* We may have potential sibling or tail recursion sites. Select one
(of possibly multiple) methods of performing the call. */
! 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)
*** invoke.texi 2000/04/11 07:20:47 1.184
--- invoke.texi 2000/04/20 12:02:25
***************
*** 2202,2250 ****
Annotate the assembler output with miscellaneous debugging information.
@item b
! Dump after computing branch probabilities, to @file{@var{file}.07.bp}.
@item c
! Dump after instruction combination, to the file @file{@var{file}.09.combine}.
@item d
! Dump after delayed branch scheduling, to @file{@var{file}.19.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 f
! Dump after flow analysis, to @file{@var{file}.08.flow}.
@item g
! Dump after global register allocation, to @file{@var{file}.13.greg}.
@item G
! Dump after GCSE, to @file{@var{file}.04.gcse}.
@item j
! Dump after first jump optimization, to @file{@var{file}.01.jump}.
@item J
! Dump after last jump optimization, to @file{@var{file}.17.jump2}.
@item k
! Dump after conversion from registers to stack, to @file{@var{file}.20.stack}.
@item l
! Dump after local register allocation, to @file{@var{file}.12.lreg}.
@item L
! Dump after loop optimization, to @file{@var{file}.05.loop}.
@item M
Dump after performing the machine dependent reorganisation pass, to
! @file{@var{file}.18.mach}.
@item N
! Dump after the register move pass, to @file{@var{file}.10.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}.
@item s
Dump after CSE (including the jump optimization that sometimes follows
! CSE), to @file{@var{file}.02.cse}.
@item S
Dump after the first instruction scheduling pass, to
! @file{@var{file}.11.sched}.
@item t
Dump after the second CSE pass (including the jump optimization that
! sometimes follows CSE), to @file{@var{file}.06.cse2}.
@item a
Produce all the dumps listed above.
--- 2202,2263 ----
Annotate the assembler output with miscellaneous debugging information.
@item b
! 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}.12.combine}.
@item d
! 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 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}.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}.16.greg}.
@item G
! 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}.02.jump}.
@item J
! Dump after last jump optimization, to @file{@var{file}.22.jump2}.
@item k
! Dump after conversion from registers to stack, to @file{@var{file}.25.stack}.
@item l
! Dump after local register allocation, to @file{@var{file}.15.lreg}.
@item L
! Dump after loop optimization, to @file{@var{file}.08.loop}.
@item M
Dump after performing the machine dependent reorganisation pass, to
! @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}.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}.19.sched2}.
@item s
Dump after CSE (including the jump optimization that sometimes follows
! CSE), to @file{@var{file}.03.cse}.
@item S
Dump after the first instruction scheduling pass, to
! @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}.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.
More information about the Gcc-patches
mailing list