1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00
llvm-mirror/test/Transforms/FunctionImport/Inputs/adjustable_threshold.ll
Mehdi Amini 4f13675fcd FunctionImport: add a progressive heuristic to limit importing too deep in the callgraph
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>
llvm-svn: 260466
2016-02-10 23:31:45 +00:00

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
}