diff options
author | Petr Hosek <phosek@google.com> | 2021-02-18 12:47:40 -0800 |
---|---|---|
committer | Petr Hosek <phosek@google.com> | 2021-02-18 12:50:24 -0800 |
commit | fbf8b957fdc1d421f86049669a9af6cd2c05971d (patch) | |
tree | e81e1e587c0e784fcfea9e970e0b816113bb385e /clang/lib/CodeGen/CoverageMappingGen.cpp | |
parent | 8e01e2ec0f3e7a87f49fd3bfc5f18b48e0958213 (diff) | |
download | llvm-fbf8b957fdc1d421f86049669a9af6cd2c05971d.zip llvm-fbf8b957fdc1d421f86049669a9af6cd2c05971d.tar.gz llvm-fbf8b957fdc1d421f86049669a9af6cd2c05971d.tar.bz2 |
Revert "[Coverage] Store compilation dir separately in coverage mapping"
This reverts commit 97ec8fa5bb07e3f5bf25ddcb216b545cd3d03b65 since
the test is failing on some bots.
Diffstat (limited to 'clang/lib/CodeGen/CoverageMappingGen.cpp')
-rw-r--r-- | clang/lib/CodeGen/CoverageMappingGen.cpp | 30 |
1 files changed, 12 insertions, 18 deletions
diff --git a/clang/lib/CodeGen/CoverageMappingGen.cpp b/clang/lib/CodeGen/CoverageMappingGen.cpp index ebbd6aa..ce2cb38 100644 --- a/clang/lib/CodeGen/CoverageMappingGen.cpp +++ b/clang/lib/CodeGen/CoverageMappingGen.cpp @@ -1606,17 +1606,9 @@ CoverageMappingModuleGen::CoverageMappingModuleGen( ProfilePrefixMap = CGM.getCodeGenOpts().ProfilePrefixMap; } -std::string CoverageMappingModuleGen::getCurrentDirname() { - if (!CGM.getCodeGenOpts().ProfileCompilationDir.empty()) - return CGM.getCodeGenOpts().ProfileCompilationDir; - - SmallString<256> CWD; - llvm::sys::fs::current_path(CWD); - return CWD.str().str(); -} - std::string CoverageMappingModuleGen::normalizeFilename(StringRef Filename) { llvm::SmallString<256> Path(Filename); + llvm::sys::fs::make_absolute(Path); llvm::sys::path::remove_dots(Path, /*remove_dot_dot=*/true); for (const auto &Entry : ProfilePrefixMap) { if (llvm::sys::path::replace_path_prefix(Path, Entry.first, Entry.second)) @@ -1697,17 +1689,18 @@ void CoverageMappingModuleGen::addFunctionMappingRecord( // also processed by the CoverageMappingWriter which performs // additional minimization operations such as reducing the number of // expressions. - llvm::SmallVector<std::string, 16> FilenameStrs; std::vector<StringRef> Filenames; std::vector<CounterExpression> Expressions; std::vector<CounterMappingRegion> Regions; - FilenameStrs.resize(FileEntries.size() + 1); - FilenameStrs[0] = normalizeFilename(getCurrentDirname()); + llvm::SmallVector<std::string, 16> FilenameStrs; + llvm::SmallVector<StringRef, 16> FilenameRefs; + FilenameStrs.resize(FileEntries.size()); + FilenameRefs.resize(FileEntries.size()); for (const auto &Entry : FileEntries) { auto I = Entry.second; FilenameStrs[I] = normalizeFilename(Entry.first->getName()); + FilenameRefs[I] = FilenameStrs[I]; } - ArrayRef<std::string> FilenameRefs = llvm::makeArrayRef(FilenameStrs); RawCoverageMappingReader Reader(CoverageMapping, FilenameRefs, Filenames, Expressions, Regions); if (Reader.read()) @@ -1724,18 +1717,19 @@ void CoverageMappingModuleGen::emit() { // Create the filenames and merge them with coverage mappings llvm::SmallVector<std::string, 16> FilenameStrs; - FilenameStrs.resize(FileEntries.size() + 1); - // The first filename is the current working directory. - FilenameStrs[0] = getCurrentDirname(); + llvm::SmallVector<StringRef, 16> FilenameRefs; + FilenameStrs.resize(FileEntries.size()); + FilenameRefs.resize(FileEntries.size()); for (const auto &Entry : FileEntries) { auto I = Entry.second; FilenameStrs[I] = normalizeFilename(Entry.first->getName()); + FilenameRefs[I] = FilenameStrs[I]; } std::string Filenames; { llvm::raw_string_ostream OS(Filenames); - CoverageFilenamesSectionWriter(FilenameStrs).write(OS); + CoverageFilenamesSectionWriter(FilenameRefs).write(OS); } auto *FilenamesVal = llvm::ConstantDataArray::getString(Ctx, Filenames, false); @@ -1793,7 +1787,7 @@ unsigned CoverageMappingModuleGen::getFileID(const FileEntry *File) { auto It = FileEntries.find(File); if (It != FileEntries.end()) return It->second; - unsigned FileID = FileEntries.size() + 1; + unsigned FileID = FileEntries.size(); FileEntries.insert(std::make_pair(File, FileID)); return FileID; } |