forked from OSchip/llvm-project
90 lines
2.6 KiB
LLVM
90 lines
2.6 KiB
LLVM
; Test that -inline-threshold overrides thresholds derived from opt levels.
|
|
; RUN: opt < %s -O2 -inline-threshold=500 -S | FileCheck %s
|
|
; RUN: opt < %s -O3 -inline-threshold=500 -S | FileCheck %s
|
|
; RUN: opt < %s -Os -inline-threshold=500 -S | FileCheck %s
|
|
; RUN: opt < %s -Oz -inline-threshold=500 -S | FileCheck %s
|
|
|
|
@a = global i32 4
|
|
|
|
define i32 @simpleFunction(i32 %a) #0 {
|
|
entry:
|
|
%a1 = load volatile i32, i32* @a
|
|
%x1 = add i32 %a1, %a1
|
|
%cmp = icmp eq i32 %a1, 0
|
|
br i1 %cmp, label %if.then, label %if.else
|
|
if.then:
|
|
%a2 = load volatile i32, i32* @a
|
|
%x2_0 = add i32 %x1, %a2
|
|
br label %if.else
|
|
if.else:
|
|
%x2 = phi i32 [ %x1, %entry ], [ %x2_0, %if.then ]
|
|
%a3 = load volatile i32, i32* @a
|
|
%x3 = add i32 %x2, %a3
|
|
%a4 = load volatile i32, i32* @a
|
|
%x4 = add i32 %x3, %a4
|
|
%a5 = load volatile i32, i32* @a
|
|
%x5 = add i32 %x4, %a5
|
|
%a6 = load volatile i32, i32* @a
|
|
%x6 = add i32 %x5, %a6
|
|
%a7 = load volatile i32, i32* @a
|
|
%x7 = add i32 %x6, %a7
|
|
%a8 = load volatile i32, i32* @a
|
|
%x8 = add i32 %x7, %a8
|
|
%a9 = load volatile i32, i32* @a
|
|
%x9 = add i32 %x8, %a9
|
|
%a10 = load volatile i32, i32* @a
|
|
%x10 = add i32 %x9, %a10
|
|
%a11 = load volatile i32, i32* @a
|
|
%x11 = add i32 %x10, %a11
|
|
%a12 = load volatile i32, i32* @a
|
|
%x12 = add i32 %x11, %a12
|
|
%a13 = load volatile i32, i32* @a
|
|
%x13 = add i32 %x12, %a13
|
|
%a14 = load volatile i32, i32* @a
|
|
%x14 = add i32 %x13, %a14
|
|
%a15 = load volatile i32, i32* @a
|
|
%x15 = add i32 %x14, %a15
|
|
%a16 = load volatile i32, i32* @a
|
|
%x16 = add i32 %x15, %a16
|
|
%a17 = load volatile i32, i32* @a
|
|
%x17 = add i32 %x16, %a17
|
|
%a18 = load volatile i32, i32* @a
|
|
%x18 = add i32 %x17, %a18
|
|
%a19 = load volatile i32, i32* @a
|
|
%x19 = add i32 %x18, %a19
|
|
%a20 = load volatile i32, i32* @a
|
|
%x20 = add i32 %x19, %a20
|
|
%a21 = load volatile i32, i32* @a
|
|
%x21 = add i32 %x20, %a21
|
|
%a22 = load volatile i32, i32* @a
|
|
%x22 = add i32 %x21, %a22
|
|
%a23 = load volatile i32, i32* @a
|
|
%x23 = add i32 %x22, %a23
|
|
%a24 = load volatile i32, i32* @a
|
|
%x24 = add i32 %x23, %a24
|
|
%a25 = load volatile i32, i32* @a
|
|
%x25 = add i32 %x24, %a25
|
|
%a26 = load volatile i32, i32* @a
|
|
%x26 = add i32 %x25, %a26
|
|
%a27 = load volatile i32, i32* @a
|
|
%x27 = add i32 %x26, %a27
|
|
%a28 = load volatile i32, i32* @a
|
|
%x28 = add i32 %x27, %a28
|
|
%a29 = load volatile i32, i32* @a
|
|
%x29 = add i32 %x28, %a29
|
|
%add = add i32 %x29, %a
|
|
ret i32 %add
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone uwtable
|
|
define i32 @bar(i32 %a) #0 {
|
|
; CHECK-LABEL: @bar
|
|
; CHECK-NOT: call i32 @simpleFunction(i32 6)
|
|
; CHECK: ret
|
|
entry:
|
|
%i = tail call i32 @simpleFunction(i32 6)
|
|
ret i32 %i
|
|
}
|
|
|
|
attributes #0 = { nounwind readnone uwtable }
|