diff options
Diffstat (limited to 'llvm/test')
| -rw-r--r-- | llvm/test/Transforms/SampleProfile/Inputs/indirect-call.prof | 4 | ||||
| -rw-r--r-- | llvm/test/Transforms/SampleProfile/indirect-call.ll | 12 |
2 files changed, 13 insertions, 3 deletions
diff --git a/llvm/test/Transforms/SampleProfile/Inputs/indirect-call.prof b/llvm/test/Transforms/SampleProfile/Inputs/indirect-call.prof index ac32967bd54..428d4cedef5 100644 --- a/llvm/test/Transforms/SampleProfile/Inputs/indirect-call.prof +++ b/llvm/test/Transforms/SampleProfile/Inputs/indirect-call.prof @@ -1,8 +1,10 @@ test:63067:0 4: 3345 _Z3barv:1398 _Z3foov:2059 test_inline:3000:0 - 5: foo_inline:3000 + 5: foo_inline1:3000 1: 3000 + 5: foo_inline2:4000 + 1: 4000 test_noinline:3000:0 5: foo_noinline:3000 1: 3000 diff --git a/llvm/test/Transforms/SampleProfile/indirect-call.ll b/llvm/test/Transforms/SampleProfile/indirect-call.ll index e6e294fd6bf..5a4913d6358 100644 --- a/llvm/test/Transforms/SampleProfile/indirect-call.ll +++ b/llvm/test/Transforms/SampleProfile/indirect-call.ll @@ -16,10 +16,14 @@ define void @test_inline(i64* (i32*)*, i32* %x) !dbg !3 { %2 = alloca i64* (i32*)* store i64* (i32*)* %0, i64* (i32*)** %2 %3 = load i64* (i32*)*, i64* (i32*)** %2 -; CHECK: icmp {{.*}} @foo_inline +; CHECK: icmp {{.*}} @foo_inline2 ; CHECK: if.true.direct_targ: ; CHECK-NOT: call ; CHECK: if.false.orig_indirect: +; CHECK: icmp {{.*}} @foo_inline1 +; CHECK: if.true.direct_targ1: +; CHECK-NOT: call +; CHECK: if.false.orig_indirect2: ; CHECK: call call i64* %3(i32* %x), !dbg !5 ret void @@ -39,7 +43,11 @@ define void @test_noinline(void ()*) !dbg !3 { @x = global i32 0, align 4 -define i32* @foo_inline(i32* %x) !dbg !3 { +define i32* @foo_inline1(i32* %x) !dbg !3 { + ret i32* %x +} + +define i32* @foo_inline2(i32* %x) !dbg !3 { ret i32* %x } |

