[llvm] [CGData] Document for llvm-cgdata (PR #106320)

Kyungwoo Lee via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 27 17:50:19 PDT 2024


https://github.com/kyulee-com created https://github.com/llvm/llvm-project/pull/106320

This is a follow-up for https://github.com/llvm/llvm-project/pull/101461.

>From d695214ea0bf4ce920e04b9c68c50a97355ed08d Mon Sep 17 00:00:00 2001
From: Kyungwoo Lee <kyulee at meta.com>
Date: Tue, 27 Aug 2024 17:48:10 -0700
Subject: [PATCH] [CGData] Document for llvm-cgdata

---
 llvm/docs/CommandGuide/index.rst       |  1 +
 llvm/docs/CommandGuide/llvm-cgdata.rst | 68 ++++++++++++++++++++++++++
 2 files changed, 69 insertions(+)
 create mode 100644 llvm/docs/CommandGuide/llvm-cgdata.rst

diff --git a/llvm/docs/CommandGuide/index.rst b/llvm/docs/CommandGuide/index.rst
index 0dbb5f40f10f00..643951eca2a260 100644
--- a/llvm/docs/CommandGuide/index.rst
+++ b/llvm/docs/CommandGuide/index.rst
@@ -18,6 +18,7 @@ Basic Commands
    llc
    lli
    llvm-as
+   llvm-cgdata
    llvm-config
    llvm-cov
    llvm-cxxmap
diff --git a/llvm/docs/CommandGuide/llvm-cgdata.rst b/llvm/docs/CommandGuide/llvm-cgdata.rst
new file mode 100644
index 00000000000000..f592e1508844ee
--- /dev/null
+++ b/llvm/docs/CommandGuide/llvm-cgdata.rst
@@ -0,0 +1,68 @@
+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,
+enabling global function outlining across modules, allowing for more
+efficient function outlining in subsequent compilations.
+The design is extensible, allowing for the incorporation of additional
+codegen summaries and optimization techniques, such as global function
+merging, in the future.
+
+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



More information about the llvm-commits mailing list