Enzyme main
Loading...
Searching...
No Matches
Utils.cpp File Reference
#include "Interfaces/Utils.h"
#include "Dialect/Ops.h"
#include "Interfaces/AutoDiffTypeInterface.h"
#include "mlir/Analysis/AliasAnalysis.h"
#include "mlir/Dialect/Affine/IR/AffineOps.h"
#include "mlir/Dialect/Func/IR/FuncOps.h"
#include "mlir/Dialect/LLVMIR/LLVMDialect.h"
#include "mlir/Dialect/MemRef/IR/MemRef.h"
#include "mlir/Interfaces/FunctionInterfaces.h"
#include <optional>
Include dependency graph for Utils.cpp:

Go to the source code of this file.

Namespaces

namespace  mlir
 
namespace  mlir::enzyme
 
namespace  mlir::enzyme::oputils
 

Functions

const std::set< std::string > & mlir::enzyme::oputils::getNonCapturingFunctions ()
 
static bool mlir::enzyme::oputils::isCaptured (Value v, Operation *potentialUser=nullptr, bool *seenuse=nullptr)
 
static Value mlir::enzyme::oputils::getBase (Value v)
 
static bool mlir::enzyme::oputils::isStackAlloca (Value v)
 
bool mlir::enzyme::oputils::mayAlias (Value v1, Value v2)
 
bool mlir::enzyme::oputils::mayAlias (MemoryEffects::EffectInstance a, Value v2)
 
bool mlir::enzyme::oputils::mayAlias (MemoryEffects::EffectInstance &a, MemoryEffects::EffectInstance &b)
 
bool mlir::enzyme::oputils::isReadOnly (Operation *op)
 
bool mlir::enzyme::oputils::isReadNone (Operation *op)
 
bool mlir::enzyme::oputils::collectOpEffects (Operation *rootOp, SmallVector< MemoryEffects::EffectInstance > &effects)
 Returns the side effects of an operation(similar to mlir::getEffectsRecursively).
 
SmallVector< MemoryEffects::EffectInstance > mlir::enzyme::oputils::collectFnEffects (FunctionOpInterface fnOp)
 
MemoryEffects::EffectInstance mlir::enzyme::oputils::getEffectOfVal (Value val, MemoryEffects::Effect *effect, SideEffects::Resource *resource)