MLIR
15.0.0git
|
#include "PassDetail.h"
#include "mlir/Analysis/Liveness.h"
#include "mlir/Dialect/Async/IR/Async.h"
#include "mlir/Dialect/Async/Passes.h"
#include "mlir/Dialect/ControlFlow/IR/ControlFlowOps.h"
#include "mlir/Dialect/Func/IR/FuncOps.h"
#include "mlir/IR/ImplicitLocOpBuilder.h"
#include "mlir/IR/PatternMatch.h"
#include "mlir/Transforms/GreedyPatternRewriteDriver.h"
#include "llvm/ADT/SmallSet.h"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "async-runtime-ref-counting" |
Functions | |
static LogicalResult | dropRefIfNoUses (Value value, unsigned count=1) |
static LogicalResult | walkReferenceCountedValues (Operation *op, llvm::function_ref< LogicalResult(Value)> addRefCounting) |
#define DEBUG_TYPE "async-runtime-ref-counting" |
Definition at line 28 of file AsyncRuntimeRefCounting.cpp.
|
static |
Definition at line 35 of file AsyncRuntimeRefCounting.cpp.
References mlir::failure(), mlir::Value::getContext(), mlir::Value::getDefiningOp(), mlir::Value::getLoc(), mlir::Value::getParentBlock(), mlir::Value::getUses(), mlir::OpBuilder::setInsertionPointAfter(), mlir::success(), and value.
Referenced by walkReferenceCountedValues().
|
static |
Definition at line 54 of file AsyncRuntimeRefCounting.cpp.
References mlir::WalkResult::advance(), mlir::OpBuilder::atBlockBegin(), mlir::OpBuilder::atBlockEnd(), mlir::OpBuilder::create(), dropRefIfNoUses(), mlir::Operation::emitError(), mlir::Operation::emitOpError(), mlir::Region::emplaceBlock(), mlir::detail::enumerate(), mlir::failed(), mlir::failure(), mlir::Block::findAncestorOpInBlock(), mlir::IROperand< DerivedT, IRValueT >::get(), mlir::Block::getArguments(), mlir::LivenessBlockInfo::getBlock(), mlir::Value::getContext(), mlir::LivenessBlockInfo::getEndOperation(), mlir::Value::getLoc(), mlir::Operation::getNumResults(), mlir::detail::IROperandBase::getOwner(), mlir::Block::getParent(), mlir::Value::getParentBlock(), mlir::Value::getParentRegion(), mlir::Operation::getResult(), mlir::Operation::getResultTypes(), mlir::Block::getSuccessors(), mlir::Operation::getSuccessors(), mlir::Block::getTerminator(), mlir::Value::getType(), mlir::Value::getUsers(), mlir::Value::getUses(), mlir::WalkResult::interrupt(), mlir::Type::isa(), mlir::LivenessBlockInfo::isLiveIn(), mlir::LivenessBlockInfo::isLiveOut(), mlir::async::isRefCounted(), mlir::Block::moveBefore(), mlir::Operation::setSuccessor(), mlir::succeeded(), mlir::success(), value, mlir::Operation::walk(), and mlir::WalkResult::wasInterrupted().