llvm-project/clang/test
Volodymyr Sapsai 0a35cc40b8 [clang][objc] Speed up populating the global method pool from modules.
For each selector encountered in the source code, we need to load
selectors from the imported modules and check that we are calling a
selector with compatible types.

At the moment, for each module we are storing methods declared in the
headers belonging to this module and methods from the transitive closure
of imported modules. When a module is imported by a few other modules,
methods from the shared module are duplicated in each importer. As the
result, we can end up with lots of identical methods that we try to add
to the global method pool. Doing this duplicate work is useless and
relatively expensive.

Avoid processing duplicate methods by storing in each module only its
own methods and not storing methods from dependencies. Collect methods
from dependencies by walking the graph of module dependencies.

The issue was discovered and reported by Richard Howell. He has done the
hard work for this fix as he has investigated and provided a detailed
explanation of the performance problem.

Differential Revision: https://reviews.llvm.org/D110123
2021-11-03 17:11:14 -07:00
..
APINotes
ARCMT Recommit: Compress formatting of array type names (int [4] -> int[4]) 2021-10-21 11:34:43 -07:00
AST Update ast-dump-decl.mm test to work on 32 bit windows 2021-11-03 07:42:06 -07:00
ASTMerge Recommit: Compress formatting of array type names (int [4] -> int[4]) 2021-10-21 11:34:43 -07:00
Analysis [clang][NFC] Inclusive terms: Replace uses of whitelist in clang/lib/StaticAnalyzer 2021-10-29 16:51:36 -04:00
CXX [Sema][NFC] Improve test coverage for builtin binary operators. 2021-11-03 15:51:35 +01:00
ClangScanDeps [clang][deps] Keep #pragma push_macro, pop_macro and include_alias when minimizing source code. 2021-11-01 16:04:52 -04:00
CodeCompletion Diagnose -Wunused-value based on CFG reachability 2021-09-28 10:00:15 -07:00
CodeGen [PowerPC] Implement longdouble pack/unpack builtins 2021-11-03 17:57:25 +08:00
CodeGenCUDA [HIP] [AlwaysInliner] Disable AlwaysInliner to eliminate undefined symbols 2021-10-18 16:53:15 -06:00
CodeGenCXX Fix complex types declared using mode TC 2021-11-02 12:00:26 -07:00
CodeGenCoroutines Revert D105169 due to the two-stage failure in ASAN 2021-10-18 23:52:46 +09:00
CodeGenHIP
CodeGenObjC Revert rest of `IRBuilderBase`'s short-circuiting folds 2021-10-28 02:15:14 +03:00
CodeGenObjCXX Revert D105169 due to the two-stage failure in ASAN 2021-10-18 23:52:46 +09:00
CodeGenOpenCL [test] Remove tests pinned to the legacy PM 2021-10-18 16:40:46 -07:00
CodeGenOpenCLCXX Revert "[IR] `IRBuilderBase::CreateAdd()`: short-circuit `x + 0` --> `x`" 2021-10-27 22:21:37 +03:00
CodeGenSYCL Revert D105169 due to the two-stage failure in ASAN 2021-10-18 23:52:46 +09:00
Coverage
CoverageMapping Revert "[Coroutines] [Clang] Look up coroutine component in std namespace first" 2021-09-03 16:01:09 -04:00
Driver [VE] Change to omitting the frame pointer on leaf functions 2021-11-03 17:45:18 +09:00
FixIt Implement P1949 2021-08-18 07:33:14 -04:00
Format
Frontend [clang] Add plugin ActionType to run command line plugin before main action 2021-10-20 08:58:20 -07:00
Headers Revert D105169 due to the two-stage failure in ASAN 2021-10-18 23:52:46 +09:00
Import Recommit: Compress formatting of array type names (int [4] -> int[4]) 2021-10-21 11:34:43 -07:00
Index Recommit: Compress formatting of array type names (int [4] -> int[4]) 2021-10-21 11:34:43 -07:00
Integration
InterfaceStubs
Interpreter Reland "[clang-repl] Allow loading of plugins in clang-repl." 2021-10-05 13:04:01 +00:00
Layout Recommit: Compress formatting of array type names (int [4] -> int[4]) 2021-10-21 11:34:43 -07:00
Lexer Revert "[clang] deprecate frelaxed-template-template-args, make it on by default" 2021-11-02 17:02:19 -04:00
LibClang
Misc [AArch64] Enablement of Cortex-X2 2021-11-01 11:55:24 +00:00
Modules [clang][objc] Speed up populating the global method pool from modules. 2021-11-03 17:11:14 -07:00
OpenMP [OpenMP] Add triple to run lines to avoid message differences 2021-10-29 09:20:40 -07:00
PCH Recommit: Compress formatting of array type names (int [4] -> int[4]) 2021-10-21 11:34:43 -07:00
Parser [CUDA][NFC] Fix inexact warning message about lambdas 2021-10-27 01:28:35 +00:00
ParserSYCL
Preprocessor [clang] Partially revert d8cd780631. 2021-10-29 02:41:54 -04:00
Profile [test] Remove tests pinned to the legacy PM 2021-10-18 16:40:46 -07:00
Refactor
Rewriter
Sema [X86][clang] Disable long double type for -mno-x87 option 2021-11-03 12:08:39 +03:00
SemaCUDA [openmp] Emit deferred diag only when device compilation presents 2021-10-25 11:19:18 -07:00
SemaCXX [Sema] Avoid crash in CheckEnumConstant with contains-error expressions 2021-11-02 15:35:53 +01:00
SemaObjC format_arg attribute should allow instancetype in NSString definition 2021-10-28 20:25:00 -07:00
SemaObjCXX Recommit: Compress formatting of array type names (int [4] -> int[4]) 2021-10-21 11:34:43 -07:00
SemaOpenCL Recommit: Compress formatting of array type names (int [4] -> int[4]) 2021-10-21 11:34:43 -07:00
SemaOpenCLCXX Recommit: Compress formatting of array type names (int [4] -> int[4]) 2021-10-21 11:34:43 -07:00
SemaSYCL [X86][clang] Disable long double type for -mno-x87 option 2021-11-03 12:08:39 +03:00
SemaTemplate Revert "[clang] deprecate frelaxed-template-template-args, make it on by default" 2021-11-02 17:02:19 -04:00
TableGen
Templight
Tooling
Unit
VFS [Modules] Do not remove failed modules after the control block phase 2021-08-17 16:46:51 -07:00
clang-rename
utils/update_cc_test_checks Revert D105169 due to the two-stage failure in ASAN 2021-10-18 23:52:46 +09:00
.clang-format
CMakeLists.txt Reinstate "[clang-repl] Re-implement clang-interpreter as a test case." 2021-10-26 19:29:56 +00:00
TestRunner.sh
cxx-sections.data
lit.cfg.py Reinstate "[clang-repl] Re-implement clang-interpreter as a test case." 2021-10-26 19:29:56 +00:00
lit.site.cfg.py.in
make_test_dirs.pl