LLVM 22.0.0git
|
#include "llvm/IR/Verifier.h"
#include "llvm/ADT/APFloat.h"
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/MapVector.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/Twine.h"
#include "llvm/BinaryFormat/Dwarf.h"
#include "llvm/IR/Argument.h"
#include "llvm/IR/AttributeMask.h"
#include "llvm/IR/Attributes.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/CFG.h"
#include "llvm/IR/CallingConv.h"
#include "llvm/IR/Comdat.h"
#include "llvm/IR/Constant.h"
#include "llvm/IR/ConstantRange.h"
#include "llvm/IR/ConstantRangeList.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/ConvergenceVerifier.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/DebugInfo.h"
#include "llvm/IR/DebugInfoMetadata.h"
#include "llvm/IR/DebugLoc.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/EHPersonalities.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/GCStrategy.h"
#include "llvm/IR/GlobalAlias.h"
#include "llvm/IR/GlobalValue.h"
#include "llvm/IR/GlobalVariable.h"
#include "llvm/IR/InlineAsm.h"
#include "llvm/IR/InstVisitor.h"
#include "llvm/IR/InstrTypes.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/IntrinsicsAArch64.h"
#include "llvm/IR/IntrinsicsAMDGPU.h"
#include "llvm/IR/IntrinsicsARM.h"
#include "llvm/IR/IntrinsicsNVPTX.h"
#include "llvm/IR/IntrinsicsWebAssembly.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/MemoryModelRelaxationAnnotations.h"
#include "llvm/IR/Metadata.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/ModuleSlotTracker.h"
#include "llvm/IR/PassManager.h"
#include "llvm/IR/ProfDataUtils.h"
#include "llvm/IR/Statepoint.h"
#include "llvm/IR/Type.h"
#include "llvm/IR/Use.h"
#include "llvm/IR/User.h"
#include "llvm/IR/VFABIDemangler.h"
#include "llvm/IR/Value.h"
#include "llvm/InitializePasses.h"
#include "llvm/Pass.h"
#include "llvm/ProfileData/InstrProf.h"
#include "llvm/Support/AMDGPUAddrSpace.h"
#include "llvm/Support/AtomicOrdering.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/ModRef.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cassert>
#include <cstdint>
#include <memory>
#include <optional>
#include <string>
#include <utility>
#include "llvm/IR/Metadata.def"
#include "llvm/IR/Attributes.inc"
#include "llvm/IR/VPIntrinsics.def"
#include "llvm/IR/ConstrainedOps.def"
Go to the source code of this file.
Classes | |
struct | llvm::VerifierSupport |
Namespaces | |
namespace | llvm |
This is an optimization pass for GlobalISel generic memory operations. | |
Macros | |
#define | HANDLE_SPECIALIZED_MDNODE_LEAF(CLASS) void visit##CLASS(const CLASS &N); |
#define | Check(C, ...) |
We know that cond should be true, if not print an error message. | |
#define | CheckDI(C, ...) |
We know that a debug info condition should be true, if not print an error message. | |
#define | HANDLE_SPECIALIZED_MDNODE_LEAF(CLASS) |
#define | GET_ATTR_NAMES |
#define | ATTRIBUTE_ENUM(ENUM_NAME, DISPLAY_NAME) |
#define | ATTRIBUTE_STRBOOL(ENUM_NAME, DISPLAY_NAME) |
#define | BEGIN_REGISTER_VP_INTRINSIC(VPID, ...) case Intrinsic::VPID: |
#define | INSTRUCTION(NAME, NARGS, ROUND_MODE, INTRINSIC) case Intrinsic::INTRINSIC: |
#define | CheckTBAA(C, ...) |
Variables | |
static cl::opt< bool > | VerifyNoAliasScopeDomination ("verify-noalias-scope-decl-dom", cl::Hidden, cl::init(false), cl::desc("Ensure that llvm.experimental.noalias.scope.decl for identical " "scopes are not dominating")) |
#define ATTRIBUTE_ENUM | ( | ENUM_NAME, | |
DISPLAY_NAME | |||
) |
#define ATTRIBUTE_STRBOOL | ( | ENUM_NAME, | |
DISPLAY_NAME | |||
) |
#define BEGIN_REGISTER_VP_INTRINSIC | ( | VPID, | |
... | |||
) | case Intrinsic::VPID: |
#define Check | ( | C, | |
... | |||
) |
We know that cond should be true, if not print an error message.
Definition at line 666 of file Verifier.cpp.
#define CheckDI | ( | C, | |
... | |||
) |
We know that a debug info condition should be true, if not print an error message.
Definition at line 676 of file Verifier.cpp.
#define CheckTBAA | ( | C, | |
... | |||
) |
Definition at line 7597 of file Verifier.cpp.
#define GET_ATTR_NAMES |
Definition at line 543 of file Verifier.cpp.
#define HANDLE_SPECIALIZED_MDNODE_LEAF | ( | CLASS | ) |
Definition at line 543 of file Verifier.cpp.
#define INSTRUCTION | ( | NAME, | |
NARGS, | |||
ROUND_MODE, | |||
INTRINSIC | |||
) | case Intrinsic::INTRINSIC: |
|
static |
Definition at line 717 of file Verifier.cpp.
References llvm::append_range(), llvm::SmallVectorBase< Size_T >::empty(), llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::Value::materialized_users(), and llvm::SmallVectorImpl< T >::pop_back_val().
|
static |
Definition at line 3986 of file Verifier.cpp.
References llvm::CallingConv::C, I, and llvm::Attribute::isValid().
Definition at line 4572 of file Verifier.cpp.
|
static |
Carefully grab the subprogram from a local scope.
This carefully grabs the subprogram from a local scope, avoiding the built-in assertions that would typically fire.
Definition at line 6890 of file Verifier.cpp.
References assert(), and getSubprogram().
Referenced by getSubprogram().
|
static |
Definition at line 2824 of file Verifier.cpp.
References llvm::BasicBlock::getFirstNonPHIIt(), and II.
Detect mutually exclusive flags.
Definition at line 1335 of file Verifier.cpp.
Definition at line 5243 of file Verifier.cpp.
|
static |
Definition at line 4302 of file Verifier.cpp.
Definition at line 1134 of file Verifier.cpp.
|
static |
Definition at line 7819 of file Verifier.cpp.
Referenced by llvm::TBAAVerifier::visitTBAAMetadata().
Definition at line 7738 of file Verifier.cpp.
References llvm::MDNode::getNumOperands().
Referenced by IsScalarTBAANodeImpl(), and llvm::TBAAVerifier::visitTBAAMetadata().
|
static |
Definition at line 7742 of file Verifier.cpp.
References llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), llvm::SmallPtrSetImpl< PtrType >::insert(), IsRootTBAANode(), IsScalarTBAANodeImpl(), and llvm::Offset.
Referenced by IsScalarTBAANodeImpl().
Definition at line 1133 of file Verifier.cpp.
Definition at line 1132 of file Verifier.cpp.
Two types are "congruent" if they are identical, or if they are both pointer types with different pointee types and the same address space.
Definition at line 3976 of file Verifier.cpp.
|
static |