The change adds a switch to allow sample loader to use global pre-inliner's decision instead. The pre-inliner in llvm-profgen makes inline decision globally based on whole program profile and function byte size as cost proxy. Since pre-inliner also adjusts/merges context profile based on its inline decision, honoring its inline decision in sample loader would lead to better post-inline profile quality especially for thinlto where cross module profile merging isn't possible without pre-inliner. Minor fix in profile reader is also included. When pre-inliner is use, we now also turn off the default merging and trimming logic unless it's explicitly asked. Differential Revision: https://reviews.llvm.org/D108677
40 lines
657 B
Plaintext
40 lines
657 B
Plaintext
[main:3 @ _Z5funcAi:1 @ _Z8funcLeafi]:1467299:11
|
|
0: 6
|
|
1: 6
|
|
3: 287884
|
|
4: 287864 _Z3fibi:315608
|
|
15: 23
|
|
!Attributes: 3
|
|
[main:3.1 @ _Z5funcBi:1 @ _Z8funcLeafi]:500853:20
|
|
0: 15
|
|
1: 15
|
|
3: 74946
|
|
4: 74941 _Z3fibi:82359
|
|
10: 23324
|
|
11: 23327 _Z3fibi:25228
|
|
15: 11
|
|
!Attributes: 3
|
|
[main]:154:0
|
|
2: 12
|
|
3: 18 _Z5funcAi:11
|
|
3.1: 18 _Z5funcBi:19
|
|
[external:12 @ main]:154:12
|
|
2: 12
|
|
3: 10 _Z5funcAi:7
|
|
3.1: 10 _Z5funcBi:11
|
|
[main:3.1 @ _Z5funcBi]:120:19
|
|
0: 19
|
|
1: 19 _Z8funcLeafi:20
|
|
3: 12
|
|
!Attributes: 3
|
|
[externalA:17 @ _Z5funcBi]:120:3
|
|
0: 3
|
|
1: 3
|
|
[external:10 @ _Z5funcBi]:120:10
|
|
0: 10
|
|
1: 10
|
|
[main:3 @ _Z5funcAi]:99:11
|
|
0: 10
|
|
1: 10 _Z8funcLeafi:11
|
|
3: 24
|