summaryrefslogtreecommitdiffstats
path: root/llvm/unittests/ProfileData/CoverageMappingTest.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Simplify InstrProfRecord tests, eliminating named temporaries in favor of ↵David Blaikie2017-07-061-32/+16
| | | | | | | | | braced init args This will also simplify an API transition and class renaming coming soon. llvm-svn: 307236
* Try to appease a buildbot.Vedant Kumar2017-06-301-1/+2
| | | | | | | | | | The failure is: C:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\unittests\ProfileData\CoverageMappingTest.cpp(244): error C2668: 'llvm::make_unique': ambiguous call to overloaded function http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-win/builds/3489/ llvm-svn: 306784
* [Coverage] Remove two overloads of CoverageMapping::load. NFC.Vedant Kumar2017-06-301-8/+9
| | | | | | | | | | These overloads are essentially dead, and pose a maintenance cost without adding any benefit. This is coming up now because I'd like to experiment with changing the way we store coverage mapping data, and would rather not have to fix up the old overloads while doing so. Testing: check-{llvm,profile}, build clang. llvm-svn: 306776
* [Coverage] PR33517: Check for failure to load func recordsVedant Kumar2017-06-201-16/+39
| | | | | | | | | | | | With PR33517, it became apparent that symbol table creation can fail when presented with malformed inputs. This patch makes that sort of error detectable, so llvm-cov etc. can fail more gracefully. Specifically, we now check that function records loaded from corrupted coverage mapping data are rejected, e.g when the recorded function name is garbage. Testing: check-{llvm,clang,profile}, some unit test updates. llvm-svn: 305767
* Fixed warning: must specify at least one argument for '...' parameter.Galina Kistanova2017-06-041-1/+1
| | | | llvm-svn: 304676
* Fix signed/unsigned comparison warningSimon Pilgrim2017-03-111-1/+1
| | | | llvm-svn: 297565
* Fix spelling mistakes in Tools/Tests comments. NFC.Simon Pilgrim2016-11-201-1/+1
| | | | | | Identified by Pedro Giffuni in PR27636. llvm-svn: 287489
* [Coverage] Support loading multiple binaries into a CoverageMappingVedant Kumar2016-10-141-6/+42
| | | | | | | | | | Add support for loading multiple coverage readers into a single CoverageMapping instance. This should make it easier to prepare a unified coverage report for multiple binaries. Differential Revision: https://reviews.llvm.org/D25535 llvm-svn: 284251
* [unittests] Remove a redundant test fixture (NFC)Vedant Kumar2016-10-131-30/+19
| | | | llvm-svn: 284135
* [unittests] Delete even more copy constructors (NFC)Vedant Kumar2016-10-121-0/+10
| | | | llvm-svn: 284069
* [unittests] Delete some copy constructors (NFC)Vedant Kumar2016-10-121-0/+11
| | | | llvm-svn: 284066
* [unittest] Pass a reference instead of making a copy (NFC)Vedant Kumar2016-10-121-1/+1
| | | | llvm-svn: 284065
* Rename StringMap::emplace_second to try_emplace.Benjamin Kramer2016-07-211-1/+1
| | | | | | | Coincidentally this function maps to the C++17 try_emplace. Rename it for consistentcy with C++17 std::map. NFC. llvm-svn: 276276
* Retry^3 "[ProfileData] (llvm) Use Error in InstrProf and Coverage, NFC"Vedant Kumar2016-05-191-9/+9
| | | | | | | | | | | | | | | Transition InstrProf and Coverage over to the stricter Error/Expected interface. Changes since the initial commit: - Fix error message printing in llvm-profdata. - Check errors in loadTestingFormat() + annotateAllFunctions(). - Defer error handling in InstrProfIterator to InstrProfReader. - Remove the base ProfError class to work around an MSVC ICE. Differential Revision: http://reviews.llvm.org/D19901 llvm-svn: 270020
* Revert "Retry^2 "[ProfileData] (llvm) Use Error in InstrProf and Coverage, NFC""Vedant Kumar2016-05-161-9/+9
| | | | | | | | This reverts commit r269694. MSVC says: error C2086: 'char llvm::ProfErrorInfoBase<enum llvm::instrprof_error>::ID' : redefinition llvm-svn: 269700
* Retry^2 "[ProfileData] (llvm) Use Error in InstrProf and Coverage, NFC"Vedant Kumar2016-05-161-9/+9
| | | | | | | | | | | | | | | Transition InstrProf and Coverage over to the stricter Error/Expected interface. Changes since the initial commit: - Address undefined-var-template warning. - Fix error message printing in llvm-profdata. - Check errors in loadTestingFormat() + annotateAllFunctions(). - Defer error handling in InstrProfIterator to InstrProfReader. Differential Revision: http://reviews.llvm.org/D19901 llvm-svn: 269694
* Revert "Retry "[ProfileData] (llvm) Use Error in InstrProf and Coverage, NFC""Chandler Carruth2016-05-141-9/+9
| | | | | | | This reverts commit r269491. It triggers warnings with Clang, breaking builds for -Werror users including several build bots. llvm-svn: 269547
* Retry "[ProfileData] (llvm) Use Error in InstrProf and Coverage, NFC"Vedant Kumar2016-05-131-9/+9
| | | | | | | | | | | | | | Transition InstrProf and Coverage over to the stricter Error/Expected interface. Changes since the initial commit: - Fix error message printing in llvm-profdata. - Check errors in loadTestingFormat() + annotateAllFunctions(). - Defer error handling in InstrProfIterator to InstrProfReader. Differential Revision: http://reviews.llvm.org/D19901 llvm-svn: 269491
* Revert "(HEAD -> master, origin/master, origin/HEAD) [ProfileData] (llvm) ↵Vedant Kumar2016-05-131-9/+9
| | | | | | | | Use Error in InstrProf and Coverage, NFC" This reverts commit r269462. It fails two llvm-profdata tests. llvm-svn: 269466
* [ProfileData] (llvm) Use Error in InstrProf and Coverage, NFCVedant Kumar2016-05-131-9/+9
| | | | | | | | | Transition InstrProf and Coverage over to the stricter Error/Expected interface. Differential Revision: http://reviews.llvm.org/D19901 llvm-svn: 269462
* [unittests] Use coveragemap_error in CoverageMappingReaderMock (NFC)Vedant Kumar2016-05-121-2/+2
| | | | llvm-svn: 269324
* [Coverage] Combine counts of expansion regions if there are no code regions ↵Igor Kudrin2016-05-051-0/+25
| | | | | | | | for the same area. Differential Revision: http://reviews.llvm.org/D18831 llvm-svn: 268620
* [ProfileData] Assert NoError in CoverageMappingTestVedant Kumar2016-05-031-13/+13
| | | | | | | | | Check for success values in the CoverageMappingTest unit test file. This is part of a series of patches to transition ProfileData over to the stricter Error/Expected interface. llvm-svn: 268420
* Move coverage related code into a separate library.Easwaran Raman2016-04-291-3/+3
| | | | | | Differential Revision: http://reviews.llvm.org/D19333 llvm-svn: 268089
* [Coverage] Restore the correct count value after processing a nested region ↵Igor Kudrin2016-04-251-0/+20
| | | | | | | | | | | | | in case of combined regions. If several regions cover the same area of code, we have to restore the combined value for that area when return from a nested region. This patch achieves that by combining regions before calling buildSegments. Differential Revision: http://reviews.llvm.org/D18610 llvm-svn: 267390
* Reapply "[Coverage] Prevent detection of false instantiations in case of ↵Igor Kudrin2016-04-181-0/+38
| | | | | | | | | | | | | | | | | | macro expansion." The root of the problem was that findMainViewFileID(File, Function) could return some ID for any given file, even though that file was not the main file for that function. This patch ensures that the result of this function is conformed with the result of findMainViewFileID(Function). This commit reapplies r266436, which was reverted by r266458, with the .covmapping file serialized in v1 format. Differential Revision: http://reviews.llvm.org/D18787 llvm-svn: 266620
* [NFC] Header cleanupMehdi Amini2016-04-181-1/+1
| | | | | | | | | | | | | | Removed some unused headers, replaced some headers with forward class declarations. Found using simple scripts like this one: clear && ack --cpp -l '#include "llvm/ADT/IndexedMap.h"' | xargs grep -L 'IndexedMap[<]' | xargs grep -n --color=auto 'IndexedMap' Patch by Eugene Kosov <claprix@yandex.ru> Differential Revision: http://reviews.llvm.org/D19219 From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266595
* Revert "[Coverage] Prevent detection of false instantiations in case of ↵Igor Kudrin2016-04-151-38/+0
| | | | | | | | macro expansion." This reverts commit r266436 as it broke buildbot. llvm-svn: 266458
* [Coverage] Prevent detection of false instantiations in case of macro expansion.Igor Kudrin2016-04-151-0/+38
| | | | | | | | | | | | | The root of the problem was that findMainViewFileID(File, Function) could return some ID for any given file, even though that file was not the main file for that function. This patch ensures that the result of this function is conformed with the result of findMainViewFileID(Function). Differential Revision: http://reviews.llvm.org/D18787 llvm-svn: 266436
* [Coverage] Add support for making test data for more than one function.Igor Kudrin2016-04-151-83/+169
| | | | | | Differential Revision: http://reviews.llvm.org/D18758 llvm-svn: 266434
* [Coverage] Update testing methods to support more than two filesIgor Kudrin2016-04-141-11/+58
| | | | | | Differential Revision: http://reviews.llvm.org/D18757 llvm-svn: 266289
* [Coverage] Strip <unknown> from PGO names if no filenames are availableVedant Kumar2016-03-281-4/+6
| | | | | | Patch suggested by David Li! llvm-svn: 264586
* [Coverage] Fix the way we load "<unknown>:func" recordsVedant Kumar2016-03-281-0/+15
| | | | | | | | | When emitting coverage mappings for functions with local linkage and an unknown filename, we use "<unknown>:func" for the PGO function name. The problem is that we don't strip "<unknown>" from the name when loading coverage data, like we do for other file names. Fix that and add a test. llvm-svn: 264559
* [Profiling] Add a -sparse mode to llvm-profdata mergeVedant Kumar2016-01-291-11/+26
| | | | | | | | | | Add an option to llvm-profdata merge for writing out sparse indexed profiles. These profiles omit InstrProfRecords for functions which are never executed. Differential Revision: http://reviews.llvm.org/D16727 llvm-svn: 259258
* InstrProf: Support for value profiling in the indexed profile formatJustin Bogner2015-09-291-4/+8
| | | | | | | | | Add support to the indexed instrprof reader and writer for the format that will be used for value profiling. Patch by Betul Buyukkurt, with minor modifications. llvm-svn: 248833
* InstrProf: Treat functions with a coverage map but no profile as unreachedJustin Bogner2015-05-131-0/+15
| | | | | | | | | | If we have a coverage mapping but no profile data for a function, calling it mismatched is misleading. This can just as easily be unreachable code that was stripped from the binary. Instead, treat these the same as functions where we have an explicit "zero" coverage map by setting the count to zero for each mapped region. llvm-svn: 237298
* InstrProf: Strip filename prefixes from the names we display for coverageJustin Bogner2015-05-051-0/+14
| | | | | | | For consumers of coverage data, any filename prefixes we store in the profile data are just noise. Strip this prefix if it exists. llvm-svn: 236558
* InstrProf: Don't combine expansion regions with code regionsJustin Bogner2015-02-181-0/+37
| | | | | | | | This was leading to duplicate counts when a code region happened to overlap exactly with an expansion. The combining behaviour only makes sense for code regions. llvm-svn: 229723
* InstrProf: Handle unknown functions if they consist only of zero-regionsJustin Bogner2015-02-181-0/+13
| | | | | | | | | | This comes up when we generate coverage for a function but don't end up emitting the function at all - dead static functions or inline functions that aren't referenced in a particular TU, for example. In these cases we'd like to show that the function was never called, which is trivially true. llvm-svn: 229717
* InstrProf: Make CoverageMapping testable and add a basic unit testJustin Bogner2015-02-181-0/+82
| | | | | | | | Make CoverageMapping easier to create, so that we can write targeted unit tests for its internals, and add a some infrastructure to write these tests. Finally, add a simple unit test for basic functionality. llvm-svn: 229709
* Re-apply "InstrProf: Use a test fixture in the coverage mapping tests"Justin Bogner2015-02-171-67/+81
| | | | | | | | | | This time we use a helper to format the assertion so we can just use ASSERT_TRUE instead of relying on ASSERT_EQ being able to deal with conversions between enum types. This reverts r229496, re-applying r229473. llvm-svn: 229547
* Reverting r229473; it does not compile with MSVC 2013, and I suspect it was ↵Aaron Ballman2015-02-171-77/+69
| | | | | | meant to be reverted in r229483. llvm-svn: 229496
* InstrProf: Use a test fixture in the coverage mapping testsJustin Bogner2015-02-171-69/+77
| | | | llvm-svn: 229473
* InstrProf: Avoid using std::to_stringJustin Bogner2015-02-051-2/+4
| | | | | | | | | Apparently std::to_string doesn't exist in mingw32: http://lab.llvm.org:8011/builders/clang-native-mingw32-win7/builds/7990 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52015 llvm-svn: 228340
* InstrProf: std::to_string needs to #include <string>Justin Bogner2015-02-041-0/+2
| | | | llvm-svn: 228136
* InstrProf: Add some unit tests for CoverageMappingJustin Bogner2015-02-041-0/+112
The llvm-level tests for coverage mapping need a binary input file, which means they're hard to understand, hard to update, and it's difficult to add new ones. By adding some unit tests that build up the coverage data structures in C++, we can write more meaningful and targeted tests. llvm-svn: 228084
OpenPOWER on IntegriCloud