| # 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 | |