11#include "mlir/IR/Operation.h"
12#include "mlir/Interfaces/FunctionInterfaces.h"
13#include "mlir/Interfaces/SideEffectInterfaces.h"
32bool mayAlias(MemoryEffects::EffectInstance &A,
33 MemoryEffects::EffectInstance &B);
36bool mayAlias(mlir::MemoryEffects::EffectInstance a, mlir::Value v2);
45 SmallVector<MemoryEffects::EffectInstance> &effects);
48SmallVector<MemoryEffects::EffectInstance>
52 MemoryEffects::Effect *effect,
53 SideEffects::Resource *resource);
bool mayAlias(Value v1, Value v2)
const std::set< std::string > & getNonCapturingFunctions()
bool collectOpEffects(Operation *rootOp, SmallVector< MemoryEffects::EffectInstance > &effects)
Returns the side effects of an operation(similar to mlir::getEffectsRecursively).
SmallVector< MemoryEffects::EffectInstance > collectFnEffects(FunctionOpInterface fnOp)
MemoryEffects::EffectInstance getEffectOfVal(Value val, MemoryEffects::Effect *effect, SideEffects::Resource *resource)
bool isReadNone(Operation *op)
bool isReadOnly(Operation *op)