llvm-project/clang/test/CoverageMapping
Vedant Kumar 0acf3434e7 [Coverage] Add an option to emit limited coverage info
Add an option to emit limited coverage info for unused decls. It's just a
cl::opt for now to allow us to experiment quickly.

When building llc, this results in an 84% size reduction in the llvm_covmap
section, and a similar size reduction in the llvm_prf_names section. In
practice I expect the size reduction to be roughly quadratic with the size of
the program.

The downside is that coverage for headers will no longer be complete. This will
make the line/function/region coverage metrics incorrect, since they will be
artificially high. One mitigation would be to somehow disable those metrics
when using limited-coverage=true.

This is related to: llvm.org/PR34533 (make SourceBasedCodeCoverage scale)

Differential Revision: https://reviews.llvm.org/D38107

llvm-svn: 314002
2017-09-22 18:23:04 +00:00
..
Inputs Reapply [Coverage] Fix an assertion failure if the definition of an unused function spans multiple files. 2016-06-07 10:07:51 +00:00
abspath.cpp [clang] Get rid of "%T" expansions 2017-08-15 19:47:06 +00:00
block-storage-starts-region.m [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
break.c [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
builtinmacro.c [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
casts.c [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
classtemplate.cpp [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
comment-in-macro.c [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
continue.c [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
control-flow-macro.c [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
decl.c [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
deferred-region.cpp [Coverage] Remove deferred region for trailing return, fixes PR34611 2017-09-19 00:29:46 +00:00
empty-destructor.cpp [Coverage] Avoid null deref in skipRegionMappingForDecl (fixes PR32761) 2017-04-24 20:52:04 +00:00
header.cpp [Coverage] Add an option to emit limited coverage info 2017-09-22 18:23:04 +00:00
if.cpp [Coverage] Support for C++17 if initializers 2016-10-14 23:38:16 +00:00
implicit-def-in-macro.m Suppress uninteresting warnings in test/CoverageMapping, NFC. 2017-02-25 07:05:41 +00:00
include-macros.c [Lexer] Don't merge macro args from different macro files 2016-05-19 23:44:02 +00:00
includehell.cpp [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
ir.c Restrengthen tests relaxed in r259955 2016-02-17 00:58:13 +00:00
label.cpp [Coverage] Precise region termination with deferred regions (reapply) 2017-09-08 18:44:56 +00:00
lambda.cpp [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
logical.cpp [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
loopmacro.c [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
loops.cpp [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
macro-expansion.c [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
macro-expressions.cpp Suppress uninteresting warnings in test/CoverageMapping, NFC. 2017-02-25 07:05:41 +00:00
macroception.c [Coverage] Suppress creating a code region if the same area is covered by an expansion region. 2016-08-31 07:04:16 +00:00
macroparams.c [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
macroparams2.c [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
macros.c [Coverage] Suppress creating a code region if the same area is covered by an expansion region. 2016-08-31 07:04:16 +00:00
macroscopes.cpp [Coverage] Fix an issue where a coverage region might not be created for a macro containing a loop statement. 2016-05-04 15:38:26 +00:00
md.cpp [coverage] Special-case calls to noreturn functions. 2017-08-08 20:10:14 +00:00
moremacros.c [Coverage] Precise region termination with deferred regions (reapply) 2017-09-08 18:44:56 +00:00
nestedclass.cpp [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
objc.m Suppress uninteresting warnings in test/CoverageMapping, NFC. 2017-02-25 07:05:41 +00:00
pr32679.cpp [Coverage] Don't emit mappings for functions in dependent contexts (fixes PR32679) 2017-04-19 17:58:30 +00:00
preprocessor.c [Lexer] Report more precise skipped regions (PR34166) 2017-09-11 20:47:42 +00:00
return.c [Coverage] Precise region termination with deferred regions (reapply) 2017-09-08 18:44:56 +00:00
switch.cpp [Coverage] Precise region termination with deferred regions (reapply) 2017-09-08 18:44:56 +00:00
switchmacro.c [Coverage] Precise region termination with deferred regions (reapply) 2017-09-08 18:44:56 +00:00
system_macro.cpp [Coverage] Do not write out coverage mappings with zero entries 2016-07-26 00:24:59 +00:00
templates.cpp [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
test.c [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
trycatch.cpp [Coverage] Precise region termination with deferred regions (reapply) 2017-09-08 18:44:56 +00:00
trymacro.cpp [Coverage] Push a new region when handling CXXTryStmts 2016-06-22 19:57:58 +00:00
unreachable-macro.c [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
unused_function.cpp Reapply [Coverage] Fix an assertion failure if the definition of an unused function spans multiple files. 2016-06-07 10:07:51 +00:00
unused_names.c clang/test/CoverageMapping/unused_names.c: Relax an expression for targeting PECOFF. 2017-04-14 03:16:48 +00:00
while.c [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00