MLIR
20.0.0git
|
#include "mlir/Transforms/RegionUtils.h"
#include "mlir/Analysis/TopologicalSortUtils.h"
#include "mlir/IR/Block.h"
#include "mlir/IR/IRMapping.h"
#include "mlir/IR/Operation.h"
#include "mlir/IR/PatternMatch.h"
#include "mlir/IR/RegionGraphTraits.h"
#include "mlir/IR/Value.h"
#include "mlir/Interfaces/ControlFlowInterfaces.h"
#include "mlir/Interfaces/SideEffectInterfaces.h"
#include "llvm/ADT/DepthFirstIterator.h"
#include "llvm/ADT/PostOrderIterator.h"
#include <deque>
Go to the source code of this file.
Functions | |
static bool | isUseSpeciallyKnownDead (OpOperand &use, LiveMap &liveMap) |
static void | processValue (Value value, LiveMap &liveMap) |
static void | propagateLiveness (Region ®ion, LiveMap &liveMap) |
static void | propagateTerminatorLiveness (Operation *op, LiveMap &liveMap) |
static void | propagateLiveness (Operation *op, LiveMap &liveMap) |
static void | eraseTerminatorSuccessorOperands (Operation *terminator, LiveMap &liveMap) |
static LogicalResult | deleteDeadness (RewriterBase &rewriter, MutableArrayRef< Region > regions, LiveMap &liveMap) |
static bool | ableToUpdatePredOperands (Block *block) |
Returns true if the predecessor terminators of the given block can not have their operands updated. More... | |
static LogicalResult | mergeIdenticalBlocks (RewriterBase &rewriter, Region ®ion) |
Identify identical blocks within the given region and merge them, inserting new block arguments as necessary. More... | |
static LogicalResult | mergeIdenticalBlocks (RewriterBase &rewriter, MutableArrayRef< Region > regions) |
Identify identical blocks within the given regions and merge them, inserting new block arguments as necessary. More... | |
|
static |
Returns true if the predecessor terminators of the given block can not have their operands updated.
Definition at line 669 of file RegionUtils.cpp.
References mlir::Block::pred_begin(), and mlir::Block::pred_end().
|
static |
Definition at line 408 of file RegionUtils.cpp.
References mlir::Region::empty(), mlir::RewriterBase::eraseOp(), eraseTerminatorSuccessorOperands(), mlir::Region::front(), and mlir::Region::getBlocks().
Referenced by mlir::runRegionDCE().
|
static |
Definition at line 382 of file RegionUtils.cpp.
References mlir::SuccessorOperands::erase(), mlir::Block::getArgument(), mlir::Operation::getNumSuccessors(), mlir::Operation::getSuccessor(), and mlir::SuccessorOperands::size().
Referenced by deleteDeadness().
|
static |
Definition at line 277 of file RegionUtils.cpp.
References mlir::OpOperand::getOperandNumber(), mlir::detail::IROperandBase::getOwner(), and mlir::Operation::hasTrait().
|
static |
Identify identical blocks within the given regions and merge them, inserting new block arguments as necessary.
Definition at line 798 of file RegionUtils.cpp.
References mergeIdenticalBlocks().
|
static |
Identify identical blocks within the given region and merge them, inserting new block arguments as necessary.
Returns success if any blocks were merged, failure otherwise.
Definition at line 751 of file RegionUtils.cpp.
References mlir::Region::empty(), and mlir::Block::getSuccessors().
Referenced by mergeIdenticalBlocks(), and mlir::simplifyRegions().
|
static |
Definition at line 300 of file RegionUtils.cpp.
References mlir::Value::getUses().
|
static |
Definition at line 336 of file RegionUtils.cpp.
|
static |
Definition at line 358 of file RegionUtils.cpp.
References mlir::Region::empty(), and mlir::Region::front().
Referenced by mlir::runRegionDCE().
|
static |
Definition at line 312 of file RegionUtils.cpp.