9#ifndef CIRCT_DIALECT_DATAPATH_DATAPATHOPS_H
10#define CIRCT_DIALECT_DATAPATH_DATAPATHOPS_H
12#include "mlir/IR/OpImplementation.h"
18#include "circt/Dialect/Datapath/Datapath.h.inc"
48 withInputDelays(llvm::function_ref<FailureOr<int64_t>(Value)> getDelay);
51 SmallVector<Value>
compressToHeight(OpBuilder &builder,
size_t targetHeight);
58 SmallVector<SmallVector<CompressorBit>>
columns;
72 SmallVector<Value>
columnsToAddends(OpBuilder &builder,
size_t targetHeight);
84 std::pair<CompressorBit, CompressorBit>
size_t getNextStageTargetHeight() const
SmallVector< SmallVector< CompressorBit > > columns
SmallVector< Value > compressToHeight(OpBuilder &builder, size_t targetHeight)
SmallVector< Value > columnsToAddends(OpBuilder &builder, size_t targetHeight)
LogicalResult withInputDelays(llvm::function_ref< FailureOr< int64_t >(Value)> getDelay)
std::pair< CompressorBit, CompressorBit > halfAdderWithDelay(OpBuilder &builder, CompressorBit a, CompressorBit b)
std::pair< CompressorBit, CompressorBit > fullAdderWithDelay(OpBuilder &builder, CompressorBit a, CompressorBit b, CompressorBit c)
SmallVector< Value > compressUsingTiming(OpBuilder &builder, size_t targetHeight)
size_t getMaxHeight() const
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.