summaryrefslogtreecommitdiffstats
path: root/llvm/lib/ProfileData/CoverageMapping.cpp
diff options
context:
space:
mode:
authorJustin Bogner <mail@justinbogner.com>2014-09-20 17:19:52 +0000
committerJustin Bogner <mail@justinbogner.com>2014-09-20 17:19:52 +0000
commit19a93ba81457afc4cd0e095b79d913e66c47cab9 (patch)
treee60a99257d9a3dbfe0229d5fe89dda935ff75ee5 /llvm/lib/ProfileData/CoverageMapping.cpp
parent953e2407edb956eb846a79fc0dce08d032ea0d66 (diff)
downloadbcm5719-llvm-19a93ba81457afc4cd0e095b79d913e66c47cab9.tar.gz
bcm5719-llvm-19a93ba81457afc4cd0e095b79d913e66c47cab9.zip
llvm-cov: Allow creating CoverageMappings from filenames
llvm-svn: 218185
Diffstat (limited to 'llvm/lib/ProfileData/CoverageMapping.cpp')
-rw-r--r--llvm/lib/ProfileData/CoverageMapping.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/llvm/lib/ProfileData/CoverageMapping.cpp b/llvm/lib/ProfileData/CoverageMapping.cpp
index 2e205f3fba5..540e6433322 100644
--- a/llvm/lib/ProfileData/CoverageMapping.cpp
+++ b/llvm/lib/ProfileData/CoverageMapping.cpp
@@ -183,6 +183,20 @@ CoverageMapping::load(ObjectFileCoverageMappingReader &CoverageReader,
return std::move(Coverage);
}
+ErrorOr<std::unique_ptr<CoverageMapping>>
+CoverageMapping::load(StringRef ObjectFilename, StringRef ProfileFilename) {
+ auto CounterMappingBuff = MemoryBuffer::getFileOrSTDIN(ObjectFilename);
+ if (auto EC = CounterMappingBuff.getError())
+ return EC;
+ ObjectFileCoverageMappingReader CoverageReader(CounterMappingBuff.get());
+ if (auto EC = CoverageReader.readHeader())
+ return EC;
+ std::unique_ptr<IndexedInstrProfReader> ProfileReader;
+ if (auto EC = IndexedInstrProfReader::create(ProfileFilename, ProfileReader))
+ return EC;
+ return load(CoverageReader, *ProfileReader);
+}
+
namespace {
/// \brief Distributes functions into instantiation sets.
///
OpenPOWER on IntegriCloud