1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-01-31 20:51:52 +01:00
Vedant Kumar 98b18d2ada [HotColdSplit] Mark inherently cold functions as such
If an inherently cold function is found, mark it as cold. For now this
means applying the `cold` and `minsize` attributes.

As a drive-by, revisit and clean up the criteria for considering a
function for splitting. Add tests.

llvm-svn: 351623
2019-01-19 02:38:47 +00:00

32 lines
656 B
LLVM

; RUN: opt -hotcoldsplit -hotcoldsplit-threshold=0 -S < %s | FileCheck %s
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-apple-macosx10.14.0"
; CHECK-LABEL: @fun
; CHECK: call void @fun.cold.1
define void @fun() {
entry:
br i1 undef, label %if.then, label %if.else
if.then:
ret void
if.else:
call void @sink()
ret void
}
; CHECK: define {{.*}} @foo{{.*}}#[[outlined_func_attr:[0-9]+]]
define void @foo() cold {
ret void
}
declare void @sink() cold
; CHECK: define {{.*}} @fun.cold.1{{.*}}#[[outlined_func_attr]]
; CHECK: attributes #[[outlined_func_attr]] = {
; CHECK-SAME: cold
; CHECK-SAME: minsize