| CIRCT 22.0.0git
    | 
#include "circt/Transforms/Passes.h"#include "mlir/Analysis/CFGLoopInfo.h"#include "mlir/Conversion/LLVMCommon/ConversionTarget.h"#include "mlir/Conversion/LLVMCommon/Pattern.h"#include "mlir/Dialect/ControlFlow/IR/ControlFlow.h"#include "mlir/Dialect/ControlFlow/IR/ControlFlowOps.h"#include "mlir/Dialect/Func/IR/FuncOps.h"#include "mlir/IR/Dominance.h"#include "mlir/Pass/Pass.h"#include "mlir/Transforms/DialectConversion.h"#include "llvm/ADT/TypeSwitch.h"#include "circt/Transforms/Passes.h.inc"
Go to the source code of this file.
| Namespaces | |
| namespace | circt | 
| The InstanceGraph op interface, see InstanceGraphInterface.td for more details. | |
| Macros | |
| #define | GEN_PASS_DEF_INSERTMERGEBLOCKS | 
| Functions | |
| static LogicalResult | changeBranchTarget (Block *block, Block *oldDest, Block *newDest, ConversionPatternRewriter &rewriter) | 
| Replaces the branching to oldDest of with an equivalent operation that instead branches to newDest. | |
| static FailureOr< Block * > | buildMergeBlock (Block *b1, Block *b2, Block *oldSucc, ConversionPatternRewriter &rewriter) | 
| Creates a new intermediate block that b1 and b2 branch to. | |
| static LogicalResult | buildMergeBlocks (Block *currBlock, SplitInfo &splitInfo, Block *predDom, ConversionPatternRewriter &rewriter, DualGraph &graph) | 
| Builds a binary merge block tree for the predecessors of currBlock. | |
| static LogicalResult | preconditionCheck (Region &r, CFGLoopInfo &loopInfo) | 
| Checks preconditions of this transformation. | |
| std::unique_ptr< mlir::Pass > | circt::createInsertMergeBlocksPass () | 
| #define GEN_PASS_DEF_INSERTMERGEBLOCKS | 
Definition at line 22 of file InsertMergeBlocks.cpp.
| 
 | static | 
Creates a new intermediate block that b1 and b2 branch to.
The new block branches to their common successor oldSucc.
Definition at line 67 of file InsertMergeBlocks.cpp.
References changeBranchTarget().
Referenced by buildMergeBlocks().
| 
 | static | 
Builds a binary merge block tree for the predecessors of currBlock.
Definition at line 179 of file InsertMergeBlocks.cpp.
References buildMergeBlock(), and mergeBlock().
| 
 | static | 
Replaces the branching to oldDest of with an equivalent operation that instead branches to newDest.
Definition at line 31 of file InsertMergeBlocks.cpp.
Referenced by buildMergeBlock().
| 
 | static | 
Checks preconditions of this transformation.
Definition at line 228 of file InsertMergeBlocks.cpp.