[llvm-extract] Add -keep-const-init commandline option
Summary:
This adds -keep-const-init option to llvm-extract which preserves initializers of
used global constants.
For example:
```
$ cat a.ll
@g = constant i32 0
define i32 @f() {
%v = load i32, i32* @g
ret i32 %v
}
$ llvm-extract --func=f a.ll -S -o -
@g = external constant i32
define i32 @f() { .. }
$ llvm-extract --func=f a.ll -keep-const-init -S -o -
@g = constant i32 0
define i32 @f() { .. }
```
This option is useful in checking whether a function that uses a constant global is optimized correctly.
Reviewers: jsji, MaskRay, david2050
Reviewed By: MaskRay
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D73833
diff --git a/llvm/docs/CommandGuide/llvm-extract.rst b/llvm/docs/CommandGuide/llvm-extract.rst
index cd8828b..8e23e70 100644
--- a/llvm/docs/CommandGuide/llvm-extract.rst
+++ b/llvm/docs/CommandGuide/llvm-extract.rst
@@ -55,6 +55,10 @@
bitcode. All global variables matching the regular expression will be
extracted. May be specified multiple times.
+**--keep-const-init**
+
+ Preserve the values of constant globals.
+
**-help**
Print a summary of command line options.