LLVM 20.0.0git
|
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/Hashing.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallBitVector.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Analysis/AliasAnalysis.h"
#include "llvm/Analysis/MemoryLocation.h"
#include "llvm/CodeGen/MachineBasicBlock.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineInstrBundle.h"
#include "llvm/CodeGen/MachineMemOperand.h"
#include "llvm/CodeGen/MachineModuleInfo.h"
#include "llvm/CodeGen/MachineOperand.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/PseudoSourceValue.h"
#include "llvm/CodeGen/Register.h"
#include "llvm/CodeGen/StackMaps.h"
#include "llvm/CodeGen/TargetInstrInfo.h"
#include "llvm/CodeGen/TargetRegisterInfo.h"
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include "llvm/CodeGenTypes/LowLevelType.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DebugInfoMetadata.h"
#include "llvm/IR/DebugLoc.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/InlineAsm.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Metadata.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/ModuleSlotTracker.h"
#include "llvm/IR/Operator.h"
#include "llvm/MC/MCInstrDesc.h"
#include "llvm/MC/MCRegisterInfo.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/FormattedStream.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Target/TargetMachine.h"
#include <algorithm>
#include <cassert>
#include <cstdint>
#include <cstring>
#include <utility>
Go to the source code of this file.
Typedefs | |
using | MMOList = SmallVector< const MachineMemOperand *, 2 > |
Variables | |
const unsigned | TiedMax = 15 |
using MMOList = SmallVector<const MachineMemOperand *, 2> |
Definition at line 2425 of file MachineInstr.cpp.
|
static |
Compute the new DIExpression to use with a DBG_VALUE for a spill slot.
This prepends DW_OP_deref when spilling an indirect DBG_VALUE.
Definition at line 2299 of file MachineInstr.cpp.
References llvm::DIExpression::appendOpsToArg(), assert(), llvm::DIExpression::DerefBefore, MI, and llvm::DIExpression::prepend().
Referenced by llvm::buildDbgValueForSpill(), computeExprForSpill(), and llvm::updateDbgValueForSpill().
|
static |
Definition at line 2321 of file MachineInstr.cpp.
References assert(), computeExprForSpill(), MI, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
|
static |
Definition at line 65 of file MachineInstr.cpp.
References llvm::MachineBasicBlock::getParent(), MBB, and MI.
Referenced by llvm::MachineOperand::ChangeToRegister(), llvm::MachineOperand::getTargetIndexName(), llvm::hash_value(), llvm::MachineOperand::isIdenticalTo(), llvm::MachineInstr::print(), llvm::MachineOperand::print(), llvm::MachineOperand::printTargetFlags(), llvm::MachineOperand::setIsDef(), llvm::MachineOperand::setReg(), and tryToGetTargetInfo().
|
static |
Definition at line 2427 of file MachineInstr.cpp.
References A, llvm::LocationSize::beforeOrAfterPointer(), llvm::LocationSize::getValue(), llvm::LocationSize::hasValue(), llvm::MachineFrameInfo::isSpillSlotObjectIndex(), and Size.
Referenced by llvm::MachineInstr::getFoldedRestoreSize(), and llvm::MachineInstr::getFoldedSpillSize().
|
static |
Check to see if the MMOs pointed to by the two MemRefs arrays are identical.
Definition at line 414 of file MachineInstr.cpp.
References LHS, llvm::make_pointee_range(), and RHS.
Referenced by llvm::MachineInstr::cloneMergedMemRefs().
|
static |
Definition at line 1326 of file MachineInstr.cpp.
References assert(), llvm::MachineMemOperand::getAAInfo(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getKnownMinValue(), llvm::MachineMemOperand::getOffset(), llvm::MachineMemOperand::getPseudoValue(), llvm::MachineMemOperand::getSize(), llvm::LocationSize::getValue(), llvm::MachineMemOperand::getValue(), llvm::LocationSize::hasValue(), llvm::AAResults::isNoAlias(), llvm::LocationSize::isScalable(), llvm::PseudoSourceValue::mayAlias(), llvm::LocationSize::precise(), llvm::MemoryLocation::UnknownSize, and UseTBAA.
Referenced by llvm::MachineInstr::mayAlias().
|
static |
Move NumOps MachineOperands from Src to Dst, with support for overlapping ranges.
If MRI is non-null also update use-def chains.
Definition at line 191 of file MachineInstr.cpp.
Referenced by llvm::MachineInstr::addOperand(), and llvm::MachineInstr::removeOperand().
|
static |
Definition at line 74 of file MachineInstr.cpp.
References getMFIfAvailable(), MI, MRI, TII, and TRI.
Referenced by llvm::MachineOperand::print(), and llvm::MachineInstr::print().
Definition at line 1148 of file MachineInstr.cpp.
Referenced by llvm::MachineInstr::findTiedOperandIdx(), and llvm::MachineInstr::tieOperands().