LLVM API Documentation
#include <SystemZInstrInfo.h>
Definition at line 113 of file SystemZInstrInfo.h.
|
explicit |
Definition at line 43 of file SystemZInstrInfo.cpp.
|
virtual |
Definition at line 241 of file SystemZInstrInfo.cpp.
References llvm::MachineBasicBlock::begin(), llvm::MCID::Branch, llvm::SystemZII::BranchNormal, llvm::SystemZII::Branch::CCMask, llvm::SystemZ::CCMASK_ANY, llvm::SystemZII::Branch::CCValid, llvm::SmallVectorImpl< T >::clear(), llvm::MachineOperand::CreateImm(), llvm::SmallVectorBase::empty(), llvm::MachineBasicBlock::end(), llvm::MachineBasicBlock::eraseFromParent(), getBranchInfo(), llvm::MachineOperand::getMBB(), I, llvm::MachineBasicBlock::isLayoutSuccessor(), llvm::MachineOperand::isMBB(), llvm::next(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::SmallVectorTemplateCommon< T >::size(), llvm::SystemZII::Branch::Target, and llvm::SystemZII::Branch::Type.
bool SystemZInstrInfo::analyzeCompare | ( | const MachineInstr * | MI, |
unsigned & | SrcReg, | ||
unsigned & | SrcReg2, | ||
int & | Mask, | ||
int & | Value | ||
) | const |
Definition at line 399 of file SystemZInstrInfo.cpp.
References llvm::MachineOperand::getImm(), llvm::MachineInstr::getNumExplicitOperands(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineInstr::isCompare(), llvm::MachineOperand::isImm(), and llvm::MachineOperand::isReg().
|
virtual |
Definition at line 674 of file SystemZInstrInfo.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addOperand(), llvm::MachineInstrBuilder::addReg(), allOnes(), llvm::APIntOps::And(), llvm::BuildMI(), llvm::MachineRegisterInfo::constrainRegClass(), llvm::TargetRegisterClass::contains(), finishConvertToThreeAddress(), llvm::MachineInstr::getDebugLoc(), llvm::MachineOperand::getImm(), llvm::getKillRegState(), llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::getParent(), llvm::MachineBasicBlock::getParent(), llvm::MachineOperand::getReg(), llvm::MachineRegisterInfo::getRegClass(), llvm::MachineFunction::getRegInfo(), llvm::MachineOperand::getSubReg(), llvm::SystemZTargetMachine::getSubtargetImpl(), llvm::SystemZSubtarget::hasDistinctOps(), I, interpretAndImmediate(), llvm::MachineOperand::isKill(), isRxSBGMask(), llvm::TargetRegisterInfo::isVirtualRegister(), and MRI.
|
virtual |
Definition at line 553 of file SystemZInstrInfo.cpp.
References llvm::MachineInstrBuilder::addReg(), llvm::BuildMI(), llvm::getKillRegState(), llvm::MipsISD::LDR, and llvm_unreachable.
|
virtual |
Definition at line 872 of file SystemZInstrInfo.cpp.
References llvm::HexagonISD::ADJDYNALLOC, llvm::CallingConv::C, CFI, isHighReg(), llvm::A64DB::LD, and llvm::A64DB::ST.
|
virtual |
Definition at line 747 of file SystemZInstrInfo.cpp.
References llvm::MachineInstrBuilder::addFrameIndex(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMemOperand(), llvm::MachineInstrBuilder::addOperand(), llvm::MachineInstrBuilder::addReg(), llvm::BuildMI(), llvm::SystemZII::getAccessSize(), llvm::MachineInstr::getDebugLoc(), llvm::MachineFunction::getFrameInfo(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getNumExplicitOperands(), llvm::MachineFrameInfo::getObjectSize(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineRegisterInfo::getRegClass(), llvm::MachineFunction::getRegInfo(), llvm::MachineMemOperand::getSize(), llvm::SystemZII::HasIndex, llvm::MachineInstr::hasOneMemOperand(), I, llvm::isInt< 8 >(), isSimpleBD12Move(), llvm::MachineMemOperand::isVolatile(), llvm::A64DB::LD, llvm::MachineInstr::memoperands_begin(), llvm::SystemZISD::MVC, llvm::SystemZII::SimpleBDXLoad, llvm::SystemZII::SimpleBDXStore, llvm::SmallVectorTemplateCommon< T, typename >::size(), and llvm::MCInstrDesc::TSFlags.
|
virtual |
Definition at line 865 of file SystemZInstrInfo.cpp.
SystemZII::Branch SystemZInstrInfo::getBranchInfo | ( | const MachineInstr * | MI | ) | const |
Definition at line 1041 of file SystemZInstrInfo.cpp.
References llvm::ISD::BR, llvm::MCID::Branch, llvm::SystemZII::BranchC, llvm::SystemZII::BranchCG, llvm::SystemZII::BranchCL, llvm::SystemZII::BranchCLG, llvm::SystemZII::BranchCT, llvm::SystemZII::BranchCTG, llvm::SystemZII::BranchNormal, llvm::SystemZ::CCMASK_ANY, llvm::SystemZ::CCMASK_CMP_NE, llvm::SystemZ::CCMASK_ICMP, llvm::MachineOperand::getImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), and llvm_unreachable.
Referenced by AnalyzeBranch(), and RemoveBranch().
unsigned SystemZInstrInfo::getCompareAndBranch | ( | unsigned | Opcode, |
const MachineInstr * | MI = 0 |
||
) | const |
Definition at line 1206 of file SystemZInstrInfo.cpp.
References llvm::MachineOperand::getImm(), llvm::MachineInstr::getOperand(), llvm::isInt< 8 >(), and llvm::isUInt< 8 >().
uint64_t SystemZInstrInfo::getInstSizeInBytes | ( | const MachineInstr * | MI | ) | const |
Definition at line 1031 of file SystemZInstrInfo.cpp.
References llvm::MachineInstr::getDesc(), llvm::TargetMachine::getMCAsmInfo(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::getParent(), llvm::MachineBasicBlock::getParent(), llvm::MCInstrDesc::getSize(), llvm::MachineOperand::getSymbolName(), llvm::MachineFunction::getTarget(), and llvm::TargetOpcode::INLINEASM.
Definition at line 1148 of file SystemZInstrInfo.cpp.
References llvm::MipsISD::LDR, and llvm::A64CC::LT.
void SystemZInstrInfo::getLoadStoreOpcodes | ( | const TargetRegisterClass * | RC, |
unsigned & | LoadOpcode, | ||
unsigned & | StoreOpcode | ||
) | const |
Definition at line 1088 of file SystemZInstrInfo.cpp.
References llvm::A64DB::LD, llvm::A64CC::LE, llvm_unreachable, and llvm::A64DB::ST.
Referenced by loadRegFromStackSlot(), and storeRegToStackSlot().
Definition at line 1121 of file SystemZInstrInfo.cpp.
References llvm::SystemZII::Has20BitOffset, llvm::SystemZII::Is128Bit, and llvm::MCInstrDesc::TSFlags.
Referenced by llvm::SystemZRegisterInfo::eliminateFrameIndex(), and llvm::SystemZFrameLowering::emitEpilogue().
|
inline |
Definition at line 210 of file SystemZInstrInfo.h.
Referenced by llvm::SystemZTargetMachine::getRegisterInfo().
|
virtual |
Definition at line 363 of file SystemZInstrInfo.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMBB(), llvm::BuildMI(), llvm::SmallVectorBase::empty(), and llvm::SmallVectorTemplateCommon< T >::size().
|
virtual |
Definition at line 206 of file SystemZInstrInfo.cpp.
References isSimpleMove(), and llvm::SystemZII::SimpleBDXLoad.
|
virtual |
Definition at line 506 of file SystemZInstrInfo.cpp.
References getConditionalMove(), llvm::MachineInstr::getOpcode(), llvm::SystemZTargetMachine::getSubtargetImpl(), and llvm::SystemZSubtarget::hasLoadStoreOnCond().
|
virtual |
Definition at line 515 of file SystemZInstrInfo.cpp.
|
virtual |
Definition at line 523 of file SystemZInstrInfo.cpp.
bool SystemZInstrInfo::isRxSBGMask | ( | uint64_t | Mask, |
unsigned | BitSize, | ||
unsigned & | Start, | ||
unsigned & | End | ||
) | const |
Definition at line 1178 of file SystemZInstrInfo.cpp.
References allOnes(), and isStringOfOnes().
Referenced by convertToThreeAddress().
|
virtual |
Definition at line 216 of file SystemZInstrInfo.cpp.
References llvm::MachineFunction::getFrameInfo(), llvm::MachineOperand::getImm(), llvm::MachineOperand::getIndex(), llvm::MachineFrameInfo::getObjectSize(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::getParent(), llvm::MachineBasicBlock::getParent(), llvm::MachineOperand::isFI(), and llvm::SystemZISD::MVC.
|
virtual |
Definition at line 211 of file SystemZInstrInfo.cpp.
References isSimpleMove(), and llvm::SystemZII::SimpleBDXStore.
void SystemZInstrInfo::loadImmediate | ( | MachineBasicBlock & | MBB, |
MachineBasicBlock::iterator | MBBI, | ||
unsigned | Reg, | ||
uint64_t | Value | ||
) | const |
Definition at line 1230 of file SystemZInstrInfo.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::BuildMI(), llvm::MachineBasicBlock::end(), llvm::SystemZ::isImmLH(), llvm::SystemZ::isImmLL(), llvm::isInt< 16 >(), and llvm::isInt< 32 >().
Referenced by llvm::SystemZRegisterInfo::eliminateFrameIndex().
|
virtual |
Definition at line 606 of file SystemZInstrInfo.cpp.
References llvm::addFrameReference(), llvm::BuildMI(), llvm::MachineBasicBlock::end(), and getLoadStoreOpcodes().
bool SystemZInstrInfo::optimizeCompareInstr | ( | MachineInstr * | CmpInstr, |
unsigned | SrcReg, | ||
unsigned | SrcReg2, | ||
int | Mask, | ||
int | Value, | ||
const MachineRegisterInfo * | MRI | ||
) | const |
Definition at line 483 of file SystemZInstrInfo.cpp.
References llvm::MachineInstr::getDesc(), llvm::SystemZTargetMachine::getRegisterInfo(), llvm::SystemZII::IsLogical, removeIPMBasedCompare(), and llvm::MCInstrDesc::TSFlags.
|
virtual |
Definition at line 533 of file SystemZInstrInfo.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), getConditionalMove(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getParent(), llvm::MachineBasicBlock::getParent(), llvm::SystemZTargetMachine::getSubtargetImpl(), llvm::SystemZSubtarget::hasLoadStoreOnCond(), llvm::RegState::Implicit, llvm::A64CC::MI, llvm::MachineInstr::setDesc(), and llvm::SmallVectorTemplateCommon< T >::size().
|
virtual |
Definition at line 333 of file SystemZInstrInfo.cpp.
References llvm::MachineBasicBlock::begin(), llvm::MachineBasicBlock::end(), getBranchInfo(), I, llvm::MachineOperand::isMBB(), and llvm::SystemZII::Branch::Target.
|
virtual |
Definition at line 356 of file SystemZInstrInfo.cpp.
References llvm::SmallVectorTemplateCommon< T >::size().
|
virtual |
Definition at line 589 of file SystemZInstrInfo.cpp.
References llvm::addFrameReference(), llvm::BuildMI(), llvm::MachineBasicBlock::end(), llvm::getKillRegState(), and getLoadStoreOpcodes().