1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 10:42:39 +01:00
llvm-mirror/test/LTO/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

56 lines
1.8 KiB
LLVM

; Check that the hotness attribute is included in the optimization record file
; with -lto-pass-remarks-with-hotness.
; RUN: llvm-as < %s >%t.bc
; RUN: rm -f %t.yaml %t.t300.yaml %t.t301.yaml
; RUN: llvm-lto -lto-pass-remarks-output=%t.yaml \
; RUN: -lto-pass-remarks-with-hotness \
; RUN: -exported-symbol _main -o %t.o %t.bc
; RUN: cat %t.yaml | FileCheck -check-prefix=YAML %s
; RUN: llvm-lto -lto-pass-remarks-output=%t.t300.yaml \
; RUN: -lto-pass-remarks-with-hotness \
; RUN: -lto-pass-remarks-hotness-threshold=300 \
; RUN: -exported-symbol _main -o %t.o %t.bc
; RUN: FileCheck -check-prefix=YAML %s < %t.t300.yaml
; RUN: llvm-lto -lto-pass-remarks-output=%t.t301.yaml \
; RUN: -lto-pass-remarks-with-hotness \
; RUN: -lto-pass-remarks-hotness-threshold=301 \
; RUN: -exported-symbol _main -o %t.o %t.bc
; RUN: not FileCheck -check-prefix=YAML %s < %t.t301.yaml
; YAML: --- !Passed
; YAML-NEXT: Pass: inline
; YAML-NEXT: Name: Inlined
; YAML-NEXT: Function: main
; YAML-NEXT: Hotness: 300
; YAML-NEXT: Args:
; YAML-NEXT: - Callee: foo
; 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: ...
target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-apple-darwin"
declare i32 @bar()
define i32 @foo() {
%a = call i32 @bar()
ret i32 %a
}
define i32 @main() !prof !0 {
%i = call i32 @foo()
ret i32 %i
}
!0 = !{!"function_entry_count", i64 300}