LLVM 20.0.0git
|
#include "llvm/Analysis/MemoryLocation.h"
Public Member Functions | |
constexpr | LocationSize (uint64_t Raw) |
LocationSize | unionWith (LocationSize Other) const |
bool | hasValue () const |
bool | isScalable () const |
TypeSize | getValue () const |
bool | isPrecise () const |
bool | isZero () const |
bool | mayBeBeforePointer () const |
Whether accesses before the base pointer are possible. | |
bool | operator== (const LocationSize &Other) const |
bool | operator== (const TypeSize &Other) const |
bool | operator!= (const LocationSize &Other) const |
bool | operator!= (const TypeSize &Other) const |
void | print (raw_ostream &OS) const |
uint64_t | toRaw () const |
Static Public Member Functions | |
static LocationSize | precise (uint64_t Value) |
static LocationSize | precise (TypeSize Value) |
static LocationSize | upperBound (uint64_t Value) |
static LocationSize | upperBound (TypeSize Value) |
static constexpr LocationSize | afterPointer () |
Any location after the base pointer (but still within the underlying object). | |
static constexpr LocationSize | beforeOrAfterPointer () |
Any location before or after the base pointer (but still within the underlying object). | |
static constexpr LocationSize | mapTombstone () |
static constexpr LocationSize | mapEmpty () |
Definition at line 68 of file MemoryLocation.h.
|
inlineconstexpr |
Definition at line 105 of file MemoryLocation.h.
|
inlinestaticconstexpr |
Any location after the base pointer (but still within the underlying object).
Definition at line 131 of file MemoryLocation.h.
Referenced by llvm::MemoryLocation::get(), llvm::MemoryLocation::getAfter(), llvm::MemoryLocation::getForArgument(), mayLoopAccessLocation(), llvm::AliasSet::print(), print(), unionWith(), and upperBound().
|
inlinestaticconstexpr |
Any location before or after the base pointer (but still within the underlying object).
Definition at line 137 of file MemoryLocation.h.
Referenced by llvm::SCEVAAResult::alias(), llvm::MemoryLocation::getBeforeOrAfter(), llvm::MachineMemOperand::getSize(), llvm::MachineMemOperand::getSizeInBits(), getSpillSlotSize(), getStackAlignedMMO(), llvm::GISelAddressing::instMayAlias(), llvm::RISCVInstrInfo::loadRegFromStackSlot(), llvm::AliasSet::print(), print(), llvm::RISCVInstrInfo::storeRegToStackSlot(), and unionWith().
|
inline |
Definition at line 170 of file MemoryLocation.h.
References assert(), hasValue(), and isScalable().
Referenced by llvm::SCEVAAResult::alias(), llvm::GISelAddressing::aliasIsKnownForLoadStore(), llvm::HexagonSubtarget::BankConflictMutation::apply(), llvm::AMDGPURegisterBankInfo::applyMappingLoad(), llvm::LanaiInstrInfo::areMemAccessesTriviallyDisjoint(), llvm::PPCInstrInfo::areMemAccessesTriviallyDisjoint(), llvm::RISCVInstrInfo::areMemAccessesTriviallyDisjoint(), llvm::SystemZInstrInfo::areMemAccessesTriviallyDisjoint(), canSkipClobberingStore(), llvm::BaseIndexOffset::computeAliasing(), llvm::GISelKnownBits::computeNumSignBits(), llvm::TargetInstrInfo::describeLoadedValue(), llvm::ARMBankConflictHazardRecognizer::EmitInstruction(), llvm::PPCHazardRecognizer970::EmitInstruction(), llvm::GIMatchTableExecutor::executeMatchTable(), llvm::PPCTargetLowering::expandVSXLoadForLE(), llvm::PPCTargetLowering::expandVSXStoreForLE(), LiveDebugValues::InstrRefBasedLDV::findLocationForMemOperand(), llvm::PPCHazardRecognizer970::getHazardType(), llvm::SIInstrInfo::getMemOperandsWithOffsetWidth(), getMinimalExtentFrom(), getSpillSlotSize(), llvm::GISelAddressing::instMayAlias(), llvm::SwingSchedulerDAG::isLoopCarriedDep(), isPartialOverwrite(), llvm::AMDGPURegisterBankInfo::isScalarLoadLegal(), isZero(), llvm::AMDGPULegalizerInfo::legalizeBufferStore(), llvm::CombinerHelper::matchCombineLoadWithAndMask(), MemOperandsHaveAlias(), llvm::MemSDNode::MemSDNode(), llvm::LegalizerHelper::narrowScalar(), offsetsDoNotOverlap(), operator==(), print(), llvm::LegalizerHelper::reduceLoadStoreWidth(), llvm::PPCInstrInfo::shouldClusterMemOps(), and unionWith().
|
inline |
Definition at line 165 of file MemoryLocation.h.
Referenced by llvm::SCEVAAResult::alias(), llvm::GISelAddressing::aliasIsKnownForLoadStore(), llvm::HexagonSubtarget::BankConflictMutation::apply(), llvm::LanaiInstrInfo::areMemAccessesTriviallyDisjoint(), llvm::PPCInstrInfo::areMemAccessesTriviallyDisjoint(), llvm::RISCVInstrInfo::areMemAccessesTriviallyDisjoint(), llvm::SystemZInstrInfo::areMemAccessesTriviallyDisjoint(), canSkipClobberingStore(), llvm::BaseIndexOffset::computeAliasing(), llvm::TargetInstrInfo::describeLoadedValue(), llvm::ARMBankConflictHazardRecognizer::EmitInstruction(), llvm::PPCTargetLowering::expandVSXLoadForLE(), llvm::PPCTargetLowering::expandVSXStoreForLE(), LiveDebugValues::InstrRefBasedLDV::findLocationForMemOperand(), llvm::PPCHazardRecognizer970::getHazardType(), getSpillSlotSize(), getValue(), llvm::GISelAddressing::instMayAlias(), llvm::SwingSchedulerDAG::isLoopCarriedDep(), isZero(), MemOperandsHaveAlias(), offsetsDoNotOverlap(), operator==(), and llvm::MachineMemOperand::refineAlignment().
|
inline |
Definition at line 179 of file MemoryLocation.h.
Referenced by getMinimalExtentFrom(), and print().
|
inline |
Definition at line 168 of file MemoryLocation.h.
Referenced by llvm::GISelAddressing::aliasIsKnownForLoadStore(), canSkipClobberingStore(), llvm::BaseIndexOffset::computeAliasing(), getValue(), llvm::GISelAddressing::instMayAlias(), MemOperandsHaveAlias(), and unionWith().
|
inline |
Definition at line 182 of file MemoryLocation.h.
References llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getKnownMinValue(), getValue(), and hasValue().
Referenced by llvm::SCEVAAResult::alias().
|
inlinestaticconstexpr |
Definition at line 145 of file MemoryLocation.h.
Referenced by llvm::DenseMapInfo< LocationSize >::getEmptyKey(), and print().
|
inlinestaticconstexpr |
Definition at line 142 of file MemoryLocation.h.
Referenced by llvm::DenseMapInfo< LocationSize >::getTombstoneKey(), and print().
|
inline |
Whether accesses before the base pointer are possible.
Definition at line 187 of file MemoryLocation.h.
|
inline |
Definition at line 197 of file MemoryLocation.h.
References llvm::Other.
Definition at line 199 of file MemoryLocation.h.
References llvm::Other.
|
inline |
Definition at line 189 of file MemoryLocation.h.
References llvm::Other.
Definition at line 193 of file MemoryLocation.h.
References getValue(), hasValue(), and llvm::Other.
|
inlinestatic |
Definition at line 111 of file MemoryLocation.h.
|
inlinestatic |
Definition at line 108 of file MemoryLocation.h.
Referenced by areNonOverlapSameBaseLoadAndStore(), llvm::MemoryLocation::get(), llvm::MemoryLocation::getForArgument(), llvm::SelectionDAG::getLoad(), getLoadStackGuard(), llvm::SelectionDAG::getLoadVP(), llvm::SelectionDAG::getMemIntrinsicNode(), llvm::AArch64InstrInfo::getMemOperandsWithOffsetWidth(), llvm::MachineMemOperand::getSize(), llvm::MachineMemOperand::getSizeInBits(), getStackAlignedMMO(), llvm::SelectionDAG::getStore(), llvm::SelectionDAG::getTruncStore(), llvm::SelectionDAG::getTruncStoreVP(), llvm::GISelAddressing::instMayAlias(), llvm::AAResults::isMustAlias(), llvm::BatchAAResults::isMustAlias(), mayLoopAccessLocation(), MemOperandsHaveAlias(), narrowExtractedVectorLoad(), llvm::JumpThreadingPass::simplifyPartiallyRedundantLoad(), and upperBound().
void LocationSize::print | ( | raw_ostream & | OS | ) | const |
Definition at line 20 of file MemoryLocation.cpp.
References afterPointer(), beforeOrAfterPointer(), getValue(), isPrecise(), mapEmpty(), mapTombstone(), and OS.
|
inline |
Definition at line 210 of file MemoryLocation.h.
Referenced by llvm::DenseMapInfo< LocationSize >::getHashValue().
|
inline |
Definition at line 151 of file MemoryLocation.h.
References afterPointer(), beforeOrAfterPointer(), getValue(), isScalable(), llvm::Other, and upperBound().
|
inlinestatic |
Definition at line 123 of file MemoryLocation.h.
References afterPointer(), and upperBound().
|
inlinestatic |
Definition at line 115 of file MemoryLocation.h.
References afterPointer(), LLVM_UNLIKELY, and precise().
Referenced by llvm::MemoryLocation::getForArgument(), unionWith(), and upperBound().