LLVM 20.0.0git
|
#include "Target/Xtensa/XtensaInstrInfo.h"
Definition at line 31 of file XtensaInstrInfo.h.
XtensaInstrInfo::XtensaInstrInfo | ( | const XtensaSubtarget & | STI | ) |
Definition at line 50 of file XtensaInstrInfo.cpp.
void XtensaInstrInfo::adjustStackPtr | ( | unsigned | SP, |
int64_t | Amount, | ||
MachineBasicBlock & | MBB, | ||
MachineBasicBlock::iterator | I | ||
) | const |
Adjust SP by Amount bytes.
Definition at line 79 of file XtensaInstrInfo.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::BuildMI(), llvm::MachineRegisterInfo::createVirtualRegister(), DL, llvm::MachineBasicBlock::end(), llvm::get(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getRegInfo(), I, llvm::RegState::Kill, loadImmediate(), and MBB.
Referenced by llvm::XtensaFrameLowering::emitEpilogue(), and llvm::XtensaFrameLowering::emitPrologue().
|
override |
Definition at line 330 of file XtensaInstrInfo.cpp.
References assert(), llvm::MachineBasicBlock::begin(), Cond, llvm::MachineOperand::CreateImm(), llvm::MachineBasicBlock::end(), llvm::MachineBasicBlock::eraseFromParent(), llvm::MachineOperand::getMBB(), I, isBranch(), llvm::MachineOperand::isMBB(), MBB, llvm::SmallVectorTemplateBase< T, bool >::push_back(), and TBB.
|
override |
Definition at line 108 of file XtensaInstrInfo.cpp.
References llvm::MachineInstrBuilder::addReg(), llvm::BuildMI(), contains(), DL, llvm::get(), llvm::getKillRegState(), MBB, MBBI, and llvm::report_fatal_error().
|
override |
Definition at line 263 of file XtensaInstrInfo.cpp.
References llvm_unreachable, and MI.
|
override |
Definition at line 192 of file XtensaInstrInfo.cpp.
References llvm::TargetMachine::getMCAsmInfo(), llvm::MachineFunction::getTarget(), and MI.
Referenced by insertBranch(), insertBranchAtInst(), insertConstBranchAtInst(), and removeBranch().
void XtensaInstrInfo::getLoadStoreOpcodes | ( | const TargetRegisterClass * | RC, |
unsigned & | LoadOpcode, | ||
unsigned & | StoreOpcode, | ||
int64_t | offset | ||
) | const |
Definition at line 147 of file XtensaInstrInfo.cpp.
References assert().
Referenced by loadRegFromStackSlot(), and storeRegToStackSlot().
|
inline |
Definition at line 44 of file XtensaInstrInfo.h.
Referenced by llvm::XtensaSubtarget::getRegisterInfo().
|
inline |
Definition at line 125 of file XtensaInstrInfo.h.
|
override |
Definition at line 440 of file XtensaInstrInfo.cpp.
References llvm::MachineInstrBuilder::addMBB(), llvm::BuildMI(), Cond, DL, llvm::MachineBasicBlock::end(), llvm::get(), getInstSizeInBytes(), insertBranchAtInst(), MBB, MI, and TBB.
unsigned XtensaInstrInfo::insertBranchAtInst | ( | MachineBasicBlock & | MBB, |
MachineBasicBlock::iterator | I, | ||
MachineBasicBlock * | TBB, | ||
ArrayRef< MachineOperand > | Cond, | ||
const DebugLoc & | DL, | ||
int * | BytesAdded | ||
) | const |
Definition at line 584 of file XtensaInstrInfo.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMBB(), llvm::MachineInstrBuilder::addReg(), assert(), llvm::BuildMI(), Cond, DL, llvm::get(), getInstSizeInBytes(), getReg(), I, MBB, MI, llvm::report_fatal_error(), and TBB.
Referenced by insertBranch().
unsigned XtensaInstrInfo::insertConstBranchAtInst | ( | MachineBasicBlock & | MBB, |
MachineInstr * | I, | ||
int64_t | offset, | ||
ArrayRef< MachineOperand > | Cond, | ||
DebugLoc | DL, | ||
int * | BytesAdded | ||
) | const |
Definition at line 529 of file XtensaInstrInfo.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), assert(), llvm::BuildMI(), Cond, DL, llvm::get(), getInstSizeInBytes(), getReg(), I, llvm_unreachable, MBB, and MI.
|
override |
Definition at line 462 of file XtensaInstrInfo.cpp.
References llvm::MachineInstr::addOperand(), llvm::MachineInstrBuilder::addReg(), assert(), llvm::MachineBasicBlock::back(), llvm::BuildMI(), llvm::CallingConv::C, llvm::XtensaConstantPoolMBB::Create(), llvm::MachineOperand::CreateCPI(), DL, llvm::XtensaRegisterInfo::eliminateFrameIndex(), llvm::MachineBasicBlock::empty(), llvm::MachineBasicBlock::end(), llvm::RegScavenger::enterBasicBlockEnd(), llvm::get(), llvm::MachineFunction::getConstantPool(), llvm::Function::getContext(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getInfo(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getRegInfo(), Idx, II, llvm::RegState::Kill, loadRegFromStackSlot(), MBB, MRI, llvm::MachineBasicBlock::pred_size(), llvm::report_fatal_error(), llvm::RegScavenger::scavengeRegisterBackwards(), llvm::RegScavenger::setRegUsed(), and storeRegToStackSlot().
bool XtensaInstrInfo::isBranch | ( | const MachineBasicBlock::iterator & | MI, |
SmallVectorImpl< MachineOperand > & | Cond, | ||
const MachineOperand *& | Target | ||
) | const |
Definition at line 644 of file XtensaInstrInfo.cpp.
References assert(), Cond, and MI.
Referenced by analyzeBranch(), and removeBranch().
Definition at line 295 of file XtensaInstrInfo.cpp.
References llvm::isIntN(), and llvm_unreachable.
|
override |
Definition at line 54 of file XtensaInstrInfo.cpp.
References MI.
Referenced by llvm::XtensaFrameLowering::emitEpilogue().
|
override |
Definition at line 66 of file XtensaInstrInfo.cpp.
References MI.
Referenced by llvm::XtensaFrameLowering::emitPrologue().
void XtensaInstrInfo::loadImmediate | ( | MachineBasicBlock & | MBB, |
MachineBasicBlock::iterator | MBBI, | ||
unsigned * | Reg, | ||
int64_t | Value | ||
) | const |
Definition at line 158 of file XtensaInstrInfo.cpp.
References llvm::MachineInstrBuilder::addConstantPoolIndex(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::BuildMI(), llvm::MachineRegisterInfo::createVirtualRegister(), DL, llvm::MachineBasicBlock::end(), llvm::get(), llvm::MachineFunction::getConstantPool(), llvm::MachineConstantPool::getConstantPoolIndex(), llvm::Function::getContext(), llvm::MachineFunction::getFunction(), llvm::Type::getInt32Ty(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getRegInfo(), High, Idx, llvm::Low, MBB, MBBI, and llvm::report_fatal_error().
Referenced by adjustStackPtr().
|
override |
Definition at line 135 of file XtensaInstrInfo.cpp.
References llvm::addFrameReference(), llvm::BuildMI(), DL, llvm::MachineBasicBlock::end(), llvm::get(), getLoadStoreOpcodes(), MBB, and MBBI.
Referenced by insertIndirectBranch().
|
override |
Definition at line 413 of file XtensaInstrInfo.cpp.
References llvm::MachineBasicBlock::begin(), Cond, llvm::MachineOperand::CreateImm(), llvm::MachineBasicBlock::end(), getInstSizeInBytes(), I, isBranch(), and MBB.
|
override |
Definition at line 204 of file XtensaInstrInfo.cpp.
References assert(), Cond, and llvm::report_fatal_error().
|
override |
Definition at line 123 of file XtensaInstrInfo.cpp.
References llvm::addFrameReference(), llvm::MachineInstrBuilder::addReg(), llvm::BuildMI(), DL, llvm::MachineBasicBlock::end(), llvm::get(), llvm::getKillRegState(), getLoadStoreOpcodes(), MBB, and MBBI.
Referenced by insertIndirectBranch(), and llvm::XtensaFrameLowering::spillCalleeSavedRegisters().