|
LLVM
8.0.1
|
#include "llvm/CodeGen/MachineInstr.h"#include "llvm/ADT/APFloat.h"#include "llvm/ADT/ArrayRef.h"#include "llvm/ADT/FoldingSet.h"#include "llvm/ADT/Hashing.h"#include "llvm/ADT/None.h"#include "llvm/ADT/STLExtras.h"#include "llvm/ADT/SmallBitVector.h"#include "llvm/ADT/SmallString.h"#include "llvm/ADT/SmallVector.h"#include "llvm/Analysis/AliasAnalysis.h"#include "llvm/Analysis/Loads.h"#include "llvm/Analysis/MemoryLocation.h"#include "llvm/CodeGen/GlobalISel/RegisterBank.h"#include "llvm/CodeGen/MachineBasicBlock.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/TargetInstrInfo.h"#include "llvm/CodeGen/TargetRegisterInfo.h"#include "llvm/CodeGen/TargetSubtargetInfo.h"#include "llvm/Config/llvm-config.h"#include "llvm/IR/Constants.h"#include "llvm/IR/DebugInfoMetadata.h"#include "llvm/IR/DebugLoc.h"#include "llvm/IR/DerivedTypes.h"#include "llvm/IR/Function.h"#include "llvm/IR/InlineAsm.h"#include "llvm/IR/InstrTypes.h"#include "llvm/IR/Intrinsics.h"#include "llvm/IR/LLVMContext.h"#include "llvm/IR/Metadata.h"#include "llvm/IR/Module.h"#include "llvm/IR/ModuleSlotTracker.h"#include "llvm/IR/Type.h"#include "llvm/IR/Value.h"#include "llvm/IR/Operator.h"#include "llvm/MC/MCInstrDesc.h"#include "llvm/MC/MCRegisterInfo.h"#include "llvm/MC/MCSymbol.h"#include "llvm/Support/Casting.h"#include "llvm/Support/CommandLine.h"#include "llvm/Support/Compiler.h"#include "llvm/Support/Debug.h"#include "llvm/Support/ErrorHandling.h"#include "llvm/Support/LowLevelTypeImpl.h"#include "llvm/Support/MathExtras.h"#include "llvm/Support/raw_ostream.h"#include "llvm/Target/TargetIntrinsicInfo.h"#include "llvm/Target/TargetMachine.h"#include <algorithm>#include <cassert>#include <cstddef>#include <cstdint>#include <cstring>#include <iterator>#include <utility>Go to the source code of this file.
Functions | |
| static const MachineFunction * | getMFIfAvailable (const MachineInstr &MI) |
| static void | tryToGetTargetInfo (const MachineInstr &MI, const TargetRegisterInfo *&TRI, const MachineRegisterInfo *&MRI, const TargetIntrinsicInfo *&IntrinsicInfo, const TargetInstrInfo *&TII) |
| static void | moveOperands (MachineOperand *Dst, MachineOperand *Src, unsigned NumOps, MachineRegisterInfo *MRI) |
| Move NumOps MachineOperands from Src to Dst, with support for overlapping ranges. More... | |
| static bool | hasIdenticalMMOs (ArrayRef< MachineMemOperand *> LHS, ArrayRef< MachineMemOperand *> RHS) |
| Check to see if the MMOs pointed to by the two MemRefs arrays are identical. More... | |
| static const DIExpression * | computeExprForSpill (const MachineInstr &MI) |
| Compute the new DIExpression to use with a DBG_VALUE for a spill slot. More... | |
Variables | |
| const unsigned | TiedMax = 15 |
|
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 2046 of file MachineInstr.cpp.
References assert(), llvm::MachineInstr::getDebugExpression(), llvm::MachineInstr::getDebugLoc(), llvm::MachineInstr::getDebugVariable(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::isIndirectDebugValue(), llvm::MachineOperand::isReg(), llvm::DILocalVariable::isValidLocationForIntrinsic(), llvm::DIExpression::prepend(), and llvm::DIExpression::WithDeref.
Referenced by llvm::buildDbgValueForSpill(), and llvm::updateDbgValueForSpill().
|
static |
Definition at line 79 of file MachineInstr.cpp.
References llvm::MachineInstr::getParent().
Referenced by llvm::MachineInstr::print(), and tryToGetTargetInfo().
|
static |
Check to see if the MMOs pointed to by the two MemRefs arrays are identical.
Definition at line 390 of file MachineInstr.cpp.
References llvm::lltok::equal, llvm::make_pointee_range(), and llvm::ArrayRef< T >::size().
Referenced by llvm::MachineInstr::cloneMergedMemRefs().
|
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 186 of file MachineInstr.cpp.
References llvm::Intrinsic::memmove, and llvm::MachineRegisterInfo::moveOperands().
Referenced by llvm::MachineInstr::addOperand(), and llvm::MachineInstr::RemoveOperand().
|
static |
Definition at line 88 of file MachineInstr.cpp.
References getMFIfAvailable().
Referenced by llvm::MachineInstr::print().
Definition at line 1022 of file MachineInstr.cpp.
Referenced by llvm::MachineInstr::tieOperands().
1.8.13