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
13 lines
298 B
LLVM
13 lines
298 B
LLVM
; RUN: llvm-extract -func foo -keep-const-init -S < %s | FileCheck %s
|
|
; RUN: llvm-extract -func foo -S < %s | FileCheck %s --check-prefix=CHECK2
|
|
|
|
; CHECK: @cv = constant i32 0
|
|
; CHECK2: @cv = external constant i32
|
|
|
|
@cv = constant i32 0
|
|
|
|
define i32 @foo() {
|
|
%v = load i32, i32* @cv
|
|
ret i32 %v
|
|
}
|