forked from OSchip/llvm-project
Replace four tiny tests with various uses of grep and not with a single
test and FileCheck. llvm-svn: 153831
This commit is contained in:
parent
779b32a44e
commit
1989bb9c43
|
@ -1,10 +0,0 @@
|
||||||
; RUN: opt < %s -inline-threshold=0 -inline -S | not grep call
|
|
||||||
|
|
||||||
define i32 @fn2() alwaysinline {
|
|
||||||
ret i32 1
|
|
||||||
}
|
|
||||||
|
|
||||||
define i32 @fn3() {
|
|
||||||
%r = call i32 @fn2()
|
|
||||||
ret i32 %r
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
; RUN: opt < %s -always-inline -S | not grep call
|
|
||||||
|
|
||||||
; Ensure that threshold doesn't disrupt always inline.
|
|
||||||
; RUN: opt < %s -inline-threshold=-2000000001 -always-inline -S | not grep call
|
|
||||||
|
|
||||||
|
|
||||||
define internal i32 @if0() alwaysinline {
|
|
||||||
ret i32 1
|
|
||||||
}
|
|
||||||
|
|
||||||
define i32 @f0() {
|
|
||||||
%r = call i32 @if0()
|
|
||||||
ret i32 %r
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
; RUN: opt < %s -always-inline -S | grep {@foo}
|
|
||||||
; Ensure that foo is not removed by always inliner
|
|
||||||
; PR 2945
|
|
||||||
|
|
||||||
define internal i32 @foo() nounwind {
|
|
||||||
ret i32 0
|
|
||||||
}
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
; RUN: opt < %s -inline-threshold=0 -always-inline -S | FileCheck %s
|
||||||
|
;
|
||||||
|
; Ensure the threshold has no impact on these decisions.
|
||||||
|
; RUN: opt < %s -inline-threshold=20000000 -always-inline -S | FileCheck %s
|
||||||
|
; RUN: opt < %s -inline-threshold=-20000000 -always-inline -S | FileCheck %s
|
||||||
|
|
||||||
|
define i32 @inner1() alwaysinline {
|
||||||
|
ret i32 1
|
||||||
|
}
|
||||||
|
define i32 @outer1() {
|
||||||
|
; CHECK: @outer1
|
||||||
|
; CHECK-NOT: call
|
||||||
|
; CHECK: ret
|
||||||
|
|
||||||
|
%r = call i32 @inner1()
|
||||||
|
ret i32 %r
|
||||||
|
}
|
||||||
|
|
||||||
|
; The always inliner can't DCE internal functions. PR2945
|
||||||
|
; CHECK: @pr2945
|
||||||
|
define internal i32 @pr2945() nounwind {
|
||||||
|
ret i32 0
|
||||||
|
}
|
||||||
|
|
||||||
|
define internal void @inner2(i32 %N) alwaysinline {
|
||||||
|
%P = alloca i32, i32 %N
|
||||||
|
ret void
|
||||||
|
}
|
||||||
|
define void @outer2(i32 %N) {
|
||||||
|
; The always inliner (unlike the normal one) should be willing to inline
|
||||||
|
; a function with a dynamic alloca into one without a dynamic alloca.
|
||||||
|
; rdar://6655932
|
||||||
|
;
|
||||||
|
; CHECK: @outer2
|
||||||
|
; CHECK-NOT: call void @inner2
|
||||||
|
; CHECK alloca i32, i32 %N
|
||||||
|
; CHECK-NOT: call void @inner2
|
||||||
|
; CHECK: ret void
|
||||||
|
|
||||||
|
call void @inner2( i32 %N )
|
||||||
|
ret void
|
||||||
|
}
|
|
@ -1,15 +0,0 @@
|
||||||
; RUN: opt < %s -inline -S | not grep callee
|
|
||||||
; rdar://6655932
|
|
||||||
|
|
||||||
; If callee is marked alwaysinline, inline it! Even if callee has dynamic
|
|
||||||
; alloca and caller does not,
|
|
||||||
|
|
||||||
define internal void @callee(i32 %N) alwaysinline {
|
|
||||||
%P = alloca i32, i32 %N
|
|
||||||
ret void
|
|
||||||
}
|
|
||||||
|
|
||||||
define void @foo(i32 %N) {
|
|
||||||
call void @callee( i32 %N )
|
|
||||||
ret void
|
|
||||||
}
|
|
Loading…
Reference in New Issue