mirror of
https://github.com/RPCS3/llvm.git
synced 2026-07-24 12:15:51 -04:00
fd24147338
Using TargetTransformInfo allows the splitting pass to factor in the code size cost of instructions as it decides whether or not outlining is profitable. This did not regress the overall amount of outlining seen on the handful of internal frameworks I tested. Thanks to Jun Bum Lim for suggesting this! Differential Revision: https://reviews.llvm.org/D53835 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346108 91177308-0d34-0410-b5e6-96231b3b80d8
26 lines
545 B
LLVM
26 lines
545 B
LLVM
; RUN: opt -hotcoldsplit -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()
|
|
call void @sink()
|
|
call void @sink()
|
|
ret void
|
|
}
|
|
|
|
declare void @sink() cold
|
|
|
|
; CHECK: define {{.*}} @fun.cold.1{{.*}}#[[outlined_func_attr:[0-9]+]]
|
|
; CHECK: attributes #[[outlined_func_attr]] = { {{.*}}minsize
|