mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-25 11:46:08 +00:00

This introduces a new cgdata format for stable function maps. The raw data is embedded in the __llvm_merge section during compile time. This data can be read and merged using the llvm-cgdata tool, into an indexed cgdata file. Consequently, the tool is now capable of handling either outlined hash trees, stable function maps, or both, as they are orthogonal. Depends on #112662. This is a patch for https://discourse.llvm.org/t/rfc-global-function-merging/82608.
67 lines
1.7 KiB
ReStructuredText
67 lines
1.7 KiB
ReStructuredText
llvm-cgdata - LLVM CodeGen Data Tool
|
|
====================================
|
|
|
|
.. program:: llvm-cgdata
|
|
|
|
SYNOPSIS
|
|
--------
|
|
|
|
:program:`llvm-cgdata` [**commands**] [**options**] (<binaries>|<.cgdata>)
|
|
|
|
DESCRIPTION
|
|
-----------
|
|
|
|
The :program:llvm-cgdata utility parses raw codegen data embedded in compiled
|
|
binary files and merges them into a single .cgdata file. It can also inspect
|
|
and manipulate .cgdata files. Currently, the tool supports saving and restoring
|
|
outlined hash trees and stable function maps, allowing for more efficient
|
|
function outlining and function merging across modules in subsequent
|
|
compilations. The design is extensible, allowing for the incorporation of
|
|
additional codegen summaries and optimization techniques.
|
|
|
|
COMMANDS
|
|
--------
|
|
|
|
At least one of the following commands are required:
|
|
|
|
.. option:: --convert
|
|
|
|
Convert a .cgdata file from one format to another.
|
|
|
|
.. option:: --merge
|
|
|
|
Merge multiple raw codgen data in binaries into a single .cgdata file.
|
|
|
|
.. option:: --show
|
|
|
|
Show summary information about a .cgdata file.
|
|
|
|
OPTIONS
|
|
-------
|
|
|
|
:program:`llvm-cgdata` supports the following options:
|
|
|
|
.. option:: --format=[text|binary]
|
|
|
|
Specify the format of the output .cgdata file.
|
|
|
|
.. option:: --output=<string>
|
|
|
|
Specify the output file name.
|
|
|
|
.. option:: --cgdata-version
|
|
|
|
Print the version of the llvm-cgdata tool.
|
|
|
|
EXAMPLES
|
|
--------
|
|
|
|
To convert a .cgdata file from binary to text format:
|
|
$ llvm-cgdata --convert --format=text input.cgdata --output=output.data
|
|
|
|
To merge multiple raw codegen data in object files into a single .cgdata file:
|
|
$ llvm-cgdata --merge file1.o file2.o --output=merged.cgdata
|
|
|
|
To show summary information about a .cgdata file:
|
|
$ llvm-cgdata --show input.cgdata
|