LLVM API Documentation
#include "SystemZInstrInfo.h"
#include "SystemZInstrBuilder.h"
#include "SystemZTargetMachine.h"
#include "llvm/CodeGen/LiveVariables.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "SystemZGenInstrInfo.inc"
Go to the source code of this file.
Defines | |
#define | GET_INSTRINFO_CTOR_DTOR |
#define | GET_INSTRMAP_INFO |
Functions | |
static uint64_t | allOnes (unsigned int Count) |
static bool | isHighReg (unsigned int Reg) |
static int | isSimpleMove (const MachineInstr *MI, int &FrameIndex, unsigned Flag) |
static MachineInstr * | getDef (unsigned Reg, const MachineRegisterInfo *MRI) |
static bool | isShift (MachineInstr *MI, int Opcode, int64_t Imm) |
static void | eraseIfDead (MachineInstr *MI, const MachineRegisterInfo *MRI) |
static bool | removeIPMBasedCompare (MachineInstr *Compare, unsigned SrcReg, const MachineRegisterInfo *MRI, const TargetRegisterInfo *TRI) |
static unsigned | getConditionalMove (unsigned Opcode) |
static bool | isSimpleBD12Move (const MachineInstr *MI, unsigned Flag) |
static LogicOp | interpretAndImmediate (unsigned Opcode) |
static MachineInstr * | finishConvertToThreeAddress (MachineInstr *OldMI, MachineInstr *NewMI, LiveVariables *LV) |
static bool | isStringOfOnes (uint64_t Mask, unsigned &LSB, unsigned &Length) |
#define GET_INSTRINFO_CTOR_DTOR |
Definition at line 22 of file SystemZInstrInfo.cpp.
#define GET_INSTRMAP_INFO |
Definition at line 23 of file SystemZInstrInfo.cpp.
Definition at line 27 of file SystemZInstrInfo.cpp.
Referenced by llvm::SystemZInstrInfo::convertToThreeAddress(), llvm::SystemZInstrInfo::isRxSBGMask(), and llvm::APInt::magicu().
static void eraseIfDead | ( | MachineInstr * | MI, |
const MachineRegisterInfo * | MRI | ||
) | [static] |
Definition at line 433 of file SystemZInstrInfo.cpp.
References llvm::MachineInstr::eraseFromParent(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), and llvm::MachineRegisterInfo::use_nodbg_empty().
Referenced by removeIPMBasedCompare().
static MachineInstr* finishConvertToThreeAddress | ( | MachineInstr * | OldMI, |
MachineInstr * | NewMI, | ||
LiveVariables * | LV | ||
) | [static] |
Definition at line 659 of file SystemZInstrInfo.cpp.
References llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), I, llvm::MachineOperand::isKill(), llvm::MachineOperand::isReg(), and llvm::LiveVariables::replaceKillInstruction().
Referenced by llvm::SystemZInstrInfo::convertToThreeAddress().
static unsigned getConditionalMove | ( | unsigned | Opcode | ) | [static] |
Definition at line 498 of file SystemZInstrInfo.cpp.
Referenced by llvm::SystemZInstrInfo::isPredicable(), and llvm::SystemZInstrInfo::PredicateInstruction().
static MachineInstr* getDef | ( | unsigned | Reg, |
const MachineRegisterInfo * | MRI | ||
) | [static] |
Definition at line 418 of file SystemZInstrInfo.cpp.
References llvm::MachineRegisterInfo::getUniqueVRegDef(), and llvm::TargetRegisterInfo::isPhysicalRegister().
Referenced by llvm::UnOpInit::Fold(), llvm::MemoryDependenceAnalysis::getPointerDependencyFrom(), and removeIPMBasedCompare().
static LogicOp interpretAndImmediate | ( | unsigned | Opcode | ) | [static] |
Definition at line 642 of file SystemZInstrInfo.cpp.
Referenced by llvm::SystemZInstrInfo::convertToThreeAddress().
Definition at line 33 of file SystemZInstrInfo.cpp.
References contains().
Referenced by llvm::SystemZInstrInfo::expandPostRAPseudo().
static bool isShift | ( | MachineInstr * | MI, |
int | Opcode, | ||
int64_t | Imm | ||
) | [static] |
Definition at line 426 of file SystemZInstrInfo.cpp.
References llvm::MachineOperand::getImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), and llvm::MachineOperand::getReg().
Referenced by removeIPMBasedCompare().
static bool isSimpleBD12Move | ( | const MachineInstr * | MI, |
unsigned | Flag | ||
) | [static] |
Definition at line 623 of file SystemZInstrInfo.cpp.
References llvm::MachineInstr::getDesc(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), and llvm::MCInstrDesc::TSFlags.
Referenced by llvm::SystemZInstrInfo::foldMemoryOperandImpl().
static int isSimpleMove | ( | const MachineInstr * | MI, |
int & | FrameIndex, | ||
unsigned | Flag | ||
) | [static] |
Definition at line 193 of file SystemZInstrInfo.cpp.
References llvm::MachineInstr::getDesc(), llvm::MachineOperand::getImm(), llvm::MachineOperand::getIndex(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineOperand::isFI(), and llvm::MCInstrDesc::TSFlags.
Referenced by llvm::SystemZInstrInfo::isLoadFromStackSlot(), and llvm::SystemZInstrInfo::isStoreToStackSlot().
static bool isStringOfOnes | ( | uint64_t | Mask, |
unsigned & | LSB, | ||
unsigned & | Length | ||
) | [static] |
Definition at line 1167 of file SystemZInstrInfo.cpp.
References llvm::findFirstSet().
Referenced by llvm::SystemZInstrInfo::isRxSBGMask().
static bool removeIPMBasedCompare | ( | MachineInstr * | Compare, |
unsigned | SrcReg, | ||
const MachineRegisterInfo * | MRI, | ||
const TargetRegisterInfo * | TRI | ||
) | [static] |
Definition at line 442 of file SystemZInstrInfo.cpp.
References llvm::MCID::Compare, llvm::MachineInstr::eraseFromParent(), eraseIfDead(), getDef(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::getParent(), llvm::MachineOperand::getReg(), llvm::SystemZISD::IPM, llvm::SystemZ::IPM_CC, isShift(), llvm::MachineInstr::modifiesRegister(), and llvm::ISD::SRL.
Referenced by llvm::SystemZInstrInfo::optimizeCompareInstr().