This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug middle-end/35854] [4.3/4.4 Regression] life passes dump option still documented



------- Comment #5 from richard dot guenther at gmail dot com  2009-01-28 19:42 -------
Subject: Re:  [4.3/4.4 Regression] life passes dump 
        option still documented

On Wed, Jan 28, 2009 at 5:03 PM, Kenneth Zadeck
<zadeck@naturalbridge.com> wrote:
> rguenth at gcc dot gnu dot org wrote:
>> ------- Comment #3 from rguenth at gcc dot gnu dot org  2009-01-24 10:20 -------
>> GCC 4.3.3 is being released, adjusting target milestone.
>>
>>
>>
> This may be more a change than is acceptable right now for 4.4.   If so
> I will sit on this patch until 4.5 opens up.   The patch is basically a
> complete rewrite of the part of invoke.texi that deals with dump options
> for the rtl pass.   This section had badly rotted.
>
> I started from a grep of the sources looking for "rtl_opt_pass" and
> documented all of the passes that i found in mostly alphabetical
> order.   Where the old version documented several passes together, I
> kept that unless things had changed.   In total there were about a half
> dozen passes that were no longer there and about a dozen new passes that
> had not been documented.
>
> I did make some changes in the code, which is the reason that this may
> not be acceptable to 4.4.  The changes are pretty harmless:  all of them
> involve either removing the pass name or changing it.
>
> 1) Pass names that contained dashes had the dashes changed to
> underscores.   About half used slashes and half underscores and I went
> with underscores to avoid a possible ambiguity with the options parsing.
>
> 2) I also removed the pass name from 6 passes that do not print anything
> or dump the code.

I think this change is agains what was asked for in the past.  We want to have
pass names for all passes.

> 3) Files that contained multiple passes with names of the form xx,
> xx2... were renamed xx1,xx2.
> This later change causes a test suit failure which was fixed.
>
> All of these changes are pretty minor.  The only possible failure these
> can cause are in the test suite where dump files are scanned.
>
> I tested this on x86 and ppc both 32 and 64.  It is possible that there
> are platform specific regression tests that scan for dump files that
> were not caught on these four targets.
>
> I also left in lreg and greg.    These are at the end and need to be
> deleted along with those passes.
>
> I have enclosed a copy of the new text.  The diff is unreadable.
>
> ok for 4.4 or should i wait for 4.5?

This is ok for 4.4 if you remove the parts that remove pass names.  Please
wait a day for comments from others.

Thanks,
Richard.

