My Project
Classes | Namespaces | Functions
Utils.h File Reference
#include "mlir/Analysis/AffineStructures.h"
#include "mlir/IR/AffineMap.h"
#include "mlir/IR/Block.h"
#include "mlir/IR/Location.h"
#include "mlir/Support/LLVM.h"
#include "llvm/ADT/SmallVector.h"
#include <memory>
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.

Classes

struct  mlir::ComputationSliceState
 
struct  mlir::MemRefRegion
 

Namespaces

 mlir
 

Functions

void mlir::getLoopIVs (Operation &op, SmallVectorImpl< AffineForOp > *loops)
 
unsigned mlir::getNestingDepth (Operation &op)
 
void mlir::getSequentialLoops (AffineForOp forOp, llvm::SmallDenseSet< Value, 8 > *sequentialLoops)
 
void mlir::getComputationSliceState (Operation *depSourceOp, Operation *depSinkOp, FlatAffineConstraints *dependenceConstraints, unsigned loopDepth, bool isBackwardSlice, ComputationSliceState *sliceState)
 
LogicalResult mlir::computeSliceUnion (ArrayRef< Operation *> opsA, ArrayRef< Operation *> opsB, unsigned loopDepth, unsigned numCommonLoops, bool isBackwardSlice, ComputationSliceState *sliceUnion)
 
AffineForOp mlir::insertBackwardComputationSlice (Operation *srcOpInst, Operation *dstOpInst, unsigned dstLoopDepth, ComputationSliceState *sliceState)
 
Optional< uint64_t > mlir::getMemRefSizeInBytes (MemRefType memRefType)
 
template<typename LoadOrStoreOpPointer >
LogicalResult mlir::boundCheckLoadOrStoreOp (LoadOrStoreOpPointer loadOrStoreOp, bool emitError=true)
 
unsigned mlir::getNumCommonSurroundingLoops (Operation &A, Operation &B)
 Returns the number of surrounding loops common to both A and B. More...
 
Optional< int64_t > mlir::getMemoryFootprintBytes (AffineForOp forOp, int memorySpace=-1)
 
bool mlir::isLoopParallel (AffineForOp forOp)
 Returns true if `forOp' is a parallel loop. More...