#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.
|
| namespace | mlir |
| | Include the generated interface declarations.
|
|
| 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< MemorySlot > | mlir::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.
|