llvm-project/clang/test
Vedant Kumar e18531595b [Coverage] Revise format to reduce binary size
Revise the coverage mapping format to reduce binary size by:

1. Naming function records and marking them `linkonce_odr`, and
2. Compressing filenames.

This shrinks the size of llc's coverage segment by 82% (334MB -> 62MB)
and speeds up end-to-end single-threaded report generation by 10%. For
reference the compressed name data in llc is 81MB (__llvm_prf_names).

Rationale for changes to the format:

- With the current format, most coverage function records are discarded.
  E.g., more than 97% of the records in llc are *duplicate* placeholders
  for functions visible-but-not-used in TUs. Placeholders *are* used to
  show under-covered functions, but duplicate placeholders waste space.

- We reached general consensus about giving (1) a try at the 2017 code
  coverage BoF [1]. The thinking was that using `linkonce_odr` to merge
  duplicates is simpler than alternatives like teaching build systems
  about a coverage-aware database/module/etc on the side.

- Revising the format is expensive due to the backwards compatibility
  requirement, so we might as well compress filenames while we're at it.
  This shrinks the encoded filenames in llc by 86% (12MB -> 1.6MB).

See CoverageMappingFormat.rst for the details on what exactly has
changed.

Fixes PR34533 [2], hopefully.

[1] http://lists.llvm.org/pipermail/llvm-dev/2017-October/118428.html
[2] https://bugs.llvm.org/show_bug.cgi?id=34533

Differential Revision: https://reviews.llvm.org/D69471
2019-12-04 10:10:55 -08:00
..
ARCMT
AST Switch to opening the temp file in binary mode 2019-12-03 15:31:46 -05:00
ASTMerge [clang] Make handling of unnamed template params similar to function params 2019-10-01 14:08:51 +00:00
Analysis [analyzer] Add custom filter functions for GenericTaintChecker 2019-11-23 20:12:15 +01:00
CXX [Diagnostics] Try to improve warning message for -Wreturn-type 2019-11-09 17:54:58 +01:00
ClangScanDeps [clang-scan-deps] do not skip empty #if/#elif in the minimizer to avoid missing `__has_include` dependencies 2019-12-02 18:47:22 -08:00
CodeCompletion [clangd] Show lambda signature for lambda autocompletions 2019-11-22 12:48:06 +01:00
CodeGen [ARM][MVE][Intrinsics] Add VMULH/VRMULH intrinsics. 2019-12-04 14:27:12 +00:00
CodeGenCUDA clang: Add -fconvergent-functions flag 2019-11-19 23:20:15 +05:30
CodeGenCXX Actually delay processing DelayedDllExportClasses until the outermost class is finished (PR40006) 2019-12-04 13:13:41 +01:00
CodeGenCoroutines
CodeGenObjC [CodeGen][ObjC] Emit a primitive store to store a __strong field in 2019-12-03 23:44:30 -08:00
CodeGenObjCXX Revert "Revert "As a follow-up to my initial mail to llvm-dev here's a first pass at the O1 described there."" 2019-11-26 20:28:52 -08:00
CodeGenOpenCL [OpenCL] Fix mangling of single-overload builtins 2019-12-03 11:09:16 +00:00
CodeGenOpenCLCXX [OpenCL] Fix address space for implicit conversion (PR43145) 2019-12-02 14:20:15 +00:00
Coverage
CoverageMapping [Coverage] Revise format to reduce binary size 2019-12-04 10:10:55 -08:00
Driver [HIP] Remove opencl.amdgcn.lib 2019-12-04 12:39:44 -05:00
FixIt [c++20] P1143R2: Add support for the C++20 'constinit' keyword. 2019-09-04 20:30:37 +00:00
Format [clang-format] Proposal for clang-format to give compiler style warnings 2019-10-13 14:51:45 +00:00
Frontend [Sema] Add MacroQualified case for FunctionTypeUnwrapper 2019-11-12 16:22:13 -08:00
Headers [X86] Fix the implementation of __readcr3/__writecr3 to work in 64-bit mode 2019-11-14 13:21:36 -08:00
Import [ASTImporter] Add support for BuiltinTemplateDecl 2019-10-30 14:53:35 +01:00
Index Fix `sed -e s@FOO@%/S@` and similar when there's @'s in the working directory 2019-12-03 15:44:01 -08:00
Integration
InterfaceStubs [clang][IFS] Driver Pipeline: generate stubs after standard pipeline (3) 2019-11-20 16:22:50 -05:00
Layout
Lexer Revert "Revert "As a follow-up to my initial mail to llvm-dev here's a first pass at the O1 described there."" 2019-11-26 20:28:52 -08:00
Misc [Diagnostic] add a warning which warns about misleading indentation 2019-12-03 21:21:27 +01:00
Modules Fix `sed -e s@FOO@%/S@` and similar when there's @'s in the working directory 2019-12-03 15:44:01 -08:00
OpenMP [OPENMP]Fix PR44133: Emit definitions of used constructors/functions. 2019-12-02 14:07:29 -05:00
PCH Revert "Revert "As a follow-up to my initial mail to llvm-dev here's a first pass at the O1 described there."" 2019-11-26 20:28:52 -08:00
Parser [Diagnostic] add a warning which warns about misleading indentation 2019-12-03 21:21:27 +01:00
Preprocessor [Diagnostic][test] Remove an unneeded change to pragma_diagnostic_sections.cpp after D70638 2019-12-03 16:43:35 -08:00
Profile [Coverage] Revise format to reduce binary size 2019-12-04 10:10:55 -08:00
Refactor
Rewriter
Sema Revert "[ARM] Allocatable Global Register Variables for ARM" 2019-11-29 17:01:05 +00:00
SemaCUDA [CUDA][HIP} Add a test for constexpr default ctor 2019-10-11 02:43:28 +00:00
SemaCXX Reapply "Fix crash on switch conditions of non-integer types in templates" 2019-12-03 15:27:19 -08:00
SemaObjC [Sema] Fix a -Wobjc-signed-char-bool false-positive 2019-11-18 12:15:20 -08:00
SemaObjCXX [ObjC] Diagnose implicit type coercion from ObjC 'Class' to object 2019-10-17 15:27:04 +00:00
SemaOpenCL [opencl] Fix address space deduction on array variables. 2019-12-04 09:37:50 -05:00
SemaOpenCLCXX [OpenCL] Allow addr space qualifiers on lambda call expressions 2019-12-04 12:25:20 +00:00
SemaSYCL [SYCL] Add sycl_kernel attribute for accelerated code outlining 2019-12-03 16:13:22 +03:00
SemaTemplate Reapply "Fix crash on switch conditions of non-integer types in templates" 2019-12-03 15:27:19 -08:00
TableGen
Templight
Tooling Prefer 'env not' over 'not env' in tests. 2019-10-14 01:41:56 +00:00
Unit
VFS Fix `sed -e s@FOO@%/S@` and similar when there's @'s in the working directory 2019-12-03 15:44:01 -08:00
clang-rename [clang-rename] Fix a crash when renaming a class without definition. 2019-10-04 14:09:31 +00:00
.clang-format
CMakeLists.txt [gen_ast_dump_json_test.py] Copy to binary directory to omit --clang argument 2019-11-15 12:52:56 +00:00
TestRunner.sh
cxx-sections.data
lit.cfg.py Revert "[analyzer] Add test directory for scan-build." 2019-11-05 14:03:36 -08:00
lit.site.cfg.py.in Improve behavior in the case of stack exhaustion. 2019-08-26 18:18:07 +00:00
make_test_dirs.pl