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.
Nov 28 2019
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.
Oct 31 2017
Oct 27 2017
Oct 20 2017
Reverted in r316153...
Oct 19 2017
Revised patch landed in r316150.
Oct 17 2017
I assume this would fix it:
Reverted in r316029 because the bots got angry at me:
Landed in r316025.
Sep 11 2017
This patch can rely on a post commit review if necessary.
Sep 4 2017
You should probably update the code creating the vfs before the call to createFileManager in lib/Frontend/FrontendAction.cpp.
Aug 27 2017
Add a test case.
@bruno, what's the fate of this?
Sorry, undo ping... we have a test case.
LGTM! I'd reword the commit message, saying that we intended to add a fast path in DeclContext::removeDecl which checks if the decl is hidden to avoid addition in the lookup tables. That caused problems with modules, because the modules system extends the definition of visibility and this is a test making sure we do not reintroduce such an issue.
Landed in r311844.
A version of this landed in r311843. I am keeping in mind this discussion and I'd like to follow up with @rjmccall once I open the more major review item (libInterpreter).
Type& name -> Type &name.
std::string& -> llvm::StringRef.
Aug 23 2017
Fix StringRef allocation.
Aug 8 2017
And thanks for working on this!!
I do not feel qualified enough to review this patch but I added few minor comments.
Aug 6 2017
We set the record's property denoting whether we can pass the decl by registers as a last step of Sema::CheckCompletedCXXClass. We cannot do it any earlier than that because we have not computed the triviality information.
Aug 2 2017
Jul 27 2017
Move back the triviality checks in CGCXXABI. Explain why.
Put back accidentally removed test case.
Address some of the comments.
Move the checks in Sema.
Jul 24 2017