MLIR  16.0.0git
Verifier.cpp File Reference
#include "mlir/IR/Verifier.h"
#include "mlir/IR/Attributes.h"
#include "mlir/IR/Dialect.h"
#include "mlir/IR/Dominance.h"
#include "mlir/IR/Operation.h"
#include "mlir/IR/RegionKindInterface.h"
#include "mlir/IR/Threading.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/Support/FormatVariadic.h"
#include "llvm/Support/PrettyStackTrace.h"
#include "llvm/Support/Regex.h"
#include <atomic>
+ Include dependency graph for Verifier.cpp:

Go to the source code of this file.


static bool mayBeValidWithoutTerminator (Block *block)
 Returns true if this block may be valid without terminator. More...
static void diagnoseInvalidOperandDominance (Operation &op, unsigned operandNo)
 Emit an error when the specified operand of the specified operation is an invalid use because of dominance properties. More...

Function Documentation

◆ diagnoseInvalidOperandDominance()

static void diagnoseInvalidOperandDominance ( Operation op,
unsigned  operandNo 

◆ mayBeValidWithoutTerminator()

static bool mayBeValidWithoutTerminator ( Block block)

Returns true if this block may be valid without terminator.

That is if:

  • it does not have a parent region.
  • Or the parent region have a single block and:
    • This region does not have a parent op.
    • Or the parent op is unregistered.
    • Or the parent op has the NoTerminator trait.

Definition at line 99 of file Verifier.cpp.

References mlir::emitError(), mlir::Operation::emitError(), mlir::Block::empty(), mlir::failed(), mlir::failure(), mlir::Block::getArguments(), mlir::Operation::getAttrs(), mlir::Region::getLoc(), mlir::Operation::getName(), mlir::Operation::getNumRegions(), mlir::Operation::getNumSuccessors(), mlir::Operation::getOperands(), mlir::Block::getParent(), mlir::Block::getParentOp(), mlir::Operation::getRegions(), mlir::OperationName::getRegisteredInfo(), mlir::Block::getSuccessors(), mlir::Operation::hasTrait(), mlir::Operation::mightHaveTrait(), and mlir::success().