aboutsummaryrefslogtreecommitdiff
path: root/gcc/doc/optinfo.texi
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/doc/optinfo.texi')
-rw-r--r--gcc/doc/optinfo.texi246
1 files changed, 0 insertions, 246 deletions
diff --git a/gcc/doc/optinfo.texi b/gcc/doc/optinfo.texi
deleted file mode 100644
index c024463..0000000
--- a/gcc/doc/optinfo.texi
+++ /dev/null
@@ -1,246 +0,0 @@
-@c Copyright (C) 2013-2022 Free Software Foundation, Inc.
-@c This is part of the GCC manual.
-@c For copying conditions, see the file gcc.texi.
-
-@cindex optimization dumps
-
-This section is describes dump infrastructure which is common to both
-pass dumps as well as optimization dumps. The goal for this
-infrastructure is to provide both gcc developers and users detailed
-information about various compiler transformations and optimizations.
-
-@menu
-* Dump setup:: Setup of optimization dumps.
-* Optimization groups:: Groups made up of optimization passes.
-* Dump files and streams:: Dump output file names and streams.
-* Dump output verbosity:: How much information to dump.
-* Dump types:: Various types of dump functions.
-* Dump examples:: Sample usage.
-@end menu
-
-@node Dump setup
-@subsection Dump setup
-@cindex dump setup
-
-A dump_manager class is defined in @file{dumpfile.h}. Various passes
-register dumping pass-specific information via @code{dump_register} in
-@file{passes.cc}. During the registration, an optimization pass can
-select its optimization group (@pxref{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 @code{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 @code{dump_begin} which returns a stream in
-case the particular pass has optimization dumps enabled. A pass could
-call @code{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 @code{dump_start}
-and @code{dump_end}.
-
-@node Optimization groups
-@subsection Optimization groups
-@cindex optimization groups
-The optimization passes are grouped into several categories. Currently
-defined categories in @file{dumpfile.h} are
-
-@ftable @code
-
-@item OPTGROUP_IPA
-IPA optimization passes. Enabled by @option{-ipa}
-
-@item OPTGROUP_LOOP
-Loop optimization passes. Enabled by @option{-loop}.
-
-@item OPTGROUP_INLINE
-Inlining passes. Enabled by @option{-inline}.
-
-@item OPTGROUP_OMP
-OMP (Offloading and Multi Processing) passes. Enabled by
-@option{-omp}.
-
-@item OPTGROUP_VEC
-Vectorization passes. Enabled by @option{-vec}.
-
-@item OPTGROUP_OTHER
-All other optimization passes which do not fall into one of the above.
-
-@item OPTGROUP_ALL
-All optimization passes. Enabled by @option{-optall}.
-
-@end ftable
-
-By using groups a user could selectively enable optimization
-information only for a group of passes. By default, the optimization
-information for all the passes is dumped.
-
-@node Dump files and streams
-@subsection Dump files and streams
-@cindex optimization info file names
-
-There are two separate output streams available for outputting
-optimization information from passes. Note that both these streams
-accept @code{stderr} and @code{stdout} as valid streams and thus it is
-possible to dump output to standard output or error. This is specially
-handy for outputting all available information in a single file by
-redirecting @code{stderr}.
-
-@table @code
-@item @code{pstream}
-This stream is for pass-specific dump output. For example,
-@option{-fdump-tree-vect=foo.v} dumps tree vectorization pass output
-into the given file name @file{foo.v}. If the file name is not provided,
-the default file name is based on the source file and pass number. Note
-that one could also use special file names @code{stdout} and
-@code{stderr} for dumping to standard output and standard error
-respectively.
-
-@item @code{alt_stream}
-This steam is used for printing optimization specific output in
-response to the @option{-fopt-info}. Again a file name can be given. If
-the file name is not given, it defaults to @code{stderr}.
-@end table
-
-@node Dump output verbosity
-@subsection Dump output verbosity
-@cindex dump verbosity
-
-The dump verbosity has the following options
-
-@table @samp
-@item optimized
-Print information when an optimization is successfully applied. It is
-up to a pass to decide which information is relevant. For example, the
-vectorizer passes print the source location of loops which got
-successfully vectorized.
-
-@item missed
-Print information about missed optimizations. Individual passes
-control which information to include in the output. For example,
-
-@smallexample
-gcc -O2 -ftree-vectorize -fopt-info-vec-missed
-@end smallexample
-
-will print information about missed optimization opportunities from
-vectorization passes on stderr.
-
-@item note
-Print verbose information about optimizations, such as certain
-transformations, more detailed messages about decisions etc.
-
-@item all
-Print detailed optimization information. This includes
-@var{optimized}, @var{missed}, and @var{note}.
-@end table
-
-@node Dump types
-@subsection Dump types
-@cindex dump types
-
-@ftable @code
-
-@item dump_printf
-
-This is a generic method for doing formatted output. It takes an
-additional argument @code{dump_kind} which signifies the type of
-dump. This method outputs information only when the dumps are enabled
-for this particular @code{dump_kind}. Note that the caller doesn't
-need to know if the particular dump is enabled or not, or even the
-file name. The caller only needs to decide which dump output
-information is relevant, and under what conditions. This determines
-the associated flags.
-
-Consider the following example from @file{loop-unroll.cc} where an
-informative message about a loop (along with its location) is printed
-when any of the following flags is enabled
-@itemize @minus
-
-@item optimization messages
-@item RTL dumps
-@item detailed dumps
-
-@end itemize
-
-@example
-int report_flags = MSG_OPTIMIZED_LOCATIONS | TDF_RTL | TDF_DETAILS;
-dump_printf_loc (report_flags, insn,
- "loop turned into non-loop; it never loops.\n");
-@end example
-
-@item dump_basic_block
-Output basic block.
-@item dump_generic_expr
-Output generic expression.
-@item dump_gimple_stmt
-Output gimple statement.
-
-Note that the above methods also have variants prefixed with
-@code{_loc}, such as @code{dump_printf_loc}, which are similar except
-they also output the source location information. The @code{_loc} variants
-take a @code{const dump_location_t &}. This class can be constructed from
-a @code{gimple *} or from a @code{rtx_insn *}, and so callers can pass
-a @code{gimple *} or a @code{rtx_insn *} as the @code{_loc} argument.
-The @code{dump_location_t} constructor will extract the source location
-from the statement or instruction, along with the profile count, and
-the location in GCC's own source code (or the plugin) from which the dump
-call was emitted. Only the source location is currently used.
-There is also a @code{dump_user_location_t} class, capturing the
-source location and profile count, but not the dump emission location,
-so that locations in the user's code can be passed around. This
-can also be constructed from a @code{gimple *} and from a @code{rtx_insn *},
-and it too can be passed as the @code{_loc} argument.
-
-@end ftable
-
-@node Dump examples
-@subsection Dump examples
-@cindex dump examples
-
-@smallexample
-gcc -O3 -fopt-info-missed=missed.all
-@end smallexample
-
-outputs missed optimization report from all the passes into
-@file{missed.all}.
-
-As another example,
-@smallexample
-gcc -O3 -fopt-info-inline-optimized-missed=inline.txt
-@end smallexample
-
-will output information about missed optimizations as well as
-optimized locations from all the inlining passes into
-@file{inline.txt}.
-
-If the @var{filename} is provided, then the dumps from all the
-applicable optimizations are concatenated into the @file{filename}.
-Otherwise the dump is output onto @file{stderr}. If @var{options} is
-omitted, it defaults to @option{optimized-optall}, which means dump
-all information about successful optimizations from all the passes.
-In the following example, the optimization information is output on
-to @file{stderr}.
-
-@smallexample
-gcc -O3 -fopt-info
-@end smallexample
-
-Note that @option{-fopt-info-vec-missed} behaves the same as
-@option{-fopt-info-missed-vec}. The order of the optimization group
-names and message types listed after @option{-fopt-info} does not matter.
-
-As another example, consider
-
-@smallexample
-gcc -fopt-info-vec-missed=vec.miss -fopt-info-loop-optimized=loop.opt
-@end smallexample
-
-Here the two output file names @file{vec.miss} and @file{loop.opt} are
-in conflict since only one output file is allowed. In this case, only
-the first option takes effect and the subsequent options are
-ignored. Thus only the @file{vec.miss} is produced which containts
-dumps from the vectorizer about missed opportunities.