mirror of
https://github.com/RPCS3/llvm.git
synced 2025-05-22 05:15:57 +00:00

The current function importer will walk the callgraph, importing transitively any callee that is below the threshold. This can lead to import very deep which is costly in compile time and not necessarily beneficial as most of the inline would happen in imported function and not necessarilly in user code. The actual factor has been carefully chosen by flipping a coin ;) Some tuning need to be done (just at the existing limiting threshold). Reviewers: tejohnson Differential Revision: http://reviews.llvm.org/D17082 From: Mehdi Amini <mehdi.amini@apple.com> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260466 91177308-0d34-0410-b5e6-96231b3b80d8
38 lines
692 B
LLVM
38 lines
692 B
LLVM
define void @globalfunc1() {
|
|
entry:
|
|
call void @trampoline()
|
|
ret void
|
|
}
|
|
; Adds an artificial level in the call graph to reduce the importing threshold
|
|
define void @trampoline() {
|
|
entry:
|
|
call void @largefunction()
|
|
ret void
|
|
}
|
|
|
|
define void @globalfunc2() {
|
|
entry:
|
|
call void @largefunction()
|
|
ret void
|
|
}
|
|
|
|
|
|
; Size is 5: if two layers below in the call graph the threshold will be 4,
|
|
; but if only one layer below the threshold will be 7.
|
|
define void @largefunction() {
|
|
entry:
|
|
call void @staticfunc2()
|
|
call void @staticfunc2()
|
|
call void @staticfunc2()
|
|
call void @staticfunc2()
|
|
call void @staticfunc2()
|
|
ret void
|
|
}
|
|
|
|
define internal void @staticfunc2() {
|
|
entry:
|
|
ret void
|
|
}
|
|
|
|
|