From 22a4e7a8e6e900c9c9fab3daf177305552a398b5 Mon Sep 17 00:00:00 2001 From: Alexander Kornienko Date: Tue, 15 Jan 2019 15:34:26 +0000 Subject: [PATCH] Reduce ASTMatchers stack footprint. Addresses http://llvm.org/PR38851 The BoundNodesTreeBuilder class is used both directly and indirectly as a local variable in matchesAncestorOfRecursively, memoizedMatchesAncestorOfRecursively and other functions that happen to be on long recursive call paths. By reducing the inline storage size of the SmallVector we dramatically reduce the stack requirements of ASTMatchers. Running clang-tidy with a large number of checks enabled on a few arbitrarily chosen files show no performance regression. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@351196 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/ASTMatchers/ASTMatchersInternal.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/clang/ASTMatchers/ASTMatchersInternal.h b/include/clang/ASTMatchers/ASTMatchersInternal.h index 9d9f867d05..34851a907e 100644 --- a/include/clang/ASTMatchers/ASTMatchersInternal.h +++ b/include/clang/ASTMatchers/ASTMatchersInternal.h @@ -261,7 +261,7 @@ public: } private: - SmallVector Bindings; + SmallVector Bindings; }; class ASTMatchFinder; -- 2.40.0