13#ifndef LLVM_LIB_IR_VERIFIERINTERNAL_H
14#define LLVM_LIB_IR_VERIFIERINTERNAL_H
52 *
OS <<
"; ModuleID = '" << M->getModuleIdentifier() <<
"'\n";
55 void Write(
const Value *V) {
65 V.printAsOperand(*
OS,
true,
MST);
70 void Write(
const DbgRecord *DR) {
72 DR->print(*
OS,
MST,
false);
86 *
OS <<
"declare_value";
107 template <
class T>
void Write(
const MDTupleTypedArrayWrapper<T> &MD) {
111 void Write(
const NamedMDNode *NMD) {
114 NMD->print(*
OS,
MST);
124 void Write(
const Comdat *
C) {
130 void Write(
const APInt *AI) {
136 void Write(
const unsigned i) { *
OS << i <<
'\n'; }
142 *
OS <<
A->getAsString() <<
'\n';
146 void Write(
const AttributeSet *AS) {
149 *
OS << AS->getAsString() <<
'\n';
153 void Write(
const AttributeList *AL) {
159 void Write(Printable
P) { *
OS <<
P <<
'\n'; }
161 template <
typename T>
void Write(ArrayRef<T> Vs) {
162 for (
const T &V : Vs)
166 template <
typename T1,
typename... Ts>
167 void WriteTs(
const T1 &
V1,
const Ts &...Vs) {
172 template <
typename... Ts>
void WriteTs() {}
181 *
OS << Message <<
'\n';
189 template <
typename T1,
typename... Ts>
199 *
OS << Message <<
'\n';
205 template <
typename T1,
typename... Ts>
This file contains the simple types necessary to represent the attributes associated with functions a...
static GCRegistry::Add< ErlangGC > A("erlang", "erlang-compatible garbage collector")
Module.h This file contains the declarations for the Module class.
A parsed version of the target data layout string in and methods for querying it.
@ End
Marks the end of the concrete types.
@ Any
To indicate all LocationTypes in searches.
This is an important class for using LLVM in a threaded context.
Manage lifetime of a slot tracker for printing IR.
A Module instance is used to store all the information related to an LLVM module.
ModFlagBehavior
This enumeration defines the supported behaviors of module flags.
Triple - Helper class for working with autoconf configuration names.
Twine - A lightweight data structure for efficiently representing the concatenation of temporary valu...
This class implements an extremely fast bulk output stream that can only output to a stream.
unsigned ID
LLVM IR allows to use arbitrary numbers as calling convention identifiers.
@ C
The default llvm calling convention, compatible with C.
This is an optimization pass for GlobalISel generic memory operations.
FunctionAddr VTableAddr Value
void verifyAMDGPUAlloca(VerifierSupport &VS, const AllocaInst &AI)
void verifyAMDGPUFunctionMetadata(VerifierSupport &VS, const Function &F)
void verifyAMDGPUIntrinsicCall(VerifierSupport &VS, Intrinsic::ID ID, CallBase &Call)
bool isa(const From &Val)
isa<X> - Return true if the parameter to the template is an instance of one of the template type argu...
DWARFExpression::Operation Op
void verifyAMDGPUModuleFlag(VerifierSupport &VS, const MDString *ID, Module::ModFlagBehavior MFB, const MDNode *Op)
bool isAMDGPUCallBrIntrinsic(Intrinsic::ID ID)
void CheckFailed(const Twine &Message, const T1 &V1, const Ts &...Vs)
A check failed (with values to print).
void DebugInfoCheckFailed(const Twine &Message)
A debug info check failed.
VerifierSupport(raw_ostream *OS, const Module &M)
bool Broken
Track the brokenness of the module while recursively visiting.
bool BrokenDebugInfo
Broken debug info can be "recovered" from by stripping the debug info.
bool TreatBrokenDebugInfoAsError
Whether to treat broken debug info as an error.
void CheckFailed(const Twine &Message)
A check failed, so printout out the condition and the message.
void DebugInfoCheckFailed(const Twine &Message, const T1 &V1, const Ts &...Vs)
A debug info check failed (with values to print).