|
MLIR 23.0.0git
|
#include "mlir/Interfaces/MemorySlotInterfaces.h"#include "llvm/ADT/SmallVector.h"#include "mlir/Interfaces/MemorySlotOpInterfaces.cpp.inc"#include "mlir/Interfaces/MemorySlotTypeInterfaces.cpp.inc"Go to the source code of this file.
Functions | |
| static std::optional< MemorySlot > | getParentSlot (Value aliasPtr, const MemorySlot &rootSlot, const PromotableAliasMap &aliasMap) |
| Returns the slot describing aliasPtr: rootSlot if it is the root, the entry in aliasMap if it's a known alias, or nullopt otherwise. | |
| static std::optional< SmallVector< ChainStep > > | buildAliasChain (const MemorySlot &aliasSlot, const MemorySlot &rootSlot, const PromotableAliasMap &aliasMap) |
| Walks from aliasSlot back to rootSlot via aliasMap. | |
|
static |
Walks from aliasSlot back to rootSlot via aliasMap.
Returns the leaf-to-root chain, or nullopt if aliasSlot is not a known alias.
Definition at line 85 of file MemorySlotInterfaces.cpp.
References mlir::IROperand< DerivedT, IRValueT >::get(), mlir::detail::IROperandBase::getOwner(), getParentSlot(), and mlir::MemorySlot::ptr.
Referenced by mlir::convertAliasValueToSlotValue(), and mlir::convertSlotValueToAliasValue().
|
static |
Returns the slot describing aliasPtr: rootSlot if it is the root, the entry in aliasMap if it's a known alias, or nullopt otherwise.
Definition at line 21 of file MemorySlotInterfaces.cpp.
References mlir::MemorySlot::ptr.
Referenced by buildAliasChain(), mlir::getOpAliasSlot(), mlir::populatePromotableAliasMap(), and mlir::referencesAtMostOneAliasOfSlot().