User Details
- User Since
- Jun 9 2015, 8:48 AM (443 w, 9 h)
Aug 8 2018
Thanks, this is great!
Aug 1 2018
There is this vague, unspecified idea across the code base not to "touch" anything that hasSection(). We should be more deliberate and decide on a case-by-case basis, so this looks like the right thing to do for this pass.
Jun 22 2018
Jun 21 2018
Jun 20 2018
@pcc, @tejohnson: Are you OK with this going in now that D47898 has merged?
Jun 12 2018
- Rebase for current tree
- Fix -flto -save-temps which the previous patch broke
Jun 11 2018
Apr 23 2018
Feb 21 2018
Feb 6 2018
Jan 3 2018
Jul 28 2017
Jun 15 2017
Jun 14 2017
- Change patch to always emit a module summary for regular LTO
Jun 13 2017
May 9 2017
Apr 13 2017
This is very useful, thanks for working on it!
Add test case now that D31920 is merged.
Apr 11 2017
Apr 10 2017
Apr 4 2017
Any further comments? I'd like to go ahead and merge this.
Apr 3 2017
Add Rafael's suggested disclaimer to the test case.
Rebase and update test case comment.
Mar 28 2017
Make Gerolf's suggested changes to comments.
Feb 15 2017
Ping?
Feb 4 2017
Feb 3 2017
Move test to test/LTO/Resolution as per Peter's request.
Feb 2 2017
Jan 31 2017
Oct 10 2016
This makes sense. I shared our own similar function merging pass (in D22051), which is more generic than the Swift one, and it could potentially also use this infrastructure. We could go a little further and pull out more of the stuff in MergeFunctions that they all share (e.g. thunk creation, block traversal) in the future.
Jul 7 2016
Thanks David for the quick review - agree with most of your points, some comments added.
Jul 6 2016
Mar 11 2016
Feb 3 2016
Can this go in please? This is breaking debug builds for a number of critical codes for us.
Feb 1 2016
We hit this bug too and your fix works for our test cases. LGTM, thanks!
Jan 18 2016
Jan 15 2016
Jan 12 2016
The most common uses cases for explicit sections I'm aware of here are situations where the user wants to place part of the code into special memory (e.g. tightly-coupled memory). You're free to optimize within that special section - in fact, that's even desired because the code tends to be very performance-critical (but space-constrained) - but introducing additional control or data edges to other sections is a no-go (which is what we're currently doing in GlobalOpt). The proposed patch would solve the problem nicely.
Jan 8 2016
Dec 16 2015
LGTM conceptually. The patch doesn't apply to the current repo though (I guess it's a diff against what you had locally).
I just did
Nov 19 2015
Nov 13 2015
Updated patch with Peter and Mehdi's comments - thank you both!
Nov 10 2015
Ah I wasn't aware of the llvm-split utility - makes sense. It would still be useful to get bitcode out of llvm-lto for testing. But that could be built on top of writeMergedModule, as you mentioned.
Nov 5 2015
Oct 16 2015
Jul 15 2015
Jul 14 2015
Update patch to no longer create temporary instructions
Jul 10 2015
Change patch to use a load of undef, instead of just an undef, as the index for
the temporary GEP. This should make it safe even if aliasGEP ever gets smarter
about undefs.
Jun 25 2015
Hi Hal, Daniel,
Jun 24 2015
Remove spurious extra directories that ended up in the patch.
Add a flag to guard this change and leave it off by default for now.
Jun 20 2015
Hi Daniel, Hal,
Jun 10 2015
Jun 9 2015
Rebased