llvm-capstone/clang-tools-extra
Elliot Goodrich cea0eea28e [llvm] Split out DenseMapInfo<variant> specialization
Remove the `DenseMapInfo<std::variant<Ts...>>` variant out from
`llvm/ADT/DenseMapInfo.h` into a separate header
`llvm/ADT/DenseMapInfoVariant.h`

This allows us to remove the `<variant>` include, which is being
transitively and unncessary included in all translation units that
include `llvm/ADT/DenseMap.h`.

There have been similar changes to move out specializations for

    * `APInt.h` fd7e309e02 and
    * `StringRef.h`/`ArrayRef.h`
      983565a6fe

to reduce the compilation time. As we are unable to move the
specialization into `<variant>`, we create a separate
`DenseMapInfoVariant.h` header that can be used by anyone who needs this
specialization.

This reduces the total number of preprocessing tokens across the LLVM
source files in lib from (roughly) 1,964,876,961 to 1,936,551,496 - a
reduction of ~1.44%. This should result in a small improvement in
compilation time.

Differential Revision: https://reviews.llvm.org/D150997
2023-06-22 06:50:54 +01:00
..
clang-apply-replacements Move from llvm::makeArrayRef to ArrayRef deduction guides - last part 2023-01-10 11:47:43 +01:00
clang-change-namespace Use StringRef::contains (NFC) 2022-08-28 23:29:02 -07:00
clang-doc Use *{Map,Set}::contains (NFC) 2023-03-15 22:55:35 -07:00
clang-include-fixer Check for a ‘buffer’ type instead of ‘buffer-live’. 2023-06-05 15:10:31 +02:00
clang-move [clang] NFC: Use DirectoryEntryRef in FileManager::getCanonicalName() 2023-06-15 11:22:31 +02:00
clang-query [clang-tools-extra] Use std::optional instead of llvm::Optional (NFC) 2023-01-07 20:19:42 -08:00
clang-reorder-fields Use llvm::sort instead of std::sort where possible 2022-07-23 15:19:05 +02:00
clang-tidy [clang-tidy] Reserved-identifier: Improved AllowedIdentifiers option to support regular expressions 2023-06-19 07:22:20 +00:00
clangd [clangd] Use resolveTypeToRecordDecl() to resolve the type of a base specifier during heuristic resolution 2023-06-20 13:40:26 -04:00
docs [clang-tidy] Reserved-identifier: Improved AllowedIdentifiers option to support regular expressions 2023-06-19 07:22:20 +00:00
include-cleaner [llvm] Split out DenseMapInfo<variant> specialization 2023-06-22 06:50:54 +01:00
modularize [clang][modules] NFCI: Extract optionality out of Module::{Header,DirectoryName} 2023-05-30 21:06:51 -07:00
pp-trace [Clang] Prepare for llvm::Optional becoming std::optional. 2022-12-20 00:41:40 +01:00
pseudo [clang] Add support for “regular” keyword attributes 2023-05-31 10:43:10 +01:00
test [clang-tidy] Reserved-identifier: Improved AllowedIdentifiers option to support regular expressions 2023-06-19 07:22:20 +00:00
tool-template
unittests [clang-tidy] Implement an include-cleaner check. 2023-06-02 15:21:20 +00:00
.gitignore
CMakeLists.txt Generalize "check-all" umbrella targets, use for check-clang-tools 2022-05-06 12:30:49 +02:00
CODE_OWNERS.TXT Update the clang and clang-tools-extra code owners files 2022-09-06 08:28:03 -04:00
LICENSE.TXT
README.txt [NFC] update clang-tools-extra README.txt 2022-06-10 16:59:57 +05:30

//===----------------------------------------------------------------------===//
// Clang Tools repository
//===----------------------------------------------------------------------===//

Welcome to the repository of extra Clang Tools.  This repository holds tools
that are developed as part of the LLVM compiler infrastructure project and the
Clang frontend.  These tools are kept in a separate "extra" repository to
allow lighter weight checkouts of the core Clang codebase.

All discussion regarding Clang, Clang-based tools, and code in this repository
should be held using the standard Clang forum:
  https://discourse.llvm.org/c/clang

Code review for this tree should take place on the standard Clang patch and
commit lists:
  http://lists.llvm.org/mailman/listinfo/cfe-commits

If you find a bug in these tools, please file it in the LLVM bug tracker:
  https://github.com/llvm/llvm-project/issues/