diff options
author | Justin Bogner <mail@justinbogner.com> | 2014-09-20 17:19:52 +0000 |
---|---|---|
committer | Justin Bogner <mail@justinbogner.com> | 2014-09-20 17:19:52 +0000 |
commit | 19a93ba81457afc4cd0e095b79d913e66c47cab9 (patch) | |
tree | e60a99257d9a3dbfe0229d5fe89dda935ff75ee5 /llvm/lib/ProfileData/CoverageMapping.cpp | |
parent | 953e2407edb956eb846a79fc0dce08d032ea0d66 (diff) | |
download | bcm5719-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.cpp | 14 |
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. /// |