LLVM 17.0.0git
SanitizerStats.h
Go to the documentation of this file.
1//===- SanitizerStats.h - Sanitizer statistics gathering -------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// Declares functions and data structures for sanitizer statistics gathering.
10//
11//===----------------------------------------------------------------------===//
12
13#ifndef LLVM_TRANSFORMS_UTILS_SANITIZERSTATS_H
14#define LLVM_TRANSFORMS_UTILS_SANITIZERSTATS_H
15
16#include "llvm/IR/IRBuilder.h"
17
18namespace llvm {
19
20// Number of bits in data that are used for the sanitizer kind. Needs to match
21// __sanitizer::kKindBits in compiler-rt/lib/stats/stats.h
23
30};
31
34
35 /// Generates code into B that increments a location-specific counter tagged
36 /// with the given sanitizer kind SK.
38
39 /// Finalize module stats array and add global constructor to register it.
40 void finish();
41
42private:
43 Module *M;
44 GlobalVariable *ModuleStatsGV;
45 ArrayType *StatTy;
46 StructType *EmptyModuleStatsTy;
47
48 std::vector<Constant *> Inits;
49 ArrayType *makeModuleStatsArrayTy();
50 StructType *makeModuleStatsTy();
51};
52
53}
54
55#endif
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
Class to represent array types.
Definition: DerivedTypes.h:357
This provides a uniform API for creating instructions and inserting them into a basic block: either a...
Definition: IRBuilder.h:2550
A Module instance is used to store all the information related to an LLVM module.
Definition: Module.h:65
Class to represent struct types.
Definition: DerivedTypes.h:213
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
SanitizerStatKind
@ SanStat_CFI_UnrelatedCast
@ SanStat_CFI_VCall
@ SanStat_CFI_NVCall
@ SanStat_CFI_DerivedCast
@ SanStat_CFI_ICall
@ kSanitizerStatKindBits
void finish()
Finalize module stats array and add global constructor to register it.
void create(IRBuilder<> &B, SanitizerStatKind SK)
Generates code into B that increments a location-specific counter tagged with the given sanitizer kin...