- User Since
- Mar 5 2014, 4:23 PM (284 w, 6 d)
Sun, Aug 4
Fri, Aug 2
As a future direction for code reordering in llvm, a pass that operates on the machine instruction level may have more promise. At that level, there's a reduced/eliminated code size penalty and landingpads can be moved easily. There's less pass ordering flexibility, but experiments seem to show that late splitting works better anyway.
Thu, Aug 1
Tue, Jul 30
Updated to have a fixed sequence of 'random' numbers.
We can certainly make this deterministic with a sequence of lists. Thanks for the suggestion, I'll update this soon.
Sun, Jul 28
Thu, Jul 25
Thanks for addressing the feedback @emmettneyman , LGTM, deferring to other reviewers for final call.
May 25 2019
Working on porting this to latest llvm, will push the latest changes soon.
Feb 6 2019
Interesting, I have a merge-sets implementation in my patch: https://reviews.llvm.org/D32140
It will be interesting to compare the two.
Dec 7 2018
LGTM, if there are outstanding comments from other reviewers we can address them in subsequent patches.
Nov 19 2018
Nov 13 2018
Thanks for removing the exception handlers. I never wanted to hard code them in the first place.
Nov 6 2018
Nov 3 2018
Can we push this patch? This is not enabled by default so we can continue development in subsequent patches.
Oct 31 2018
For reference: https://reviews.llvm.org/D53887
Oct 30 2018
For splitting more than one cold region, maintaining a DT maybe expensive but we don't have to do that. All we need is to 'color/mark' the blocks which we want to outline. In the next iteration the colored blocks need not be considered. It may be slightly non-trivial in a general case where coloring SEME and reasoning about DT/PDT of blocks which are non-colored. What we can do is in the subsequent iterations we can take a sub-graph which do not intersect anywhere except at entry or exit. This way DT/PDT will still be preserved in the non-intersecting regions. I think jump-threading also works(should work) on similar lines.
Oct 21 2018
Fix testcases and address comments
Can we land this patch
Oct 19 2018
Oct 15 2018
With this patch I now see a 3% speedup on sqlite vs. no hot-cold-split pass.
Awesome! Thanks for improving this!
Oct 14 2018
Compiler error with CloneType
Oct 13 2018
Oct 8 2018
Oct 6 2018
Oct 5 2018
Oct 4 2018
DEBUG -> LLVM_DEBUG
Oct 3 2018
Oct 2 2018
Modified the testcases to use both pass managers
Use single commandline flag for both pass managers.
Oct 1 2018
Updated testcases with utils/update_test_checks.py
Sep 30 2018
Added support for new PM: https://reviews.llvm.org/D52708
Will add one soon!
Moved the check of Size before checking the LargestInt.
Fixed all testcases, and removed memcpy inlining when target datalayout is not present.
Fix some unit-tests, a few more remaining.
To fix tests and comments from reviewers.
My main worry is that this is only useful with LTO because the linker should do this work otherwise, so at a minimum I need to change the code accordingly.
Sep 25 2018
Sep 24 2018
Sep 21 2018
Sep 18 2018
Sep 17 2018
I think this patch is good to go, I can push this if someone accepts. I'll fix the comments.
Sep 16 2018
Sep 9 2018
If you have the code-size numbers, please provide that then I can accept the patch.