- User Since
- Apr 3 2019, 5:55 PM (94 w, 6 d)
lgtm, with one nit.
and btw.. bug fix isn't really NFC
Sun, Jan 24
Sat, Jan 23
Update comment based on Wei's feedback.
Looks great, thanks!
Fri, Jan 22
LGTM. Thanks for tightening this up. though I think warning does give others more flexibility in how/when to respond to this - in the end, this is not a build break, but a performance issue.
Thu, Jan 21
With the latest, do you see similar speed up for probe profile and dwarf profile?
lgtm with minor comment.
Ah, you're right.. sorry for confusion..
On the other hand, I expect this to be captured as incompatible attributes (caller without it, but callee has it), so removing the check here should be fine.
The same check is done in InlineCost: https://github.com/llvm/llvm-project/blob/8b0bd54d0ec968df28ccc58bbb537a7b7c074ef2/llvm/lib/Analysis/InlineCost.cpp#L2537-L2552
Wed, Jan 20
Tue, Jan 19
default CallsitePrioritizedInline to true only for CSSPGO
Address Wei's feedback. Clean up ICPCallee from InlineCandidate now that we don't check InlineCost before ICP.
Mon, Jan 18
Thu, Jan 14
Wed, Jan 13
Thanks for refactoring. We had internal change to add IsFullLTOPreLink alongside with IsThinLTOPreLink for a few places. And we always wanted clean it up too. :)
Tue, Jan 12
Thanks for the change.
retitle, rename inlineCandidate.
Fri, Jan 8
Tue, Jan 5
Mon, Jan 4
Sun, Jan 3
Fix test and linter.
Dec 16 2020
Thanks for the refactoring and clean up, looks great!
Dec 14 2020
To reduce the profile loading time during postlink phase when ThinLTO is enabled, we are going to split profile into two parts. One part contains profiles with inline instance and another part contains flattened profiles without inline instance in them.
Dec 7 2020
Thanks for quick fix!
Dec 6 2020
I believe it's not worth doing just to be able to use one constant string in one place.
If we move them into Attributes.td, we would be adding 3 new attributes to EnumAttr, just to support this, which I think is an overkill.
We find that after this change, the elapsed time to build a large application distributively is reduced by 5% and the accumulative cpu time used for building is also reduced by 5%.
Dec 3 2020
This looks great. Thanks for working on this and making all the changes!
Dec 2 2020
Dec 1 2020
Address Wei's feedback.
Nov 20 2020
Thanks for reviewing and the feedbacks. I think I've addressed all of the current ones. Please take a look, thanks!
Nov 19 2020
Nov 18 2020
We record function entry count and branch weights and use them to compute the count when needed. This mechanism works well in a perfect world, but often breaks in real programs
Nov 13 2020
This change covers non-LTO cases. For LTO, I think we would need to pass it from driver to LTO. Something like this: tools::addLTOOptions -> lld -> lto::Config (Config->TargetOptions->MCTargetOptions) ->LTO Backend.
Nov 11 2020
Nov 10 2020
Nov 9 2020
Nov 5 2020
Nov 4 2020
Nov 3 2020
If CSSPGO has the priority based inliner, does it mean it will do most inliner work and CGSCC inliner will mostly be used as an iterative clean up pass?
Nov 2 2020
Fix typo and linter, add getCanonicalFnName.
Thanks for quick review! I've update the patch, also see replies inline.
address feedback from Wei and David