On Mon, Apr 28, 2025 at 4:10 PM Martin Jambor <mjam...@suse.cz> wrote:
>
> Hi,
>
> I have noticed that the option -fdump-ipa-clones is not documented
> although there are users who depend on it.  This patch adds the
> missing documentation along with the description of the information it
> dumps and the format it uses.
>
> I am never quite sure which of the texinfo mark-ups is the most
> appropriate in which situation, I'll of course incorporate any
> feedback on this as well as the general wording of the text.
>
> After we settle on a version, I'd like to backport the documentation
> also at least to GCC 15, 14 and 13.
>
> I have tested this patch with make info, make pdf and make html and
> manually inspecting the output.  Is it perhaps OK for master and the
> branches or what would better be changed?

OK for trunk and branches.

Richard.

> Thanks,
>
> Martin
>
> gcc/ChangeLog:
>
> 2025-04-23  Martin Jambor  <mjam...@suse.cz>
>
>         * doc/invoke.texi (Developer Options): Document -fdump-ipa-clones.
> ---
>  gcc/doc/invoke.texi | 87 +++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 87 insertions(+)
>
> diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
> index 020442aa032..79528136734 100644
> --- a/gcc/doc/invoke.texi
> +++ b/gcc/doc/invoke.texi
> @@ -20737,6 +20737,93 @@ By default, the dump will contain messages about 
> successful
>  optimizations (equivalent to @option{-optimized}) together with
>  low-level details about the analysis.
>
> +@opindex fdump-ipa-clones
> +@item -fdump-ipa-clones
> +
> +Create a dump file containing information about creation of call graph
> +node clones and removals of call graph nodes during inter-procedural
> +optimizations and transformations.  Its main intended use is that tools
> +that create live-patches can determine the set of functions that need to
> +be live-patched to completely replace a particular function (see
> +@option{-flive-patching}).  The file name is generated by appending
> +suffix @code{ipa-clones} to the source file name, and the file is
> +created in the same directory as the output file.  Each entry in the
> +file is on a separate line containing semicolon separated fields.
> +
> +In the case of call graph clone creation, the individual fields are:
> +
> +@enumerate
> +@item
> +String @code{Callgraph clone}.
> +
> +@item
> +Name of the function being cloned as it is presented to the assembler.
> +
> +@item
> +A number that uniquely represents the function being cloned in the call
> +graph.  Note that the number is unique only within a compilation unit or
> +within whole-program analysis but is likely to be different in the two
> +phases.
> +
> +@item
> +The file name of the source file where the function is defined.
> +
> +@item
> +The line on which the function definition is located.
> +
> +@item
> +The column where the function definition is located.
> +
> +@item
> +Name of the new function clone as it is presented to the assembler.
> +
> +@item
> +A number that uniquely represents the new function clone in the call
> +graph.  Note that the number is unique only within a compilation unit or
> +within whole-program analysis but is likely to be different in the two
> +phases.
> +
> +@item
> +The file name of the source file where the source code location of the
> +new clone points to.
> +
> +@item
> +The line to which the source code location of the new clone points to.
> +
> +@item
> +The column to which the source code location of the new clone points to.
> +
> +@item
> +A string that determines the reason for cloning.
> +
> +@end enumerate
> +
> +In the case of call graph clone removal, the individual fields are:
> +
> +@enumerate
> +@item
> +String @code{Callgraph removal}.
> +
> +@item
> +Name of the function being removed as it would be presented to the assembler.
> +
> +@item
> +A number that uniquely represents the function being cloned in the call
> +graph.  Note that the number is unique only within a compilation unit or
> +within whole-program analysis but is likely to be different in the two
> +phases.
> +
> +@item
> +The file name of the source file where the function is defined.
> +
> +@item
> +The line on which the function definition is located.
> +
> +@item
> +The column where the function definition is located.
> +
> +@end enumerate
> +
>  @opindex fdump-lang
>  @item -fdump-lang
>  Dump language-specific information.  The file name is made by appending
> --
> 2.49.0
>

Reply via email to