summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-cov/FunctionCoverageMapping.h
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/tools/llvm-cov/FunctionCoverageMapping.h')
-rw-r--r--llvm/tools/llvm-cov/FunctionCoverageMapping.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/llvm/tools/llvm-cov/FunctionCoverageMapping.h b/llvm/tools/llvm-cov/FunctionCoverageMapping.h
new file mode 100644
index 00000000000..d171483cee9
--- /dev/null
+++ b/llvm/tools/llvm-cov/FunctionCoverageMapping.h
@@ -0,0 +1,50 @@
+//===- FunctionCoverageMapping.h - Function coverage mapping record -------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// A structure that stores the coverage mapping record for a single function.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_COV_FUNCTIONCOVERAGEMAPPING_H
+#define LLVM_COV_FUNCTIONCOVERAGEMAPPING_H
+
+#include <string>
+#include <vector>
+#include "llvm/ADT/ArrayRef.h"
+#include "llvm/ADT/StringRef.h"
+#include "llvm/ProfileData/CoverageMapping.h"
+
+namespace llvm {
+
+/// \brief Associates a source range with an execution count.
+struct MappingRegion : public coverage::CounterMappingRegion {
+ uint64_t ExecutionCount;
+
+ MappingRegion(const CounterMappingRegion &R, uint64_t ExecutionCount)
+ : CounterMappingRegion(R), ExecutionCount(ExecutionCount) {}
+};
+
+/// \brief Stores all the required information
+/// about code coverage for a single function.
+struct FunctionCoverageMapping {
+ /// \brief Raw function name.
+ std::string Name;
+ /// \brief Demangled function name.
+ std::string PrettyName;
+ std::vector<std::string> Filenames;
+ std::vector<MappingRegion> MappingRegions;
+
+ FunctionCoverageMapping(StringRef Name, ArrayRef<StringRef> Filenames)
+ : Name(Name), PrettyName(Name),
+ Filenames(Filenames.begin(), Filenames.end()) {}
+};
+
+} // namespace llvm
+
+#endif // LLVM_COV_FUNCTIONCOVERAGEMAPPING_H
OpenPOWER on IntegriCloud