llvm-project/llvm/tools/llvm-cov
Max Moroz cc254ba4a7 [llvm-cov] Multi-threaded implementation of prepareFileReports method.
Summary:
Local testing has demonstrated a great speed improvement, compare the following:

1) Existing version:
```
$ time llvm-cov show -format=html -output-dir=report -instr-profile=... ...
The tool has been launched:                            00:00:00
Loading coverage data:                                 00:00:00
Get unique source files:                               00:00:33
Creating an index out of the source files:             00:00:34
Going into prepareFileReports:                         00:00:34
Going to emit summary information for each file:       00:28:55 <-- 28:21 min!
Going to emit links to files with no function:         00:28:55
Launching 32 threads for generating HTML files:        00:28:55

real  37m43.651s
user  112m5.540s
sys   7m39.872s
```

2) Multi-threaded version with 32 CPUs:
```
$ time llvm-cov show -format=html -output-dir=report -instr-profile=... ...
The tool has been launched:                            00:00:00
Loading coverage data:                                 00:00:00
Get unique source files:                               00:00:38
Creating an index out of the source files:             00:00:40
Going into prepareFileReports:                         00:00:40
Preparing file reports using 32 threads:               00:00:40
# Creating thread tasks for the following number of files: 16422
Going to emit summary information for each file:       00:01:57 <-- 1:17 min!
Going to emit links to files with no function:         00:01:58
Launching 32 threads for generating HTML files:        00:01:58

real  11m2.044s
user  134m48.124s
sys   7m53.388s
```

Reviewers: vsk, morehouse

Reviewed By: vsk

Subscribers: Dor1s, llvm-commits, kcc

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

llvm-svn: 321871
2018-01-05 16:15:07 +00:00
..
CMakeLists.txt Retry: [llvm-cov] Add support for exporting coverage data to JSON 2016-07-26 22:50:58 +00:00
CodeCoverage.cpp [llvm-cov] Multi-threaded implementation of prepareFileReports method. 2018-01-05 16:15:07 +00:00
CoverageExporter.h [llvm-cov] Refactor "export" command implementation and add support for SOURCES. 2018-01-04 19:33:29 +00:00
CoverageExporterJson.cpp [llvm-cov] Refactor "export" command implementation and add support for SOURCES. 2018-01-04 19:33:29 +00:00
CoverageExporterJson.h [llvm-cov] Refactor "export" command implementation and add support for SOURCES. 2018-01-04 19:33:29 +00:00
CoverageFilters.cpp [llvm-cov] Improve const-correctness of filters. NFC. 2017-09-27 08:32:36 +00:00
CoverageFilters.h [llvm-cov] Improve const-correctness of filters. NFC. 2017-09-27 08:32:36 +00:00
CoverageReport.cpp [llvm-cov] Multi-threaded implementation of prepareFileReports method. 2018-01-05 16:15:07 +00:00
CoverageReport.h [llvm-cov] Multi-threaded implementation of prepareFileReports method. 2018-01-05 16:15:07 +00:00
CoverageSummaryInfo.cpp [llvm-cov] Move LineCoverageIterator to libCoverage. NFC. 2017-10-18 23:58:28 +00:00
CoverageSummaryInfo.h [llvm-cov] Multi-threaded implementation of prepareFileReports method. 2018-01-05 16:15:07 +00:00
CoverageViewOptions.h [llvm-cov] Multi-threaded implementation of prepareFileReports method. 2018-01-05 16:15:07 +00:00
LLVMBuild.txt Move coverage related code into a separate library. 2016-04-29 18:53:05 +00:00
RenderingSupport.h NFC, add an "end namespace" comment for consistency 2016-06-23 16:27:08 +00:00
SourceCoverageView.cpp [llvm-cov] Don't render empty region marker lines 2017-11-09 02:33:44 +00:00
SourceCoverageView.h [llvm-cov] Don't render empty region marker lines 2017-11-09 02:33:44 +00:00
SourceCoverageViewHTML.cpp Remove redundant includes from tools. 2017-12-13 21:31:10 +00:00
SourceCoverageViewHTML.h [llvm-cov] Use the coverage namespace. NFC. 2017-10-18 23:58:27 +00:00
SourceCoverageViewText.cpp [Coverage] Use the wrapped segment when a line has entry segments 2017-11-09 02:33:43 +00:00
SourceCoverageViewText.h [llvm-cov] Use the coverage namespace. NFC. 2017-10-18 23:58:27 +00:00
TestingSupport.cpp [ProfileData] Unify getInstrProf*SectionName helpers 2017-04-15 00:09:57 +00:00
gcov.cpp GCOV: Move GCOV from IR & Support into ProfileData to fix layering 2017-11-03 20:57:10 +00:00
llvm-cov.cpp Retry: [llvm-cov] Add support for exporting coverage data to JSON 2016-07-26 22:50:58 +00:00