CIRCT 22.0.0git
Loading...
Searching...
No Matches
Namespaces | Macros | Functions
LowerVariadic.cpp File Reference
#include "circt/Dialect/Comb/CombDialect.h"
#include "circt/Dialect/Comb/CombOps.h"
#include "circt/Dialect/HW/HWDialect.h"
#include "circt/Dialect/HW/HWOps.h"
#include "circt/Dialect/Synth/Analysis/LongestPathAnalysis.h"
#include "circt/Dialect/Synth/SynthOps.h"
#include "circt/Dialect/Synth/Transforms/SynthPasses.h"
#include "mlir/Analysis/TopologicalSortUtils.h"
#include "mlir/IR/OpDefinition.h"
#include "llvm/ADT/PointerIntPair.h"
#include "llvm/ADT/PriorityQueue.h"
#include "circt/Dialect/Synth/Transforms/SynthPasses.h.inc"
Include dependency graph for LowerVariadic.cpp:

Go to the source code of this file.

Namespaces

namespace  circt
 The InstanceGraph op interface, see InstanceGraphInterface.td for more details.
 
namespace  circt::synth
 

Macros

#define DEBUG_TYPE   "synth-lower-variadic"
 
#define GEN_PASS_DEF_LOWERVARIADIC
 

Functions

static LogicalResult replaceWithBalancedTree (IncrementalLongestPathAnalysis *analysis, mlir::IRRewriter &rewriter, Operation *op, llvm::function_ref< bool(OpOperand &)> isInverted, llvm::function_ref< Value(ValueWithArrivalTime, ValueWithArrivalTime)> createBinaryOp)
 Construct a balanced binary tree from a variadic operation using a delay-aware algorithm.
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "synth-lower-variadic"

Definition at line 26 of file LowerVariadic.cpp.

◆ GEN_PASS_DEF_LOWERVARIADIC

#define GEN_PASS_DEF_LOWERVARIADIC

Definition at line 30 of file LowerVariadic.cpp.

Function Documentation

◆ replaceWithBalancedTree()

static LogicalResult replaceWithBalancedTree ( IncrementalLongestPathAnalysis *  analysis,
mlir::IRRewriter &  rewriter,
Operation *  op,
llvm::function_ref< bool(OpOperand &)>  isInverted,
llvm::function_ref< Value(ValueWithArrivalTime, ValueWithArrivalTime)>  createBinaryOp 
)
static

Construct a balanced binary tree from a variadic operation using a delay-aware algorithm.

This function builds the tree by repeatedly combining the two values with the earliest arrival times, which minimizes the critical path delay.

Definition at line 89 of file LowerVariadic.cpp.