Add module level inliner, which is a minimum viable product at this point. Also add some tests for it. RFC: https://lists.llvm.org/pipermail/llvm-dev/2021-August/152297.html Reviewed By: kazu Differential Revision: https://reviews.llvm.org/D106448
20 lines
427 B
LLVM
20 lines
427 B
LLVM
; RUN: opt < %s -inline -S | FileCheck %s
|
|
; RUN: opt < %s -passes='cgscc(inline)' -S | FileCheck %s
|
|
; RUN: opt < %s -passes='module-inline' -S | FileCheck %s
|
|
|
|
define i32 @testByte(i8 %X) {
|
|
entry:
|
|
%tmp = icmp ne i8 %X, 0
|
|
%tmp.i = zext i1 %tmp to i32
|
|
ret i32 %tmp.i
|
|
}
|
|
|
|
define i32 @main() {
|
|
; CHECK-LABEL: define i32 @main()
|
|
entry:
|
|
%rslt = call i32 @testByte(i8 123)
|
|
; CHECK-NOT: call
|
|
ret i32 %rslt
|
|
; CHECK: ret i32 1
|
|
}
|