diff options
author | Alex Lorenz <arphaman@gmail.com> | 2019-09-11 20:40:31 +0000 |
---|---|---|
committer | Alex Lorenz <arphaman@gmail.com> | 2019-09-11 20:40:31 +0000 |
commit | ca6e60971e9578acb0561df7797283474291f9d9 (patch) | |
tree | 7befe213930939771810d9aa830ce7323c119389 /clang/lib/Tooling/DependencyScanning/DependencyScanningService.cpp | |
parent | 2f843616849963e8df7a561ce5179ed29a767057 (diff) | |
download | bcm5719-llvm-ca6e60971e9578acb0561df7797283474291f9d9.tar.gz bcm5719-llvm-ca6e60971e9578acb0561df7797283474291f9d9.zip |
[clang-scan-deps] add skip excluded conditional preprocessor block preprocessing optimization
This commit adds an optimization to clang-scan-deps and clang's preprocessor that skips excluded preprocessor
blocks by bumping the lexer pointer, and not lexing the tokens until reaching appropriate #else/#endif directive.
The skip positions and lexer offsets are computed when the file is minimized, directly from the minimized tokens.
On an 18-core iMacPro with macOS Catalina Beta I got 10-15% speed-up from this optimization when running clang-scan-deps on
the compilation database for a recent LLVM and Clang (3511 files).
Differential Revision: https://reviews.llvm.org/D67127
llvm-svn: 371656
Diffstat (limited to 'clang/lib/Tooling/DependencyScanning/DependencyScanningService.cpp')
-rw-r--r-- | clang/lib/Tooling/DependencyScanning/DependencyScanningService.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/clang/lib/Tooling/DependencyScanning/DependencyScanningService.cpp b/clang/lib/Tooling/DependencyScanning/DependencyScanningService.cpp index 6ddce0dcee8..e5cebe38100 100644 --- a/clang/lib/Tooling/DependencyScanning/DependencyScanningService.cpp +++ b/clang/lib/Tooling/DependencyScanning/DependencyScanningService.cpp @@ -13,5 +13,7 @@ using namespace tooling; using namespace dependencies; DependencyScanningService::DependencyScanningService(ScanningMode Mode, - bool ReuseFileManager) - : Mode(Mode), ReuseFileManager(ReuseFileManager) {} + bool ReuseFileManager, + bool SkipExcludedPPRanges) + : Mode(Mode), ReuseFileManager(ReuseFileManager), + SkipExcludedPPRanges(SkipExcludedPPRanges) {} |