]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/include/llvm/Support/CodeGenCoverage.h
MFV r329766: 8962 zdb should work on non-idle pools
[FreeBSD/FreeBSD.git] / contrib / llvm / include / llvm / Support / CodeGenCoverage.h
1 //== llvm/Support/CodeGenCoverage.h ------------------------------*- C++ -*-==//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 /// \file This file provides rule coverage tracking for tablegen-erated CodeGen.
10 //===----------------------------------------------------------------------===//
11
12 #ifndef LLVM_SUPPORT_CODEGENCOVERAGE_H
13 #define LLVM_SUPPORT_CODEGENCOVERAGE_H
14
15 #include "llvm/ADT/BitVector.h"
16
17 namespace llvm {
18 class LLVMContext;
19 class MemoryBuffer;
20
21 class CodeGenCoverage {
22 protected:
23   BitVector RuleCoverage;
24
25 public:
26   CodeGenCoverage();
27
28   void setCovered(uint64_t RuleID);
29   bool isCovered(uint64_t RuleID);
30
31   bool parse(MemoryBuffer &Buffer, StringRef BackendName);
32   bool emit(StringRef FilePrefix, StringRef BackendName) const;
33   void reset();
34 };
35 } // end namespace llvm
36
37 #endif // ifndef LLVM_SUPPORT_CODEGENCOVERAGE_H