Tue, Jun 30
SimplifyCFG doesn't look like a good place to put this as it is called multiple times and impacts compile time significantly.
Agreed with @jfb that having hasher as a separate pass which other passes can consume. @vish99 may have more ideas on hashing.
Hashing can be expensive and we could use clever tricks to make it cheaper. D52896 could help, happy to provide more input.
Mon, Jun 22
Sun, Jun 21
Sat, Jun 13
Thanks a lot for fixing this, this was blocking me earlier yesterday and @smeenai asked me to reach out to you.
Fri, Jun 12
Not sure if this will also fix: "llvm-objcopy: error: unsupported load command (cmd=0x1d)" error. https://bugs.llvm.org/show_bug.cgi?id=46306
Thu, Jun 4
Wed, Jun 3
The results of fxray as compared to function entry instrumentation.
A high-level comment: does this pass achieve something not doable with XRay, a mature instrumentation framework in LLVM?
All of this can be implemented as a runtime plugged into the XRay framework. If you just want to see which functions have been called (or executed) in this documentation I have an example of how to do precisely what this is attempting to do:
That implementation works for basic and FDR modes.
Thanks for the link.
The code size overhead of this instrumentation is 12bytes per function(adrp+strb+1byte in global array) + 13bytes per module. how does this compare to xray instrumentation?
May 30 2020
May 27 2020
May 6 2020
Mar 31 2020
Mar 24 2020
An interesting case to explore: https://bugs.llvm.org/show_bug.cgi?id=27360
LLVM does not peel/unroll loops with multiple exits. With this loop rotation this should be possible.
Mar 23 2020
Mar 22 2020
Mar 21 2020
This is only for preliminary assignment for the student to get some idea of the project. We'll most likely restart with previous suggestions from the original patch and the mailing list. Please ignore this patch for now. Sorry for introducing noise.
Mar 1 2020
Feb 10 2020
Jan 17 2020
The test case is in another patch so LGTM.
Jan 7 2020
Thanks for refactoring LGTM.
Nov 8 2019
Oct 31 2019
Rebase against master.
Thanks for rebasing the patch.
Oct 30 2019
Oct 29 2019
GVNHoist was recently reverted maily due to big regressions:
Two high level comments after a quick glance
- gnv-sink & gvn-hoist are still disabled by default AFAIK and there are still a few known bugs that need to be addressed (https://bugs.llvm.org/buglist.cgi?quicksearch=gvn-hoist, https://bugs.llvm.org/buglist.cgi?quicksearch=gvn-sink). It would be good to guard this change by a new flag that's off by default, otherwise it might hinder work towards weeding out the existing bugs.
Hi @hiraditya , thanks for your work. I want to test your patch on PowerPC, however current patch seems unable to be applied to current master branch.
Oct 28 2019
Add testcase for sinking
Remove unused variable and use function for updating local stats.
Make MaxSinkChainLength a flag.
Remove VNs already handled to reduce redundant lookups.
Oct 27 2019
Rebase against master and use profitability to reduce liveness
Oct 25 2019
Oct 24 2019
Add check for both hot and cold prefixes.
btw, I had this patch in mind:
It is happening without my changes with -codegenprepare. So just keeping the testcase.
Because my goal is to improve outlining without PGO (with static analysis), I'm wondering what would be the best place to put this other than HotColdSplitting.
Oct 21 2019
Will add test case soon.
Oct 18 2019
rebase against latest changes
Oct 15 2019
Oct 13 2019
Good point, there's something about updating the users that copying maybe required. make_early_inc_range didn't work, I searched for uses cases of replaceUsesOfWith and I couldn't find any instance where we use 'users'.
Tried the following, I get test failures and crashes.
Oct 12 2019
Oct 7 2019
LGTM as the comments have been addressed.
Oct 4 2019
Reviewed and committed: https://reviews.llvm.org/D67941
Reviewed here: https://reviews.llvm.org/D67941
Closed in: https://reviews.llvm.org/rL373807
Oct 2 2019
remove XFAIL now that fix had landed