[libcxx-commits] [libcxx] [libc++] Allow the use of extensions in the implementation (PR #79532)
Sam McCall via libcxx-commits
libcxx-commits at lists.llvm.org
Thu Mar 14 07:38:00 PDT 2024
sam-mccall wrote:
My approximate understanding is that any query of diagnostic overrides ends up loading all the mappings (which is a bunch of work), and in order to understand the region they apply to it has to page in source-level information (since they are source-location based).
Maybe this can be fixed eventually in clang, but we need some solution meanwhile.
@philnik777 thanks for the context!
> I'm pretty sure I've checked compile times before and after and didn't see any significant regression
(I would assume this is using libc++ textually rather than as modules, but just want to check)
> We're already depending on this in parts of the code base. IMO we should fix forward instead if this is actually a problem with this approach.
Can you tell me how to check how much would break? (I know how to test llvm but not libcxx specifically).
As a short-term fix, we could enable extensions for just those regions/files until we find a way to do it globally that scales well.
> I've done it this way to avoid introducing extensions in the test suite, since that shouldn't be using extensions as much as possible as a conformance test suite and it's used by other implementations
It seems nice to enforce this, but if we can't revert and there isn't another obvious fix-forward, is it possible to live without this enforcement? Or move the pragmas out of libc++ proper and into the testsuite?
https://github.com/llvm/llvm-project/pull/79532
More information about the libcxx-commits
mailing list