mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 04:30:12 +00:00
65b3fca21f
This patch implements the data structures, the reader and the writers for the new code coverage mapping system. The new code coverage mapping system uses the instrumentation based profiling to provide code coverage analysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@213910 91177308-0d34-0410-b5e6-96231b3b80d8
64 lines
2.1 KiB
C++
64 lines
2.1 KiB
C++
//=-- CoverageMappingWriter.h - Code coverage mapping writer ------*- C++ -*-=//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This file contains support for writing coverage mapping data for
|
|
// instrumentation based coverage.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLVM_PROFILEDATA_COVERAGEMAPPING_WRITER_H_
|
|
#define LLVM_PROFILEDATA_COVERAGEMAPPING_WRITER_H_
|
|
|
|
#include "llvm/ProfileData/CoverageMapping.h"
|
|
#include "llvm/ADT/ArrayRef.h"
|
|
#include "llvm/ADT/StringMap.h"
|
|
#include "llvm/Support/raw_ostream.h"
|
|
|
|
namespace llvm {
|
|
namespace coverage {
|
|
|
|
/// \brief Writer of the filenames section for the instrumentation
|
|
/// based code coverage.
|
|
class CoverageFilenamesSectionWriter {
|
|
ArrayRef<StringRef> Filenames;
|
|
|
|
public:
|
|
CoverageFilenamesSectionWriter(ArrayRef<StringRef> Filenames)
|
|
: Filenames(Filenames) {}
|
|
|
|
/// \brief Write encoded filenames to the given output stream.
|
|
void write(raw_ostream &OS);
|
|
};
|
|
|
|
/// \brief Writer for instrumentation based coverage mapping data.
|
|
class CoverageMappingWriter {
|
|
ArrayRef<unsigned> VirtualFileMapping;
|
|
ArrayRef<CounterExpression> Expressions;
|
|
MutableArrayRef<CounterMappingRegion> MappingRegions;
|
|
|
|
public:
|
|
CoverageMappingWriter(ArrayRef<unsigned> VirtualFileMapping,
|
|
ArrayRef<CounterExpression> Expressions,
|
|
MutableArrayRef<CounterMappingRegion> MappingRegions)
|
|
: VirtualFileMapping(VirtualFileMapping), Expressions(Expressions),
|
|
MappingRegions(MappingRegions) {}
|
|
|
|
CoverageMappingWriter(ArrayRef<CounterExpression> Expressions,
|
|
MutableArrayRef<CounterMappingRegion> MappingRegions)
|
|
: Expressions(Expressions), MappingRegions(MappingRegions) {}
|
|
|
|
/// \brief Write encoded coverage mapping data to the given output stream.
|
|
void write(raw_ostream &OS);
|
|
};
|
|
|
|
} // end namespace coverage
|
|
} // end namespace llvm
|
|
|
|
#endif // LLVM_PROFILE_COVERAGEMAPPING_WRITER_H_
|