#include "circt/Dialect/Synth/SynthDialect.h"
#include "circt/Dialect/Synth/SynthOpInterfaces.h"
#include "circt/Support/LLVM.h"
#include "mlir/IR/Attributes.h"
#include "mlir/IR/Builders.h"
#include "mlir/IR/BuiltinOps.h"
#include "mlir/IR/BuiltinTypes.h"
#include "mlir/IR/Dialect.h"
#include "mlir/IR/Operation.h"
#include "mlir/Interfaces/InferTypeOpInterface.h"
#include "mlir/Interfaces/SideEffectInterfaces.h"
#include "mlir/Rewrite/PatternApplicator.h"
#include "circt/Dialect/Synth/Synth.h.inc"
#include "llvm/ADT/PriorityQueue.h"
Go to the source code of this file.
|
| namespace | circt |
| | The InstanceGraph op interface, see InstanceGraphInterface.td for more details.
|
| |
| namespace | circt::synth |
| |
|
| void | circt::synth::populateVariadicAndInverterLoweringPatterns (mlir::RewritePatternSet &patterns) |
| |
| void | circt::synth::populateVariadicXorInverterLoweringPatterns (mlir::RewritePatternSet &patterns) |
| |
| bool | circt::synth::isLogicNetworkOp (mlir::Operation *op) |
| |
| LogicalResult | circt::synth::topologicallySortGraphRegionBlocks (mlir::Operation *op, llvm::function_ref< bool(mlir::Value, mlir::Operation *)> isOperandReady) |
| | This function performs a topological sort on the operations within each block of graph regions in the given operation.
|
| |
| template<typename T > |
| T | circt::synth::buildBalancedTreeWithArrivalTimes (llvm::ArrayRef< T > elements, llvm::function_ref< T(T, T)> combine) |
| | Build a balanced binary tree using a priority queue to greedily pair elements with earliest arrival times.
|
| |
| template<typename T > |
| T | circt::synth::evaluateDotLogic (const T &x, const T &y, const T &z) |
| | Evaluate the Boolean function x ^ (z | (x & y)).
|
| |
| template<typename T > |
| T | circt::synth::evaluateMajorityLogic (const T &a, const T &b, const T &c) |
| |
| llvm::APInt | circt::synth::invertBooleanLogic (llvm::APInt value) |
| |
| llvm::KnownBits | circt::synth::invertBooleanLogic (llvm::KnownBits value) |
| |
| template<typename T > |
| T | circt::synth::evaluateOneHotLogic (const T &a, const T &b, const T &c) |
| |
| template<typename T > |
| T | circt::synth::evaluateMuxLogic (const T &a, const T &b, const T &c) |
| |
◆ GET_OP_CLASSES