LLVM
8.0.1
|
#include "Target/ARM/ThumbRegisterInfo.h"
Additional Inherited Members | |
Protected Member Functions inherited from llvm::ARMBaseRegisterInfo | |
ARMBaseRegisterInfo () | |
unsigned | getOpcode (int Op) const |
Protected Attributes inherited from llvm::ARMBaseRegisterInfo | |
unsigned | BasePtr = ARM::R6 |
BasePtr - ARM physical register used as a base ptr in complex stack frames. More... | |
Definition at line 26 of file ThumbRegisterInfo.h.
ThumbRegisterInfo::ThumbRegisterInfo | ( | ) |
Definition at line 41 of file ThumbRegisterInfo.cpp.
|
override |
Definition at line 507 of file ThumbRegisterInfo.cpp.
References llvm::ARMCC::AL, assert(), llvm::MachineOperand::ChangeToImmediate(), llvm::MachineOperand::ChangeToRegister(), llvm::MachineRegisterInfo::createVirtualRegister(), llvm::ARMBaseRegisterInfo::eliminateFrameIndex(), emitLoadConstPool(), llvm::emitThumbRegPlusImmediate(), emitThumbRegPlusImmInReg(), llvm::MachineInstr::findFirstPredOperandIdx(), llvm::ISD::FrameIndex, llvm::ARMSubtarget::genExecuteOnly(), llvm::MachineInstr::getDebugLoc(), llvm::MachineFunction::getFrameInfo(), llvm::ARMSubtarget::getFrameLowering(), llvm::MachineOperand::getIndex(), llvm::MachineFunction::getInfo(), llvm::ARMSubtarget::getInstrInfo(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineBasicBlock::getParent(), llvm::MachineInstr::getParent(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getRegInfo(), llvm::MachineFunction::getSubtarget(), llvm::ARMFrameLowering::hasReservedCallFrame(), llvm::MachineFrameInfo::hasVarSizedObjects(), llvm::MachineInstr::isDebugValue(), llvm::MachineInstr::isPredicable(), llvm::RegScavenger::isScavengingFrameIndex(), llvm::ARMSubtarget::isThumb1Only(), llvm::ARMFunctionInfo::isThumbFunction(), llvm_unreachable, llvm::MachineInstr::mayLoad(), llvm::MachineInstr::mayStore(), MI, llvm::predOps(), removeOperands(), llvm::ARMFrameLowering::ResolveFrameIndexReference(), rewriteFrameIndex(), llvm::MachineInstr::setDesc(), and TII.
|
overridevirtual |
emitLoadConstPool - Emits a load from constpool to materialize the specified immediate.
Reimplemented from llvm::ARMBaseRegisterInfo.
Definition at line 104 of file ThumbRegisterInfo.cpp.
References assert(), emitThumb1LoadConstPool(), emitThumb2LoadConstPool(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getSubtarget(), llvm::isARMLowRegister(), and llvm::ARMSubtarget::isThumb1Only().
Referenced by eliminateFrameIndex().
|
override |
Definition at line 44 of file ThumbRegisterInfo.cpp.
References llvm::ARMBaseRegisterInfo::getLargestLegalSuperClass(), llvm::MachineFunction::getSubtarget(), and llvm::ARMSubtarget::isThumb1Only().
|
override |
Definition at line 55 of file ThumbRegisterInfo.cpp.
References llvm::ARMBaseRegisterInfo::getPointerRegClass(), llvm::MachineFunction::getSubtarget(), and llvm::ARMSubtarget::isThumb1Only().
|
override |
Definition at line 430 of file ThumbRegisterInfo.cpp.
References assert(), llvm::ARMSubtarget::getInstrInfo(), llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOperand(), llvm::MachineBasicBlock::getParent(), llvm::MachineInstr::getParent(), llvm::MachineFunction::getSubtarget(), llvm::MachineOperand::isFI(), llvm::ARMSubtarget::isThumb1Only(), llvm::ARMBaseRegisterInfo::resolveFrameIndex(), rewriteFrameIndex(), and TII.
bool ThumbRegisterInfo::rewriteFrameIndex | ( | MachineBasicBlock::iterator | II, |
unsigned | FrameRegIdx, | ||
unsigned | FrameReg, | ||
int & | Offset, | ||
const ARMBaseInstrInfo & | TII | ||
) | const |
Definition at line 359 of file ThumbRegisterInfo.cpp.
References llvm::ARMII::AddrModeMask, llvm::ARMII::AddrModeT1_s, assert(), llvm::MachineOperand::ChangeToImmediate(), llvm::MachineOperand::ChangeToRegister(), convertToNonSPOpcode(), llvm::emitThumbRegPlusImmediate(), llvm::MachineBasicBlock::erase(), llvm::MachineInstr::getDebugLoc(), llvm::MachineInstr::getDesc(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineBasicBlock::getParent(), llvm::MachineInstr::getParent(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getSubtarget(), llvm_unreachable, llvm::BitmaskEnumDetail::Mask(), MI, llvm::MachineInstr::setDesc(), and llvm::MCInstrDesc::TSFlags.
Referenced by eliminateFrameIndex(), and resolveFrameIndex().
|
override |
saveScavengerRegister - Spill the register so it can be used by the register scavenger.
Return true.
Definition at line 452 of file ThumbRegisterInfo.cpp.
References llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addReg(), llvm::ARMCC::AL, llvm::BuildMI(), llvm::MachineOperand::clobbersPhysReg(), llvm::RegState::Define, llvm::MCInstrInfo::get(), llvm::ARMSubtarget::getInstrInfo(), llvm::MachineBasicBlock::getParent(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getSubtarget(), llvm::MachineOperand::isReg(), llvm::MachineOperand::isRegMask(), llvm::ARMSubtarget::isThumb1Only(), llvm::MachineOperand::isUndef(), llvm::TargetRegisterInfo::isVirtualRegister(), llvm::RegState::Kill, llvm::predOps(), TII, and UseMI.