LLVM: lib/IR/Verifier.cpp File Reference (original) (raw)
Go to the source code of this file.
| Macros | |
|---|---|
| #define | HANDLE_SPECIALIZED_MDNODE_LEAF(CLASS) |
| #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, ...) |
| #define | INSTRUCTION(NAME, NARGS, ROUND_MODE, INTRINSIC) |
| #define | CheckTBAA(C, ...) |
| Functions | |
|---|---|
| static void | forEachUser (const Value *User, SmallPtrSet< const Value *, 32 > &Visited, llvm::function_ref< bool(const Value *)> Callback) |
| static bool | isType (const Metadata *MD) |
| static bool | isScope (const Metadata *MD) |
| static bool | isDINode (const Metadata *MD) |
| static bool | isMDTuple (const Metadata *MD) |
| static bool | hasConflictingReferenceFlags (unsigned Flags) |
| Detect mutually exclusive flags. | |
| static Instruction * | getSuccPad (Instruction *Terminator) |
| static bool | isTypeCongruent (Type *L, Type *R) |
| Two types are "congruent" if they are identical, or if they are both pointer types with different pointee types and the same address space. | |
| static AttrBuilder | getParameterABIAttributes (LLVMContext &C, unsigned I, AttributeList Attrs) |
| static bool | isContiguous (const ConstantRange &A, const ConstantRange &B) |
| static Value * | getParentPad (Value *EHPad) |
| static bool | isConstantIntMetadataOperand (const Metadata *MD) |
| static DISubprogram * | getSubprogram (Metadata *LocalScope) |
| Carefully grab the subprogram from a local scope. | |
| static bool | IsRootTBAANode (const MDNode *MD) |
| static bool | IsScalarTBAANodeImpl (const MDNode *MD, SmallPtrSetImpl< const MDNode * > &Visited) |
| static bool | isNewFormatTBAATypeNode (llvm::MDNode *Type) |
| 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")) |
◆ ATTRIBUTE_ENUM
| #define ATTRIBUTE_ENUM | ( | ENUM_NAME, |
|---|---|---|
| DISPLAY_NAME ) |
◆ ATTRIBUTE_STRBOOL
| #define ATTRIBUTE_STRBOOL | ( | ENUM_NAME, |
|---|---|---|
| DISPLAY_NAME ) |
Value:
if (A.getKindAsString() == #DISPLAY_NAME) { \
auto V = A.getValueAsString(); \
if (!(V.empty() || V == "true" || V == "false")) \
CheckFailed("invalid value for '" #DISPLAY_NAME "' attribute: " + V + \
""); \
}
static GCRegistry::Add< ErlangGC > A("erlang", "erlang-compatible garbage collector")
◆ BEGIN_REGISTER_VP_INTRINSIC
| #define BEGIN_REGISTER_VP_INTRINSIC | ( | VPID, |
|---|---|---|
| ... ) |
◆ Check
Value:
do { \
if (!(C)) { \
CheckFailed(__VA_ARGS__); \
return; \
} \
} while (false)
@ C
The default llvm calling convention, compatible with C.
We know that cond should be true, if not print an error message.
Definition at line 671 of file Verifier.cpp.
◆ CheckDI
| #define CheckDI | ( | C, |
|---|---|---|
| ... ) |
Value:
do { \
if (!(C)) { \
DebugInfoCheckFailed(__VA_ARGS__); \
return; \
} \
} while (false)
We know that a debug info condition should be true, if not print an error message.
Definition at line 681 of file Verifier.cpp.
◆ CheckTBAA
| #define CheckTBAA | ( | C, |
|---|---|---|
| ... ) |
◆ GET_ATTR_NAMES
◆ HANDLE_SPECIALIZED_MDNODE_LEAF [1/2]
| #define HANDLE_SPECIALIZED_MDNODE_LEAF | ( | CLASS | ) |
|---|
Value:
void visit##CLASS(const CLASS &N);
void visit(MachineFunction &MF, MachineBasicBlock &Start, std::function< void(MachineBasicBlock *)> op)
Definition at line 548 of file Verifier.cpp.
◆ HANDLE_SPECIALIZED_MDNODE_LEAF [2/2]
| #define HANDLE_SPECIALIZED_MDNODE_LEAF | ( | CLASS | ) |
|---|
Value:
case Metadata::CLASS##Kind: \
break;
decltype(auto) cast(const From &Val)
cast - Return the argument parameter cast to the specified type.
Definition at line 548 of file Verifier.cpp.
◆ INSTRUCTION
| #define INSTRUCTION | ( | NAME, |
|---|---|---|
| NARGS, | ||
| ROUND_MODE, | ||
| INTRINSIC ) |
Value:
case Intrinsic::INTRINSIC:
◆ forEachUser()
◆ getParameterABIAttributes()
| AttrBuilder getParameterABIAttributes ( LLVMContext & C, unsigned I, AttributeList Attrs ) | static |
|---|
◆ getParentPad()
◆ getSubprogram()
◆ getSuccPad()
◆ hasConflictingReferenceFlags()
◆ isConstantIntMetadataOperand()
◆ isContiguous()
◆ isDINode()
◆ isMDTuple()
◆ isNewFormatTBAATypeNode()
◆ IsRootTBAANode()
◆ IsScalarTBAANodeImpl()
◆ isScope()
◆ isType()
◆ isTypeCongruent()
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 4110 of file Verifier.cpp.
References llvm::dyn_cast().
◆ VerifyNoAliasScopeDomination
| 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")) ( "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") ) | static |
|---|