Says to make debugging dumps during compilation at times specified
by 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 dumpname. 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
Most debug dumps can be enabled either passing a letter to the -d
option, or with a long -fdump-rtl switch; here are the possible
letters for use in letters and pass, and their meanings:
-dA Annotate the assembler output with miscellaneous debugging
Dump after computing branch probabilities, to file.09.bp.
Dump after block reordering, to file.30.bbro.
Dump after instruction combination, to the file file.17.com-
-dC and -fdump-rtl-ce1 enable dumping after the first if con-
version, to the file file.11.ce1. -dC and -fdump-rtl-ce2
enable dumping after the second if conversion, to the file
-dd and -fdump-rtl-btl enable dumping after branch target load
optimization, to file.31.btl. -dd and -fdump-rtl-dbr enable
dumping after delayed branch scheduling, to file.36.dbr.
-dD Dump all macro definitions, at the end of preprocessing, in
addition to normal output.
Dump after the third if conversion, to file.28.ce3.
-df and -fdump-rtl-cfg enable dumping after control and data
flow analysis, to file.08.cfg. -df and -fdump-rtl-cfg enable
dumping dump after life analysis, to file.16.life.
Dump after global register allocation, to file.23.greg.
-dG and -fdump-rtl-gcse enable dumping after GCSE, to
file.05.gcse. -dG and -fdump-rtl-bypass enable dumping after
jump bypassing and control flow optimizations, to
Dump after finalization of EH handling code, to file.02.eh.
Dump after sibling call optimizations, to file.01.sibling.
Dump after the first jump optimization, to file.03.jump.
Dump after conversion from registers to stack, to
Dump after local register allocation, to file.22.lreg.
-dL and -fdump-rtl-loop enable dumping after the first loop
optimization pass, to file.06.loop. -dL and -fdump-rtl-loop2
enable dumping after the second pass, to file.13.loop2.
Dump after modulo scheduling, to file.20.sms.
Dump after performing the machine dependent reorganization
pass, to file.35.mach.
Dump after register renumbering, to file.29.rnreg.
Dump after the register move pass, to file.19.regmove.
Dump after post-reload optimizations, to file.24.postreload.
Dump after RTL generation, to file.00.expand.
Dump after the second scheduling pass, to file.32.sched2.
Dump after CSE (including the jump optimization that sometimes
follows CSE), to file.04.cse.
Dump after the first scheduling pass, to file.21.sched.
Dump after the second CSE pass (including the jump optimization
that sometimes follows CSE), to file.15.cse2.
Dump after running tracer, to file.12.tracer.
-dV and -fdump-rtl-vpt enable dumping after the value profile
transformations, to file.10.vpt. -dV and -fdump-rtl-vartrack
enable dumping after variable tracking, to file.34.vartrack.
Dump after the second flow pass, to file.26.flow2.
Dump after the peephole pass, to file.27.peephole2.
Dump after live range splitting, to file.14.web.
Produce all the dumps listed above.
-dH Produce a core dump whenever an error occurs.
-dm Print statistics on memory usage, at the end of the run, to
-dp Annotate the assembler output with a comment indicating which
pattern and alternative was used. The length of each instruc-
tion is also printed.
-dP Dump the RTL in the assembler output as a comment before each
instruction. Also turns on -dp annotation.
-dv For each of the other indicated dump files (either with -d or
-fdump-rtl-pass), dump a representation of the control flow
graph suitable for viewing with VCG to file.pass.vcg.
-dx Just generate RTL for a function instead of compiling it. Usu-
ally used with r (-fdump-rtl-expand).
-dy Dump debugging information during parsing, to standard error.