CIRCT 24.0.0git
Loading...
Searching...
No Matches
Utils.h File Reference
#include "circt/Support/LLVM.h"
#include "mlir/IR/Operation.h"
#include "mlir/IR/Value.h"
#include "llvm/Support/Parallel.h"
Include dependency graph for Utils.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

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

Functions

bool circt::isAncestorOfValueOwner (Operation *op, Value value)
 Return true if a Value is created "underneath" an operation.
template<typename T>
static SmallVector< T > circt::removeElementsAtIndices (ArrayRef< T > input, const llvm::BitVector &indicesToDrop)
 Remove elements from the input array corresponding to set bits in indicesToDrop, returning the elements not mentioned.
template<class IterTy, class ResultTy, class ReduceFuncTy, class TransformFuncTy>
static ResultTy circt::transformReduce (MLIRContext *context, IterTy begin, IterTy end, ResultTy init, ReduceFuncTy reduce, TransformFuncTy transform)
 Wrapper for llvm::parallelTransformReduce that performs the transform_reduce serially when MLIR multi-threading is disabled.
template<class RangeTy, class ResultTy, class ReduceFuncTy, class TransformFuncTy>
static ResultTy circt::transformReduce (MLIRContext *context, RangeTy &&r, ResultTy init, ReduceFuncTy reduce, TransformFuncTy transform)
 Range wrapper.