MLIR 23.0.0git
MemorySlotInterfaces.h File Reference
#include "mlir/IR/Dominance.h"
#include "mlir/IR/OpDefinition.h"
#include "mlir/IR/PatternMatch.h"
#include "llvm/ADT/DenseMap.h"
#include "mlir/Interfaces/MemorySlotOpInterfaces.h.inc"
#include "mlir/Interfaces/MemorySlotTypeInterfaces.h.inc"

Go to the source code of this file.

Classes

struct  mlir::MemorySlot
 Represents a slot in memory. More...
struct  mlir::DestructurableMemorySlot
 Memory slot attached with information about its destructuring procedure. More...
struct  mlir::PromotableSlotAliasInfo
 An entry in a PromotableAliasMap: the memory slot defined by an aliaser operation and its source operand. More...

Namespaces

namespace  mlir
 Include the generated interface declarations.

Typedefs

using mlir::PromotableAliasMap
 Maps an alias slot pointer (a result of a PromotableAliaserInterface op) reachable from a root slot to its PromotableSlotAliasInfo.

Enumerations

enum class  mlir::DeletionKind { mlir::Keep , mlir::Delete }
 Returned by operation promotion logic requesting the deletion of an operation. More...

Functions

void mlir::populatePromotableAliasMap (PromotableAliaserInterface aliaser, const MemorySlot &rootSlot, PromotableAliasMap &aliasMap)
 Populates aliasMap with alias entries produced by aliaser for operands that already alias rootSlot.
std::optional< MemorySlotmlir::getOpAliasSlot (Operation *op, const MemorySlot &rootSlot, const PromotableAliasMap &aliasMap)
 Returns a MemorySlot for the operand of op that aliases rootSlot.ptr (either the root itself or a known entry in aliasMap), providing the alias's element type.
bool mlir::referencesAtMostOneAliasOfSlot (Operation *op, const MemorySlot &rootSlot, const PromotableAliasMap &aliasMap)
 Returns true if op's operands reach rootSlot through at most one distinct alias pointer (the root itself or a single aliasMap entry).
Value mlir::convertSlotValueToAliasValue (Value slotValue, const MemorySlot &aliasSlot, const MemorySlot &rootSlot, const PromotableAliasMap &aliasMap, OpBuilder &builder)
 Walks the alias chain from rootSlot down to aliasSlot.
Value mlir::convertAliasValueToSlotValue (Value aliasValue, const MemorySlot &aliasSlot, Value rootReachingDef, const MemorySlot &rootSlot, const PromotableAliasMap &aliasMap, OpBuilder &builder)
 Walks the alias chain from aliasSlot back up to rootSlot.