|
LLVM 24.0.0git
|
A description of a memory reference used in the backend. More...
#include "llvm/CodeGen/MachineMemOperand.h"
Public Types | |
| enum | Flags : uint16_t { MONone = 0 , MOLoad = 1u << 0 , MOStore = 1u << 1 , MOVolatile = 1u << 2 , MONonTemporal = 1u << 3 , MODereferenceable = 1u << 4 , MOInvariant = 1u << 5 , MOTargetFlag1 = 1u << 6 , MOTargetFlag2 = 1u << 7 , MOTargetFlag3 = 1u << 8 , MOTargetFlag4 = 1u << 9 } |
| Flags values. These may be or'd together. More... | |
Public Member Functions | |
| LLVM_ABI | MachineMemOperand (MachinePointerInfo PtrInfo, Flags Flags, LocationSize TS, Align A, const MMOMetadata &Metadata=MMOMetadata(), SyncScope::ID SSID=SyncScope::System, AtomicOrdering Ordering=AtomicOrdering::NotAtomic, AtomicOrdering FailureOrdering=AtomicOrdering::NotAtomic) |
| Construct a MachineMemOperand object with the specified PtrInfo, flags, size, base alignment, and metadata. | |
| LLVM_ABI | MachineMemOperand (MachinePointerInfo PtrInfo, Flags Flags, LLT Type, Align A, const MMOMetadata &Metadata=MMOMetadata(), SyncScope::ID SSID=SyncScope::System, AtomicOrdering Ordering=AtomicOrdering::NotAtomic, AtomicOrdering FailureOrdering=AtomicOrdering::NotAtomic) |
| const MachinePointerInfo & | getPointerInfo () const |
| const Value * | getValue () const |
| Return the base address of the memory access. | |
| const PseudoSourceValue * | getPseudoValue () const |
| const void * | getOpaqueValue () const |
| Flags | getFlags () const |
| Return the raw flags of the source value,. | |
| void | setFlags (Flags f) |
| Bitwise OR the current flags with the given flags. | |
| int64_t | getOffset () const |
| For normal values, this is a byte offset added to the base address. | |
| unsigned | getAddrSpace () const |
| LLT | getMemoryType () const |
| Return the memory type of the memory reference. | |
| LocationSize | getSize () const |
| Return the size in bytes of the memory reference. | |
| LocationSize | getSizeInBits () const |
| Return the size in bits of the memory reference. | |
| LLT | getType () const |
| LLVM_ABI Align | getAlign () const |
| Return the minimum known alignment in bytes of the actual memory reference. | |
| Align | getBaseAlign () const |
| Return the minimum known alignment in bytes of the base address, without the offset. | |
| AAMDNodes | getAAInfo () const |
| Return the AA tags for the memory reference. | |
| const MDNode * | getRanges () const |
| Return the range tag for the memory reference. | |
| const MDNode * | getMemCacheHint () const |
| Return the cache hint metadata for the memory reference. | |
| SyncScope::ID | getSyncScopeID () const |
| Returns the synchronization scope ID for this memory operation. | |
| AtomicOrdering | getSuccessOrdering () const |
| Return the atomic ordering requirements for this memory operation. | |
| AtomicOrdering | getFailureOrdering () const |
| For cmpxchg atomic operations, return the atomic ordering requirements when store does not occur. | |
| AtomicOrdering | getMergedOrdering () const |
| Return a single atomic ordering that is at least as strong as both the success and failure orderings for an atomic operation. | |
| bool | isLoad () const |
| bool | isStore () const |
| bool | isVolatile () const |
| bool | isNonTemporal () const |
| bool | isDereferenceable () const |
| bool | isInvariant () const |
| bool | isAtomic () const |
| Returns true if this operation has an atomic ordering requirement of unordered or higher, false otherwise. | |
| bool | isUnordered () const |
| Returns true if this memory operation doesn't have any ordering constraints other than normal aliasing. | |
| LLVM_ABI void | refineAlignment (const MachineMemOperand *MMO) |
| Update this MachineMemOperand to reflect the alignment of MMO, if it has a greater alignment. | |
| void | setValue (const Value *NewSV) |
| Change the SourceValue for this MachineMemOperand. | |
| void | setValue (const PseudoSourceValue *NewSV) |
| void | setOffset (int64_t NewOffset) |
| void | setType (LLT NewTy) |
| Reset the tracked memory type. | |
| void | clearRanges () |
| Unset the tracked range metadata. | |
| void | clearMemCacheHint () |
| Unset the cache hint metadata. | |
| LLVM_ABI void | print (raw_ostream &OS, ModuleSlotTracker &MST, SmallVectorImpl< StringRef > &SSNs, const LLVMContext &Context, const MachineFrameInfo *MFI, const TargetInstrInfo *TII) const |
| Support for operator<<. | |
Friends | |
| bool | operator== (const MachineMemOperand &LHS, const MachineMemOperand &RHS) |
| bool | operator!= (const MachineMemOperand &LHS, const MachineMemOperand &RHS) |
A description of a memory reference used in the backend.
Instead of holding a StoreInst or LoadInst, this class holds the address Value of the reference along with a byte size and offset. This allows it to describe lowered loads and stores. Also, the special PseudoSourceValue objects can be used to represent loads and stores to memory locations that aren't explicit in the regular LLVM IR.
Definition at line 141 of file MachineMemOperand.h.
Flags values. These may be or'd together.
Definition at line 144 of file MachineMemOperand.h.
| MachineMemOperand::MachineMemOperand | ( | MachinePointerInfo | PtrInfo, |
| Flags | Flags, | ||
| LocationSize | TS, | ||
| Align | A, | ||
| const MMOMetadata & | Metadata = MMOMetadata(), | ||
| SyncScope::ID | SSID = SyncScope::System, | ||
| AtomicOrdering | Ordering = AtomicOrdering::NotAtomic, | ||
| AtomicOrdering | FailureOrdering = AtomicOrdering::NotAtomic ) |
Construct a MachineMemOperand object with the specified PtrInfo, flags, size, base alignment, and metadata.
For atomic operations the synchronization scope and atomic ordering requirements must also be specified. For cmpxchg atomic operations the atomic ordering requirements when store does not occur must also be specified.
Definition at line 1205 of file MachineOperand.cpp.
References F, getValue(), and MachineMemOperand().
Referenced by MachineMemOperand(), operator!=, operator==, and refineAlignment().
| MachineMemOperand::MachineMemOperand | ( | MachinePointerInfo | PtrInfo, |
| Flags | Flags, | ||
| LLT | Type, | ||
| Align | A, | ||
| const MMOMetadata & | Metadata = MMOMetadata(), | ||
| SyncScope::ID | SSID = SyncScope::System, | ||
| AtomicOrdering | Ordering = AtomicOrdering::NotAtomic, | ||
| AtomicOrdering | FailureOrdering = AtomicOrdering::NotAtomic ) |
Definition at line 1183 of file MachineOperand.cpp.
References A(), assert(), llvm::cast(), F, getFailureOrdering(), getSuccessOrdering(), getSyncScopeID(), llvm::isa(), isLoad(), and isStore().
|
inline |
Unset the cache hint metadata.
Definition at line 355 of file MachineMemOperand.h.
|
inline |
Unset the tracked range metadata.
Definition at line 352 of file MachineMemOperand.h.
Referenced by llvm::LegalizerHelper::bitcast().
|
inline |
Return the AA tags for the memory reference.
Definition at line 279 of file MachineMemOperand.h.
Referenced by convertTwoLoadsAndCmpToVCMPEQUB(), llvm::MemSDNode::getAAInfo(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFunction::getMachineMemOperand(), MemOperandsHaveAlias(), MIsNeedChainEdge(), and print().
|
inline |
Definition at line 246 of file MachineMemOperand.h.
Referenced by llvm::TargetLoweringBase::allowsMemoryAccess(), llvm::TargetLoweringBase::allowsMemoryAccess(), llvm::X86TargetLowering::allowsMemoryAccess(), llvm::TargetLoweringBase::allowsMemoryAccessForAlignment(), llvm::AMDGPURegisterBankInfo::applyMappingLoad(), llvm::GIMatchTableExecutor::executeMatchTable(), llvm::AMDGPURegisterBankInfo::isScalarLoadLegal(), llvm::AMDGPU::isUniformMMO(), llvm::SIInstrInfo::mayAccessFlatAddressSpace(), print(), and llvm::AMDGPU::RegBankLegalizeRules::RegBankLegalizeRules().
| Align MachineMemOperand::getAlign | ( | ) | const |
Return the minimum known alignment in bytes of the actual memory reference.
getAlign - Return the minimum known alignment in bytes of the actual memory reference.
Definition at line 1237 of file MachineOperand.cpp.
References llvm::commonAlignment(), getBaseAlign(), and getOffset().
Referenced by llvm::TargetLoweringBase::allowsMemoryAccess(), llvm::TargetLoweringBase::allowsMemoryAccess(), llvm::X86TargetLowering::allowsMemoryAccess(), llvm::TargetLoweringBase::allowsMemoryAccessForAlignment(), llvm::AMDGPURegisterBankInfo::applyMappingLoad(), convertTwoLoadsAndCmpToVCMPEQUB(), llvm::GIMatchTableExecutor::executeMatchTable(), llvm::GMemOperation::getAlign(), llvm::MemSDNode::getAlign(), isMemOpAligned(), isMemoryOp(), llvm::AMDGPURegisterBankInfo::isScalarLoadLegal(), legalizeLoad(), llvm::AMDGPULegalizerInfo::legalizeLoad(), legalizeStore(), llvm::CombinerHelper::matchCombineExtractedVectorLoad(), print(), and llvm::AMDGPU::RegBankLegalizeRules::RegBankLegalizeRules().
|
inline |
Return the minimum known alignment in bytes of the base address, without the offset.
Definition at line 276 of file MachineMemOperand.h.
Referenced by getAlign(), llvm::MemSDNode::getBaseAlign(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFunction::getMachineMemOperand(), print(), and refineAlignment().
|
inline |
For cmpxchg atomic operations, return the atomic ordering requirements when store does not occur.
Definition at line 301 of file MachineMemOperand.h.
Referenced by convertTwoLoadsAndCmpToVCMPEQUB(), llvm::AtomicSDNode::getFailureOrdering(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFunction::getMachineMemOperand(), getMergedOrdering(), MachineMemOperand(), and print().
|
inline |
Return the raw flags of the source value,.
Definition at line 237 of file MachineMemOperand.h.
Referenced by AddNodeIDCustom(), llvm::TargetLoweringBase::allowsMemoryAccess(), llvm::TargetLoweringBase::allowsMemoryAccess(), llvm::X86TargetLowering::allowsMemoryAccess(), llvm::TargetLoweringBase::allowsMemoryAccessForAlignment(), llvm::SIRegisterInfo::buildSpillLoadStore(), combineMOVDQ2Q(), combineStore(), combineTargetShuffle(), convertTwoLoadsAndCmpToVCMPEQUB(), EltsFromConsecutiveLoads(), llvm::SelectionDAG::getAtomic(), llvm::SelectionDAG::getGatherVP(), llvm::SelectionDAG::getGetFPEnv(), llvm::SelectionDAG::getLoad(), llvm::SelectionDAG::getLoadFFVP(), llvm::SelectionDAG::getLoadVP(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFunction::getMachineMemOperand(), llvm::SelectionDAG::getMaskedGather(), llvm::SelectionDAG::getMaskedHistogram(), llvm::SelectionDAG::getMaskedLoad(), llvm::SelectionDAG::getMaskedScatter(), llvm::SelectionDAG::getMaskedStore(), llvm::SelectionDAG::getScatterVP(), llvm::SelectionDAG::getSetFPEnv(), llvm::SelectionDAG::getStore(), llvm::SelectionDAG::getStoreVP(), llvm::SelectionDAG::getTruncStoreVP(), llvm::SITargetLowering::isMemOpHasNoClobberedMemOperand(), llvm::AMDGPURegisterBankInfo::isScalarLoadLegal(), lowerFP_TO_SINT_STORE(), llvm::HexagonTargetLowering::LowerLoad(), LowerLoad(), LowerSTORE(), LowerStore(), narrowBitOpRMW(), narrowLoadToVZLoad(), PerformExtractFpToIntStores(), performIntToFpCombine(), llvm::AMDGPUTargetLowering::performLoadCombine(), performReverseEVLCombine(), performSINT_TO_FPCombine(), PerformSplittingMVETruncToNarrowingStores(), PerformSplittingToNarrowingStores(), PerformSTORECombine(), llvm::AMDGPUTargetLowering::performStoreCombine(), PerformTruncatingStoreCombine(), print(), reduceMaskedStoreToScalarStore(), refineAlignment(), llvm::SparcTargetLowering::ReplaceNodeResults(), llvm::TargetLowering::scalarizeExtractedVectorLoad(), splitStores(), and splitStoreSplat().
Return the cache hint metadata for the memory reference.
Definition at line 285 of file MachineMemOperand.h.
Referenced by llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFunction::getMachineMemOperand(), llvm::GAnyLoad::getMemCacheHint(), llvm::MemSDNode::getMemCacheHint(), and print().
|
inline |
Return the memory type of the memory reference.
This should only be relied on for GlobalISel G_* operation legalization.
Definition at line 250 of file MachineMemOperand.h.
Referenced by llvm::LegalizerHelper::bitcast(), llvm::GISelValueTracking::computeKnownBitsImpl(), llvm::AMDGPULegalizerInfo::legalizeBufferLoad(), llvm::AMDGPULegalizerInfo::legalizeBufferStore(), llvm::AMDGPULegalizerInfo::legalizeLoad(), llvm::LegalizerHelper::lowerLoad(), llvm::LegalizerHelper::lowerStore(), print(), and llvm::LegalizerHelper::scalarizeVectorBooleanStore().
|
inline |
Return a single atomic ordering that is at least as strong as both the success and failure orderings for an atomic operation.
(For operations other than cmpxchg, this is equivalent to getSuccessOrdering().)
Definition at line 308 of file MachineMemOperand.h.
References getFailureOrdering(), llvm::getMergedAtomicOrdering(), and getSuccessOrdering().
Referenced by llvm::MemSDNode::getMergedOrdering().
|
inline |
For normal values, this is a byte offset added to the base address.
For PseudoSourceValue::FPRel values, this is the FrameIndex number.
Definition at line 244 of file MachineMemOperand.h.
Referenced by llvm::SystemZInstrInfo::areMemAccessesTriviallyDisjoint(), llvm::PPCHazardRecognizer970::EmitInstruction(), getAlign(), llvm::PPCHazardRecognizer970::getHazardType(), llvm::MachineFunction::getMachineMemOperand(), llvm::MemSDNode::getSrcValueOffset(), MemOperandsHaveAlias(), MIsNeedChainEdge(), and print().
|
inline |
Definition at line 234 of file MachineMemOperand.h.
Referenced by print().
|
inline |
Definition at line 217 of file MachineMemOperand.h.
Referenced by llvm::SIRegisterInfo::buildSpillLoadStore(), convertTwoLoadsAndCmpToVCMPEQUB(), llvm::SelectionDAG::getAtomic(), llvm::SelectionDAG::getGatherVP(), llvm::SelectionDAG::getGetFPEnv(), llvm::SelectionDAG::getLoad(), llvm::SelectionDAG::getLoadFFVP(), llvm::SelectionDAG::getLoadVP(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFunction::getMachineMemOperand(), llvm::SelectionDAG::getMaskedGather(), llvm::SelectionDAG::getMaskedHistogram(), llvm::SelectionDAG::getMaskedLoad(), llvm::SelectionDAG::getMaskedScatter(), llvm::SelectionDAG::getMaskedStore(), llvm::MemSDNode::getPointerInfo(), llvm::SelectionDAG::getScatterVP(), llvm::SelectionDAG::getSetFPEnv(), llvm::SelectionDAG::getStore(), llvm::SelectionDAG::getStoreVP(), llvm::SelectionDAG::getStridedLoadVP(), llvm::SelectionDAG::getStridedStoreVP(), llvm::SelectionDAG::getTruncStoreVP(), llvm::SelectionDAG::getTruncStridedStoreVP(), legalizeLoad(), legalizeStore(), llvm::LegalizerHelper::lowerLoad(), llvm::LegalizerHelper::lowerStore(), llvm::CombinerHelper::matchCombineExtractedVectorLoad(), llvm::CombinerHelper::matchCombineLoadWithAndMask(), llvm::CombinerHelper::matchLoadOrCombine(), llvm::LegalizerHelper::scalarizeVectorBooleanStore(), tryMemPairCombine(), and llvm::LegalizerHelper::widenScalar().
|
inline |
Definition at line 230 of file MachineMemOperand.h.
References llvm::dyn_cast_if_present().
Referenced by llvm::SystemZInstrInfo::areMemAccessesTriviallyDisjoint(), llvm::TargetInstrInfo::describeLoadedValue(), llvm::MachineFunction::getMachineMemOperand(), getMMOFrameID(), llvm::AMDGPU::isUniformMMO(), MemOperandsHaveAlias(), and print().
Return the range tag for the memory reference.
Definition at line 282 of file MachineMemOperand.h.
Referenced by llvm::GISelValueTracking::computeKnownBitsImpl(), llvm::SelectionDAG::getLoad(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFunction::getMachineMemOperand(), llvm::GAnyLoad::getRanges(), llvm::MemSDNode::getRanges(), and print().
|
inline |
Return the size in bytes of the memory reference.
Definition at line 253 of file MachineMemOperand.h.
References llvm::LocationSize::beforeOrAfterPointer(), and llvm::LocationSize::precise().
Referenced by llvm::AMDGPURegisterBankInfo::applyMappingLoad(), llvm::SystemZInstrInfo::areMemAccessesTriviallyDisjoint(), convertTwoLoadsAndCmpToVCMPEQUB(), llvm::TargetInstrInfo::describeLoadedValue(), llvm::PPCHazardRecognizer970::EmitInstruction(), llvm::GIMatchTableExecutor::executeMatchTable(), llvm::PPCTargetLowering::expandVSXLoadForLE(), llvm::PPCTargetLowering::expandVSXStoreForLE(), llvm::SystemZInstrInfo::foldMemoryOperandImpl(), llvm::PPCHazardRecognizer970::getHazardType(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFunction::getMachineMemOperand(), llvm::GMemOperation::getMemSize(), llvm::AMDGPURegisterBankInfo::isScalarLoadLegal(), llvm::AMDGPULegalizerInfo::legalizeBufferStore(), MemOperandsHaveAlias(), MIsNeedChainEdge(), print(), refineAlignment(), and llvm::AMDGPU::RegBankLegalizeRules::RegBankLegalizeRules().
|
inline |
Return the size in bits of the memory reference.
Definition at line 260 of file MachineMemOperand.h.
References llvm::LocationSize::beforeOrAfterPointer(), and llvm::LocationSize::precise().
Referenced by llvm::GISelValueTracking::computeNumSignBits(), llvm::GIMatchTableExecutor::executeMatchTable(), llvm::GMemOperation::getMemSizeInBits(), and llvm::LegalizerHelper::narrowScalar().
|
inline |
Return the atomic ordering requirements for this memory operation.
For cmpxchg atomic operations, return the atomic ordering requirements when store occurs.
Definition at line 295 of file MachineMemOperand.h.
Referenced by convertTwoLoadsAndCmpToVCMPEQUB(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFunction::getMachineMemOperand(), getMergedOrdering(), llvm::MemSDNode::getSuccessOrdering(), isAtomic(), isUnordered(), MachineMemOperand(), and print().
|
inline |
Returns the synchronization scope ID for this memory operation.
Definition at line 288 of file MachineMemOperand.h.
Referenced by convertTwoLoadsAndCmpToVCMPEQUB(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFunction::getMachineMemOperand(), llvm::MemSDNode::getSyncScopeID(), MachineMemOperand(), and print().
|
inline |
Definition at line 266 of file MachineMemOperand.h.
Return the base address of the memory access.
This may either be a normal LLVM IR Value, or one of the special values used in CodeGen. Special values are those obtained via PseudoSourceValue::getFixedStack(int), PseudoSourceValue::getStack, and other PseudoSourceValue member functions which return objects which stand for frame/stack pointer relative references and other special references which are not representable in the high-level IR.
Definition at line 226 of file MachineMemOperand.h.
References llvm::dyn_cast_if_present().
Referenced by llvm::SystemZInstrInfo::areMemAccessesTriviallyDisjoint(), llvm::PPCHazardRecognizer970::EmitInstruction(), llvm::PPCHazardRecognizer970::getHazardType(), llvm::MachineFunction::getMachineMemOperand(), getMMOFrameID(), llvm::AMDGPU::isUniformMMO(), MachineMemOperand(), MemOperandsHaveAlias(), MIsNeedChainEdge(), and print().
|
inline |
Returns true if this operation has an atomic ordering requirement of unordered or higher, false otherwise.
Definition at line 321 of file MachineMemOperand.h.
References getSuccessOrdering(), and llvm::NotAtomic.
Referenced by llvm::AtomicSDNode::AtomicSDNode(), llvm::MachineIRBuilder::buildAtomicRMW(), llvm::SystemZInstrInfo::foldMemoryOperandImpl(), INITIALIZE_PASS(), llvm::GMemOperation::isAtomic(), llvm::MemSDNode::isAtomic(), isMemoryOp(), and llvm::AMDGPURegisterBankInfo::isScalarLoadLegal().
|
inline |
Definition at line 316 of file MachineMemOperand.h.
References MODereferenceable.
Referenced by print().
|
inline |
Definition at line 317 of file MachineMemOperand.h.
References MOInvariant.
Referenced by llvm::AMDGPURegisterBankInfo::isScalarLoadLegal(), and print().
|
inline |
Definition at line 312 of file MachineMemOperand.h.
References MOLoad.
Referenced by MachineMemOperand(), print(), and llvm::MemSDNode::readMem().
|
inline |
Definition at line 315 of file MachineMemOperand.h.
References MONonTemporal.
Referenced by print(), and llvm::RISCVInstrInfo::requiresNTLHint().
|
inline |
Definition at line 313 of file MachineMemOperand.h.
References MOStore.
Referenced by MachineMemOperand(), print(), and llvm::MemSDNode::writeMem().
|
inline |
Returns true if this memory operation doesn't have any ordering constraints other than normal aliasing.
Volatile and (ordered) atomic memory operations can't be reordered.
Definition at line 328 of file MachineMemOperand.h.
References getSuccessOrdering(), isVolatile(), llvm::NotAtomic, and llvm::Unordered.
Referenced by llvm::MachineInstr::hasOrderedMemoryRef(), llvm::GMemOperation::isUnordered(), and llvm::MemSDNode::isUnordered().
|
inline |
Definition at line 314 of file MachineMemOperand.h.
References MOVolatile.
Referenced by llvm::SystemZInstrInfo::foldMemoryOperandImpl(), INITIALIZE_PASS(), isMemoryOp(), llvm::AMDGPURegisterBankInfo::isScalarLoadLegal(), isUnordered(), llvm::GMemOperation::isVolatile(), and print().
| void MachineMemOperand::print | ( | raw_ostream & | OS, |
| ModuleSlotTracker & | MST, | ||
| SmallVectorImpl< StringRef > & | SSNs, | ||
| const LLVMContext & | Context, | ||
| const MachineFrameInfo * | MFI, | ||
| const TargetInstrInfo * | TII ) const |
Support for operator<<.
Definition at line 1241 of file MachineOperand.cpp.
References assert(), llvm::cast(), llvm::PseudoSourceValue::ConstantPool, llvm::PseudoSourceValue::ExternalSymbolCallEntry, llvm::PseudoSourceValue::FixedStack, getAAInfo(), getAddrSpace(), getAlign(), getBaseAlign(), getFailureOrdering(), getFlags(), getMemCacheHint(), getMemoryType(), getOffset(), getOpaqueValue(), getPseudoValue(), getRanges(), getSize(), getSuccessOrdering(), getSyncScopeID(), getTargetMMOFlagName(), getValue(), llvm::PseudoSourceValue::GlobalValueCallEntry, llvm::PseudoSourceValue::GOT, isDereferenceable(), isInvariant(), isLoad(), isNonTemporal(), isStore(), isValid(), isVolatile(), isZero(), llvm::PseudoSourceValue::JumpTable, MOTargetFlag1, MOTargetFlag2, MOTargetFlag3, MOTargetFlag4, llvm::NotAtomic, llvm::Metadata::printAsOperand(), llvm::MIRFormatter::printCustomPseudoSourceValue(), printFrameIndex(), llvm::MIRFormatter::printIRValue(), llvm::printLLVMNameWithoutPrefix(), llvm::MachineOperand::printOperandOffset(), printSyncScope(), llvm::PseudoSourceValue::Stack, TII, llvm::toIRString(), and llvm::Align::value().
Referenced by printMemOperand().
| void MachineMemOperand::refineAlignment | ( | const MachineMemOperand * | MMO | ) |
Update this MachineMemOperand to reflect the alignment of MMO, if it has a greater alignment.
This must only be used when the new alignment applies to all users of this MachineMemOperand.
Definition at line 1219 of file MachineOperand.cpp.
References assert(), getBaseAlign(), getFlags(), getSize(), llvm::LocationSize::hasValue(), and MachineMemOperand().
|
inline |
Bitwise OR the current flags with the given flags.
Definition at line 240 of file MachineMemOperand.h.
Referenced by llvm::RISCVDAGToDAGISel::Select().
|
inline |
Definition at line 344 of file MachineMemOperand.h.
|
inline |
Reset the tracked memory type.
Definition at line 347 of file MachineMemOperand.h.
Referenced by llvm::LegalizerHelper::bitcast().
|
inline |
Definition at line 343 of file MachineMemOperand.h.
Change the SourceValue for this MachineMemOperand.
This should only be used when an object is being relocated and all references to it are being updated.
Definition at line 342 of file MachineMemOperand.h.
|
friend |
Definition at line 382 of file MachineMemOperand.h.
References LHS, MachineMemOperand(), and RHS.
|
friend |
Definition at line 365 of file MachineMemOperand.h.
References LHS, MachineMemOperand(), and RHS.