Enzyme main
Loading...
Searching...
No Matches
RemovalUtils.h File Reference
#include "Dialect/Ops.h"
#include "Interfaces/AutoDiffOpInterface.h"
#include "Interfaces/AutoDiffTypeInterface.h"
#include "mlir/Dialect/Arith/IR/Arith.h"
#include "mlir/Dialect/MemRef/IR/MemRef.h"
#include "mlir/Dialect/Tensor/IR/Tensor.h"
#include "mlir/IR/Builders.h"
#include "mlir/IR/IRMapping.h"
#include "mlir/Interfaces/LoopLikeInterface.h"
#include "mlir/Transforms/LoopInvariantCodeMotionUtils.h"
#include "mlir/Interfaces/FunctionInterfaces.h"
#include "mlir/IR/Matchers.h"
Include dependency graph for RemovalUtils.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  mlir::enzyme::CacheInfo
 Information about a cache, each cache init should have one corresponding push and pop. More...
 
struct  mlir::enzyme::ForLikeEnzymeOpsRemover< FinalClass, OpName >
 
struct  mlir::enzyme::ForLikeEnzymeOpsRemover< FinalClass, OpName >::IntOrValue
 
struct  mlir::enzyme::IfLikeEnzymeOpsRemover< FinalClass, OpName >
 

Namespaces

namespace  mlir
 
namespace  mlir::enzyme
 

Enumerations

enum class  mlir::enzyme::LoopCacheType { mlir::enzyme::TENSOR , mlir::enzyme::MEMREF }
 

Functions

void mlir::enzyme::minCutCache (Block *forward, Block *reverse, SmallVector< CacheInfo > &caches, PatternRewriter &rewriter, const IRMapping &fwdrevmap, Operation *lastFwd=nullptr)
 
static LoopCacheType mlir::enzyme::getCacheType (Operation *op)
 
static bool mlir::enzyme::hasMinCut (Operation *op)
 
static bool mlir::enzyme::hasLICM (Operation *op)
 
void mlir::enzyme::localizeGradients (OpBuilder &builder, MGradientUtilsReverse *gutils, Block *fwd)
 
void mlir::enzyme::removalBlockExplore (Block *block, IRMapping &mapping, PatternRewriter &rewriter, llvm::SetVector< Value > &gradients, llvm::MapVector< Value, CacheInfo > &caches)
 

Variables

static constexpr llvm::StringLiteral mlir::enzyme::kPreserveCacheAttrName = "preserve_cache"