diff options
Diffstat (limited to 'llvm/test/Transforms/Inline/optimization-remarks.ll')
-rw-r--r-- | llvm/test/Transforms/Inline/optimization-remarks.ll | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/llvm/test/Transforms/Inline/optimization-remarks.ll b/llvm/test/Transforms/Inline/optimization-remarks.ll index 8a3e4d1b1fe..d8be0c0acfd 100644 --- a/llvm/test/Transforms/Inline/optimization-remarks.ll +++ b/llvm/test/Transforms/Inline/optimization-remarks.ll @@ -1,5 +1,14 @@ -; RUN: opt < %s -inline -pass-remarks=inline -pass-remarks-missed=inline -pass-remarks-analysis=inline -S 2>&1 | FileCheck %s +; RUN: opt < %s -inline -pass-remarks=inline -pass-remarks-missed=inline \ +; RUN: -pass-remarks-analysis=inline -S 2>&1 | \ +; RUN: FileCheck -check-prefix=CHECK -check-prefix=NO_HOTNESS %s +; RUN: opt < %s -inline -pass-remarks=inline -pass-remarks-missed=inline \ +; RUN: -pass-remarks-analysis=inline -pass-remarks-with-hotness -S 2>&1 | \ +; RUN: FileCheck -check-prefix=CHECK -check-prefix=HOTNESS %s +; HOTNESS: definition of fox is not available +; HOTNESS: fox will not be inlined into bar +; NO_HOTNESS-NOT: definition of fox is not available +; NO_HOTNESS-NOT: fox will not be inlined into bar ; CHECK: foo should always be inlined (cost=always) ; CHECK: foo inlined into bar ; CHECK: foz should never be inlined (cost=never) @@ -32,6 +41,8 @@ entry: ret float %conv } +declare i32 @fox() + ; Function Attrs: nounwind uwtable define i32 @bar(i32 %j) #2 { entry: @@ -48,7 +59,9 @@ entry: %call2 = call float @foz(i32 %sub1, i32 %3) %mul = fmul float %conv, %call2 %conv3 = fptosi float %mul to i32 - ret i32 %conv3 + %call3 = call i32 @fox() + %add = add i32 %conv3, %call + ret i32 %add } attributes #0 = { alwaysinline nounwind uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } |