- User Since
- Apr 21 2016, 7:16 AM (248 w, 3 d)
Tue, Jan 5
Sun, Jan 3
Add documentation, resolve address comments, update in-tree clients.
Dec 12 2020
Minor typos, conciseness..
Dec 11 2020
Store current state, address some comments, a few bugs still to address...
Dec 8 2020
Upload the current changes. I need to update the users such as lldb, clang-tools-extra and clangd. It has some rough edges wrt modules.
Nov 27 2020
Nov 21 2020
Invert the diff, fix a typo.
Take another approach at solving this issue. Instead we are making the lookup_result safe.
Nov 16 2020
Nov 14 2020
@rsmith, what was the fate of this patch? I thought it landed but cannot find a trace of it in the master...
Landed in aca191cce1c4dbab28a65cfe4caa6348e698a2b3
Closing this in favor of D77598
Landed as D54986
Nov 10 2020
Add forgotten file.
Nov 9 2020
Nov 7 2020
Oct 27 2020
Unfortunately, the patch does not apply against llvm9 (which is what we have as experimental setup) not to speak against llvm5 which is our production setup.
Oct 26 2020
Thanks for the patch!! This is a super hot place for us (mostly due to boost). I will try it on our end and let you know!
Oct 8 2020
@shafik, I suppose that with a good amount of effort we may be able to test it in a unittest setup.
Sep 4 2020
Jul 16 2020
Also, I would like to add that the current test present in this diff does not fail in the existing system but it was the best I and Vassil could come up with to replicate our problem.
Is there a way to run something like creduce to come up with a test case that does replicate the issue? I'd like to ensure we have a test case that fails without the patch applied so that we can be sure we don't regress the behavior.
Jun 22 2020
Makes sense to me!
Jun 4 2020
Jun 3 2020
May 2 2020
@hubert.reinterpretcast, this patch is part of our internal forks which we would like to put upstream. The author of the previous patch does not have bandwidth to work on it and @reikdas kindly volunteered to take over. I can close the previous one if that's preferable.
Apr 7 2020
Nov 28 2019
https://reviews.llvm.org/D41416 could be relevant. I am not an expert but I think when reading the DWARF you could only register 'lazy' specializations which will be imported only when really required.
Sep 26 2019
Jul 16 2019
Jul 4 2019
Jun 27 2019
Add comments, add missing callbacks. Thanks Richard!
May 23 2019
Mar 25 2019
Indeed. IIUC, here is no way clang-cl to load plugins if compiled BUILD_SHARED_LIB=0. It is not clear to me if that's a design limitation or something else. I'd love to be able to load plugins on a 'standard' clang-cl instance.
Mar 24 2019
@chapuni, you have reverted this patch and the commit message says "investigating". Did you come to a conclusion? Can we reland it?
Nov 25 2018
Nov 20 2018
Is this change still relevant?
Nov 17 2018
Oct 31 2018
Aug 27 2018
Jun 28 2018
It looks like the diagnostic options and few others were moved out from the control block in r297655 by Manman Ren. The header files are still part of the control block. The best I can do is buffer that information and print it out last. Is that what we want?
Jun 27 2018
@rtrieu, your comment was along the lines of what I was thinking of. I have updated the patch. Without testing it on large scale, I the current change seems to work for us.
Remove the TypeMap
Jun 23 2018
May 22 2018
May 20 2018
Apr 19 2018
Apr 11 2018
Mar 24 2018
Ok, that's great! Sorry for the delay and thanks for landing a similar patch. Btw, we should probably find a more terse way to test the ODRHash, eg. with unittests.
Mar 14 2018
Mar 10 2018
I am not sure if this is the right time but maybe testing and comparing the behavior of this patch against something such as the ODRHash will help you, me (and probably others) to understand the current patch better.
Add sanity check.
Feb 24 2018
Feb 23 2018
Reading back the patch, we are turning on the bindings by default ;)
Could you double-check if we can add this to an existing test? Would test/SemaCXX/pr25181-crash-on-invalid.cpp fit and potentially rename it.
Feb 21 2018
Jan 13 2018
Jan 12 2018
Jan 10 2018
LGMT! We can rely on post-commit reviews for changes like this one.
Jan 9 2018
Jan 5 2018
Finer grained clang stats can be seen here.
Reduce further the deserializations from 451 to 449 by providing a more complete implementation of ODRHash::AddTemplateArgument.
Reduce hash collisions for template specializations.
+1 Thanks for working on this. Great to see this happening!
Jan 4 2018
Reverse template specialization order.
Zero IsPartial and improve comments in assert and free text.
I have created a simple (-ish) benchmark targeted to stress test modules with a good number of template specializations. I use the mp11 library from boost. I am building two modules which contain around 1K specializations (mostly full specializations). The example can be found here. I use a small fraction of them. This patch deserializes (only) 1117 specializations for around 0.2 seconds whereas without it clang deserializes 1905 specializations for 0.4 s.
Loading of lazy partial template specializations should not trigger loading of full template specializations.
Jan 3 2018
- Fix style;
- Do not potentially deserialize a specialization in debug mode.
Jan 2 2018
Teach ASTReader::CompleteRedeclChain to load only the template specializations with the same template argument list.
Address inline comments: order the read operations.
Dec 19 2017
Fixed a comment typo.
Dec 14 2017
Thanks! Landed in r320763.
Dec 6 2017
Fix preexisting comment typo.
Nov 21 2017
For the record: relanded in r306903.