- User Since
- Nov 17 2016, 12:59 PM (60 w, 5 d)
Fri, Jan 12
Wed, Jan 10
Mon, Jan 8
Got rid of the magic 100 for the maximum depth and put in a command line option (-inline-recursion-limit) instead. I tried a few different limits with the knob and found that this test crashes around a recursion depth of 3500 on my machine. A max depth of 2000 seemed like a good middle-ground.
Thu, Jan 4
Updated patch to prevent general recursion instead of just the one edgecase. Also added some information to the dump function for CallAnalyzer to make it clear if the inliner bailed out because of the recursion limit.
Wed, Jan 3
Mon, Dec 18
Dec 8 2017
Dec 7 2017
Dec 1 2017
Oct 23 2017
Now that there's discussion on making the new pass manager the default pass manager, I'm wondering if it'd make sense to just go ahead and implement this functionality there entirely? I was hoping to get it done with the LegacyPassManager first then port it over after.
Oct 17 2017
Oct 13 2017
Updated diff to reflect current comments on the review.
Oct 10 2017
Accidentally added some useless cruft in CGSCCPassManager.h in the first diff. Removed it.
Oct 9 2017
I also suggest adding some reviewers to your patch! If you look at the blamelist of WinException.cpp you'll probably find some people that know the code well that can look at your stuff. I'm not a Windows expert, but if I was I'd give you a proper review. :)
I feel like the test here could use some simplification to make it clearer what you're testing. If there's any IR in there that you don't *absolutely* need, it'd be good to remove it. This makes it easier for others to debug failures in the future.
Oct 6 2017
Oct 3 2017
Sep 28 2017
Sep 27 2017
r314341 - [MachineOutliner] AArch64: Avoid saving + restoring LR if possible
Sep 25 2017
- Simplified the MIR test a bit
- Fixed the loop for the LiveRegisterUnits stuff so that we only check if LR is available at the prospective call-site
Sep 22 2017
Sep 20 2017
Updated the diff to address feedback. There are lots of changes, but here are the highlights:
Sep 1 2017
Aug 31 2017
Aug 30 2017
Got the twine thing @anemet suggested working so I threw it in.
Updated diff to address Adam's comments again.
Aug 29 2017
Updated again because I forgot to remove the #include "llvm/CodeGen/MachineBlockFrequencyInfo.h". Whoops.
Updated patch to address @anemet's comments.
Aug 23 2017
Aug 14 2017
Aug 10 2017
Aug 8 2017
Updated the diff to reflect taking Matthias' advice.
Aug 7 2017
Jul 28 2017
Jul 27 2017
Even better: put findCandidates actually *inside* the MachineOutliner class for consistency.
Jun 19 2017
I agree with Davide on this. I think we really need to have a good reason to change thresholds like these; the impact of changing thresholds can be rather unpredictable. I'd like to understand why changing this threshold
Mar 29 2017
Mar 24 2017
Mar 23 2017
Mar 22 2017
I think the comments in this pass could use some improvement. It would be nice to be able to get the gist of what's going on without having to read through all of the code.
Mar 20 2017
Mar 17 2017
Updated the diff to address comments.
Mar 16 2017
Updated diff to address comments
Mar 13 2017
This is too hard to write a test for because it only handles two instructions. It was intended as a proof of concept for the AArch64 target for the outliner which I'm about to put up. I'm just going to create a patch for that instead, since it can be tested easily there. The logic here can be used for reference.
Added a test case, removed the tail call MachineOutlinerInstrType.
Mar 10 2017
Mar 9 2017
Mar 8 2017
Removed the extra instruction type for tail calls and fixed up the other couple minor things.
Mar 6 2017
Feb 27 2017
Third time is the charm. Edits to the tests. The debug test now *truly* makes sure that debug values don't impact outlining. Also removed some cruft from the tests.
- Realized that the last debug test wasn't sufficient, so I fixed it up. It now handles debug values as well.
- Added negative test for debug info in machine-outliner-debuginfo.ll. The check allows for is_stmt debug stuff because that seems to be out of my control.
Okay, here's the next revision, everyone!
Feb 23 2017
Alright, it's been a while, but here's the next version of the outlining patch! As always, thanks to everyone taking the time to read through all this code. This version of the outliner is quite different from the previous one, since I've improved on it a lot since the last patch.