> Kenny
>
>
> 2009-01-28  Kenneth Zadeck <zadeck@naturalbridge.com>
>
>    PR middle-end/35854
>    * doc/invoke.texi (rtl debug options): Complete rewrite.
>    * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
>    to auto_inc_dec".
>    * df-core.c (df_pass_initialize_opt, df_pass_initialize_no_opt,
>    df_pass_finish): Removed pass name.
>    * mode-switching.c (pass_mode_switching): Rename pass from
>    "mode-sw" to "mode_sw".
>    * except.c (pass_convert_to_eh_ranges): Rename pass from
>    "eh-ranges" to "eh_ranges".
>    * regclass.c (pass_regclass_init, pass_subregs_of_mode_init,
>    pass_subregs_of_mode_finish): Removed pass name.
>    * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
>    to "subreg1".
>
>
> 2009-01-28  Kenneth Zadeck <zadeck@naturalbridge.com>
>
>    PR middle-end/35854
>    * gcc.dg/lower-subreg-1.c: Renamed dump pass from "subreg" to
> "subreg1"
>
>
> ==================
> @item -d@var{letters}
> @itemx -fdump-rtl-@var{pass}
> @opindex d
> Says to make debugging dumps during compilation at times specified by
> @var{letters}.    This is used for debugging the RTL-based passes of the
> compiler.  The file names for most of the dumps are made by appending a
> pass number and a word to the @var{dumpname}.  @var{dumpname} is generated
> from the name of the output file, if explicitly specified and it is not
> an executable, otherwise it is the basename of the source file. These
> switches may have different effects when @option{-E} is used for
> preprocessing.
>
> Debug dumps can be enabled with a @option{-fdump-rtl} switch or some
> @option{-d} option @var{letters}.  Here are the possible
> letters for use in @var{pass} and @var{letters}, and their meanings:
>
> @table @gcctabopt
>
> @item -fdump-rtl-alignments
> @opindex fdump-rtl-alignments
> Dump after branch alignments have been computed.
>
> @item -fdump-rtl-asmcons
> @opindex fdump-rtl-asmcons
> Dump after fixing rtl statements that have unsatisfied in/out constraints.
>
> @item -fdump-rtl-auto_inc_dec
> @opindex fdump-rtl-auto_inc_dec
> Dump after auto-inc-dec discovery.  This pass is only run on
> architectures that have auto inc or auto dec instructions.
>
> @item -fdump-rtl-barriers
> @opindex fdump-rtl-barriers
> Dump after cleaning up the barrier instructions.
>
> @item -fdump-rtl-bbpart
> @opindex fdump-rtl-bbpart
> Dump after partitioning hot and cold basic blocks.
>
> @item -fdump-rtl-bbro
> @opindex fdump-rtl-bbro
> Dump after block reordering.
>
> @item -fdump-rtl-btl1
> @itemx -fdump-rtl-btl2
> @opindex fdump-rtl-btl2
> @opindex fdump-rtl-btl2
> @option{-fdump-rtl-btl1} and @option{-fdump-rtl-btl2} enable dumping
> after the two branch
> target load optimization passes.
>
> @item -fdump-rtl-bypass
> @opindex fdump-rtl-bypass
> Dump after jump bypassing and control flow optimizations.
>
> @item -fdump-rtl-combine
> @opindex fdump-rtl-combine
> Dump after the RTL instruction combination pass.
>
> @item -fdump-rtl-compgotos
> @opindex fdump-rtl-compgotos
> Dump after dumplicating the computed gotos.
>
> @item -fdump-rtl-ce1
> @itemx -fdump-rtl-ce2
> @itemx -fdump-rtl-ce3
> @opindex fdump-rtl-ce1
> @opindex fdump-rtl-ce2
> @opindex fdump-rtl-ce3
> @option{-fdump-rtl-ce1}, @option{-fdump-rtl-ce2}, and
> @option{-fdump-rtl-ce3} enable dumping after the three
> if conversion passes.
>
> @itemx -fdump-rtl-cprop_hardreg
> @opindex fdump-rtl-cprop_hardreg
> Dump after hard register copy propagation.
>
> @itemx -fdump-rtl-csa
> @opindex fdump-rtl-csa
> Dump after combining stack adjustments.
>
> @item -fdump-rtl-cse1
> @itemx -fdump-rtl-cse2
> @opindex fdump-rtl-cse1
> @opindex fdump-rtl-cse2
> @option{-fdump-rtl-cse1} and @option{-fdump-rtl-cse2} enable dumping after
> the two common sub-expression elimination passes.
>
> @itemx -fdump-rtl-dce
> @opindex fdump-rtl-dce
> Dump after the standalone dead code elimination passes.
>
> @itemx -fdump-rtl-dbr
> @opindex fdump-rtl-dbr
> Dump after delayed branch scheduling.
>
> @item -fdump-rtl-dce1
> @itemx -fdump-rtl-dce2
> @opindex fdump-rtl-dce1
> @opindex fdump-rtl-dce2
> @option{-fdump-rtl-dce1} and @option{-fdump-rtl-dce2} enable dumping after
> the two dead store elimination passes.
>
> @item -fdump-rtl-eh
> @opindex fdump-rtl-eh
> Dump after finalization of EH handling code.
>
> @item -fdump-rtl-eh_ranges
> @opindex fdump-rtl-eh_ranges
> Dump after conversion of EH handling range regions.
>
> @item -fdump-rtl-expand
> @opindex fdump-rtl-expand
> Dump after RTL generation.
>
> @item -fdump-rtl-fwprop1
> @itemx -fdump-rtl-fwprop2
> @opindex fdump-rtl-fwprop1
> @opindex fdump-rtl-fwprop2
> @option{-fdump-rtl-fwprop1} and @option{-fdump-rtl-fwprop2} enable
> dumping after the two forward propagation passes.
>
> @item -fdump-rtl-gcse1
> @itemx -fdump-rtl-gcse2
> @opindex fdump-rtl-gcse1
> @opindex fdump-rtl-gcse2
> @option{-fdump-rtl-gcse1} and @option{-fdump-rtl-gcse2} enable dumping
> after global common subexpression elimination.
>
> @item -fdump-rtl-init-regs
> @opindex fdump-rtl-init-regs
> Dump after the initialization of the registers.
>
> @item -fdump-rtl-initvals
> @opindex fdump-rtl-initvals
> Dump after the computation of the initial value sets.
>
> @itemx -fdump-rtl-into_cfglayout
> @opindex fdump-rtl-into_cfglayout
> Dump after converting to cfglayout mode.
>
> @item -fdump-rtl-ira
> @opindex fdump-rtl-ira
> Dump after iterated register allocation.
>
> @item -fdump-rtl-jump
> @opindex fdump-rtl-jump
> Dump after the second jump optimization.
>
> @item -fdump-rtl-loop2
> @opindex fdump-rtl-loop2
> @option{-fdump-rtl-loop2} enables dumping after the rtl
> loop optimization passes.
>
> @item -fdump-rtl-mach
> @opindex fdump-rtl-mach
> Dump after performing the machine dependent reorganization pass, if that
> pass exists.
>
> @item -fdump-rtl-mode_sw
> @opindex fdump-rtl-mode_sw
> Dump after removing redundant mode switches.
>
> @item -fdump-rtl-rnreg
> @opindex fdump-rtl-rnreg
> Dump after register renumbering.
>
> @itemx -fdump-rtl-outof_cfglayout
> @opindex fdump-rtl-outof_cfglayout
> Dump after converting from cfglayout mode.
>
> @item -fdump-rtl-peephole2
> @opindex fdump-rtl-peephole2
> Dump after the peephole pass.
>
> @item -fdump-rtl-postreload
> @opindex fdump-rtl-postreload
> Dump after post-reload optimizations.
>
> @itemx -fdump-rtl-pro_and_epilogue
> @opindex fdump-rtl-pro_and_epilogue
> Dump after generating the function pro and epilogues.
>
> @item -fdump-rtl-regmove
> @opindex fdump-rtl-regmove
> Dump after the register move pass.
>
> @item -fdump-rtl-sched1
> @itemx -fdump-rtl-sched2
> @opindex fdump-rtl-sched1
> @opindex fdump-rtl-sched2
> @option{-fdump-rtl-sched1} and @option{-fdump-rtl-sched2} enable dumping
> after the basic block scheduling passes.
>
> @item -fdump-rtl-see
> @opindex fdump-rtl-see
> Dump after sign extension elimination.
>
> @item -fdump-rtl-seqabstr
> @opindex fdump-rtl-seqabstr
> Dump after common sequence discovery.
>
> @item -fdump-rtl-shorten
> @opindex fdump-rtl-shorten
> Dump after shortening branches.
>
> @item -fdump-rtl-sibling
> @opindex fdump-rtl-sibling
> Dump after sibling call optimizations.
>
> @item -fdump-rtl-split1
> @itemx -fdump-rtl-split2
> @itemx -fdump-rtl-split3
> @itemx -fdump-rtl-split4
> @itemx -fdump-rtl-split5
> @opindex fdump-rtl-split1
> @opindex fdump-rtl-split2
> @opindex fdump-rtl-split3
> @opindex fdump-rtl-split4
> @opindex fdump-rtl-split5
> @option{-fdump-rtl-split1}, @option{-fdump-rtl-split2},
> @option{-fdump-rtl-split3}, @option{-fdump-rtl-split4} and
> @option{-fdump-rtl-split5} enable dumping after five rounds of
> instruction splitting.
>
> @item -fdump-rtl-sms
> @opindex fdump-rtl-sms
> Dump after modulo scheduling.  This pass is only run on some
> architectures.
>
> @item -fdump-rtl-stack
> @opindex fdump-rtl-stack
> Dump after conversion from GCC's "flat register file" registers to the
> x87's stack-like registers.  This pass is only run on x86 variants.
>
> @item -fdump-rtl-subreg1
> @itemx -fdump-rtl-subreg2
> @opindex fdump-rtl-subreg1
> @opindex fdump-rtl-subreg2
> @option{-fdump-rtl-subreg1} and @option{-fdump-rtl-subreg2} enable
> dumping after
> the two subreg expansion passes.
>
> @item -fdump-rtl-unshare
> @opindex fdump-rtl-unshare
> Dump after all rtl has been unshared.
>
> @item -fdump-rtl-vartrack
> @opindex fdump-rtl-vartrack
> Dump after variable tracking.
>
> @item -fdump-rtl-vregs
> @opindex fdump-rtl-vregs
> Dump after converting virtual registers to hard registers.
>
> @item -fdump-rtl-web
> @opindex fdump-rtl-web
> Dump after live range splitting.
>
> @item -fdump-rtl-lreg
> @opindex fdump-rtl-lreg
> Dump after local register allocation.
> @item -fdump-rtl-greg
> @opindex fdump-rtl-greg
> Dump after global register allocation.
>
> @item -fdump-rtl-all
> @opindex fdump-rtl-all
> Produce all the dumps listed above.
>
> @item -dA
> @opindex dA
> Annotate the assembler output with miscellaneous debugging information.
>
> @item -dD
> @opindex dD
> Dump all macro definitions, at the end of preprocessing, in addition to
> normal output.
>
> @item -dH
> @opindex dH
> Produce a core dump whenever an error occurs.
>
> @item -dm
> @opindex dm
> Print statistics on memory usage, at the end of the run, to
> standard error.
>
> @item -dp
> @opindex dp
> Annotate the assembler output with a comment indicating which
> pattern and alternative was used.  The length of each instruction is
> also printed.
>
> @item -dP
> @opindex dP
> Dump the RTL in the assembler output as a comment before each instruction.
> Also turns on @option{-dp} annotation.
>
> @item -dv
> @opindex dv
> For each of the other indicated dump files (@option{-fdump-rtl-@var{pass}}),
> dump a representation of the control flow graph suitable for viewing
> with VCG
> to @file{@var{file}.@var{pass}.vcg}.
>
> @item -dx
> @opindex dx
> Just generate RTL for a function instead of compiling it.  Usually used
> with @option{-fdump-rtl-expand}.
>
> @item -dy
> @opindex dy
> Dump debugging information during parsing, to standard error.
> @end table
>
>


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35854


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]