1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 03:02:36 +01:00
llvm-mirror/test/LTO/Resolution/X86/diagnostic-handler-remarks-with-hotness.ll
Wei Wang d0b74589e5 [Remarks][1/2] Expand remarks hotness threshold option support in more tools
This is the #1 of 2 changes that make remarks hotness threshold option
available in more tools. The changes also allow the threshold to sync with
hotness threshold from profile summary with special value 'auto'.

This change modifies the interface of lto::setupLLVMOptimizationRemarks() to
accept remarks hotness threshold. Update all the tools that use it with remarks
hotness threshold options:

* lld: '--opt-remarks-hotness-threshold='
* llvm-lto2: '--pass-remarks-hotness-threshold='
* llvm-lto: '--lto-pass-remarks-hotness-threshold='
* gold plugin: '-plugin-opt=opt-remarks-hotness-threshold='

Differential Revision: https://reviews.llvm.org/D85809
2020-11-30 21:55:49 -08:00

90 lines
3.1 KiB
LLVM

; RUN: llvm-as < %s >%t.bc
; Check pass remarks emitted to YAML file
; RUN: rm -f %t.yaml
; RUN: llvm-lto2 run -pass-remarks-output=%t.yaml \
; RUN: -pass-remarks-with-hotness \
; RUN: -r %t.bc,tinkywinky,p \
; RUN: -r %t.bc,patatino,px \
; RUN: -r %t.bc,main,px -o %t.o %t.bc
; RUN: cat %t.yaml | FileCheck %s -check-prefix=YAML
; Check low threshold allows remarks to emit.
; RUN: rm -f %t.t300.yaml
; RUN: llvm-lto2 run -pass-remarks-output=%t.t300.yaml \
; RUN: -pass-remarks-with-hotness \
; RUN: -pass-remarks-hotness-threshold=300 \
; RUN: -r %t.bc,tinkywinky,p \
; RUN: -r %t.bc,patatino,px \
; RUN: -r %t.bc,main,px -o %t.o %t.bc
; RUN: FileCheck %s -check-prefix=YAML < %t.t300.yaml
; Check high threshold disallows remarks to emit.
; RUN: rm -f %t.t301.yaml
; RUN: llvm-lto2 run -pass-remarks-output=%t.t301.yaml \
; RUN: -pass-remarks-with-hotness \
; RUN: -pass-remarks-hotness-threshold=301 \
; RUN: -r %t.bc,tinkywinky,p \
; RUN: -r %t.bc,patatino,px \
; RUN: -r %t.bc,main,px -o %t.o %t.bc
; RUN: count 0 < %t.t301.yaml
; Check pass remarks emitted to stderr
; RUN: llvm-lto2 run -pass-remarks=inline \
; RUN: -pass-remarks-with-hotness \
; RUN: -r %t.bc,tinkywinky,p \
; RUN: -r %t.bc,patatino,px \
; RUN: -r %t.bc,main,px -o %t.o %t.bc 2>&1 | FileCheck %s
; Check low threshold allows remarks to emit.
; RUN: llvm-lto2 run -pass-remarks=inline \
; RUN: -pass-remarks-with-hotness \
; RUN: -pass-remarks-hotness-threshold=300 \
; RUN: -r %t.bc,tinkywinky,p \
; RUN: -r %t.bc,patatino,px \
; RUN: -r %t.bc,main,px -o %t.o %t.bc 2>&1 | FileCheck %s
; Check high threshold disallows remarks to emit.
; RUN: llvm-lto2 run -pass-remarks=inline \
; RUN: -pass-remarks-with-hotness \
; RUN: -pass-remarks-hotness-threshold=301 \
; RUN: -r %t.bc,tinkywinky,p \
; RUN: -r %t.bc,patatino,px \
; RUN: -r %t.bc,main,px -o %t.o %t.bc 2>&1 | count 0
; YAML: --- !Passed
; YAML-NEXT: Pass: inline
; YAML-NEXT: Name: Inlined
; YAML-NEXT: Function: main
; YAML-NEXT: Hotness: 300
; YAML-NEXT: Args:
; YAML-NEXT: - Callee: tinkywinky
; YAML-NEXT: - String: ' inlined into '
; YAML-NEXT: - Caller: main
; YAML-NEXT: - String: ' with '
; YAML-NEXT: - String: '(cost='
; YAML-NEXT: - Cost: '-15000'
; YAML-NEXT: - String: ', threshold='
; YAML-NEXT: - Threshold: '337'
; YAML-NEXT: - String: ')'
; YAML-NEXT: ...
; CHECK: tinkywinky inlined into main with (cost=-15000, threshold=337) (hotness: 300)
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-scei-ps4"
declare i32 @patatino()
define i32 @tinkywinky() {
%a = call i32 @patatino()
ret i32 %a
}
define i32 @main() !prof !0 {
%i = call i32 @tinkywinky()
ret i32 %i
}
!0 = !{!"function_entry_count", i64 300}