A dump_manager class is defined in dumpfile.h. Various passes
register dumping pass-specific information via dump_register
in
passes.c. During the registration, an optimization pass can
select its optimization group (see Optimization groups). After
that optimization information corresponding to the entire group
(presumably from multiple passes) can be output via command-line
switches. Note that if a pass does not fit into any of the pre-defined
groups, it can select OPTGROUP_NONE
.
Note that in general, a pass need not know its dump output file name,
whether certain flags are enabled, etc. However, for legacy reasons,
passes could also call dump_begin
which returns a stream in
case the particular pass has optimization dumps enabled. A pass could
call dump_end
when the dump has ended. These methods should go
away once all the passes are converted to use the new dump
infrastructure.
The recommended way to setup the dump output is via dump_start
and dump_end
.