class TBAAVerifier

Declaration

class TBAAVerifier { /* full declaration omitted */ };

Description

Verify that the TBAA Metadatas are valid.

Declared at: llvm/include/llvm/IR/Verifier.h:39

Member Variables

private llvm::VerifierSupport* Diagnostic = nullptr
private DenseMap<const llvm::MDNode*, llvm::TBAAVerifier::TBAABaseNodeSummary> TBAABaseNodes
private DenseMap<const llvm::MDNode*, bool> TBAAScalarNodes
Maps an alleged scalar TBAA node to a boolean that is true if the said TBAA node is a valid scalar TBAA node or false otherwise.

Method Overview

  • private template <typename... Tys>void CheckFailed(Tys &&... Args)
  • public TBAAVerifier(llvm::VerifierSupport * Diagnostic = nullptr)
  • private llvm::MDNode * getFieldNodeFromTBAABaseNode(llvm::Instruction & I, const llvm::MDNode * BaseNode, llvm::APInt & Offset, bool IsNewFormat)
  • private bool isValidScalarTBAANode(const llvm::MDNode * MD)
  • private TBAAVerifier::TBAABaseNodeSummary verifyTBAABaseNode(llvm::Instruction & I, const llvm::MDNode * BaseNode, bool IsNewFormat)
  • private llvm::TBAAVerifier::TBAABaseNodeSummary verifyTBAABaseNodeImpl(llvm::Instruction & I, const llvm::MDNode * BaseNode, bool IsNewFormat)
  • public bool visitTBAAMetadata(llvm::Instruction & I, const llvm::MDNode * MD)

Methods

template <typename... Tys>
void CheckFailed(Tys&&... Args)

Description

Helper to diagnose a failure

Declared at: llvm/include/llvm/IR/Verifier.h:43

Templates

Tys

Parameters

Tys&&... Args

TBAAVerifier(
    llvm::VerifierSupport* Diagnostic = nullptr)

Description

@ }

Declared at: llvm/include/llvm/IR/Verifier.h:75

Parameters

llvm::VerifierSupport* Diagnostic = nullptr

llvm::MDNode* getFieldNodeFromTBAABaseNode(
    llvm::Instruction& I,
    const llvm::MDNode* BaseNode,
    llvm::APInt& Offset,
    bool IsNewFormat)

Description

@ {

Declared at: llvm/include/llvm/IR/Verifier.h:62

Parameters

llvm::Instruction& I
const llvm::MDNode* BaseNode
llvm::APInt& Offset
bool IsNewFormat

bool isValidScalarTBAANode(const llvm::MDNode* MD)

Declared at: llvm/include/llvm/IR/Verifier.h:71

Parameters

const llvm::MDNode* MD

TBAAVerifier::TBAABaseNodeSummary
verifyTBAABaseNode(llvm::Instruction& I,
                   const llvm::MDNode* BaseNode,
                   bool IsNewFormat)

Declared at: llvm/include/llvm/IR/Verifier.h:64

Parameters

llvm::Instruction& I
const llvm::MDNode* BaseNode
bool IsNewFormat

llvm::TBAAVerifier::TBAABaseNodeSummary
verifyTBAABaseNodeImpl(
    llvm::Instruction& I,
    const llvm::MDNode* BaseNode,
    bool IsNewFormat)

Declared at: llvm/include/llvm/IR/Verifier.h:67

Parameters

llvm::Instruction& I
const llvm::MDNode* BaseNode
bool IsNewFormat

bool visitTBAAMetadata(llvm::Instruction& I,
                       const llvm::MDNode* MD)

Description

Visit an instruction and return true if it is valid, return false if an invalid TBAA is attached.

Declared at: llvm/include/llvm/IR/Verifier.h:79

Parameters

llvm::Instruction& I
const llvm::MDNode* MD