LLVM  3.7.0
Classes | Namespaces | Functions | Variables
HexagonMCInstrInfo.h File Reference
#include "llvm/MC/MCInst.h"
Include dependency graph for HexagonMCInstrInfo.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  llvm::DuplexCandidate
 

Namespaces

 llvm
 Compute iterated dominance frontiers using a linear time algorithm.
 
 llvm::HexagonII
 HexagonII - This namespace holds all of the target specific flags that instruction info tracks.
 
 llvm::HexagonMCInstrInfo
 

Functions

iterator_range
< MCInst::const_iterator > 
llvm::HexagonMCInstrInfo::bundleInstructions (MCInst const &MCI)
 
size_t llvm::HexagonMCInstrInfo::bundleSize (MCInst const &MCI)
 
void llvm::HexagonMCInstrInfo::clampExtended (MCInstrInfo const &MCII, MCInst &MCI)
 
MCInst * llvm::HexagonMCInstrInfo::deriveDuplex (MCContext &Context, unsigned iClass, MCInst const &inst0, MCInst const &inst1)
 
MCInst llvm::HexagonMCInstrInfo::deriveSubInst (MCInst const &Inst)
 
MCInst constllvm::HexagonMCInstrInfo::extenderForIndex (MCInst const &MCB, size_t Index)
 
HexagonII::MemAccessSize llvm::HexagonMCInstrInfo::getAccessSize (MCInstrInfo const &MCII, MCInst const &MCI)
 
unsigned llvm::HexagonMCInstrInfo::getBitCount (MCInstrInfo const &MCII, MCInst const &MCI)
 
unsigned short llvm::HexagonMCInstrInfo::getCExtOpNum (MCInstrInfo const &MCII, MCInst const &MCI)
 
MCInstrDesc constllvm::HexagonMCInstrInfo::getDesc (MCInstrInfo const &MCII, MCInst const &MCI)
 
unsigned llvm::HexagonMCInstrInfo::getDuplexCandidateGroup (MCInst const &MI)
 
SmallVector< DuplexCandidate, 8 > llvm::HexagonMCInstrInfo::getDuplexPossibilties (MCInstrInfo const &MCII, MCInst const &MCB)
 
unsigned short llvm::HexagonMCInstrInfo::getExtendableOp (MCInstrInfo const &MCII, MCInst const &MCI)
 
MCOperand constllvm::HexagonMCInstrInfo::getExtendableOperand (MCInstrInfo const &MCII, MCInst const &MCI)
 
unsigned llvm::HexagonMCInstrInfo::getExtentAlignment (MCInstrInfo const &MCII, MCInst const &MCI)
 
unsigned llvm::HexagonMCInstrInfo::getExtentBits (MCInstrInfo const &MCII, MCInst const &MCI)
 
int llvm::HexagonMCInstrInfo::getMaxValue (MCInstrInfo const &MCII, MCInst const &MCI)
 
int llvm::HexagonMCInstrInfo::getMinValue (MCInstrInfo const &MCII, MCInst const &MCI)
 
char constllvm::HexagonMCInstrInfo::getName (MCInstrInfo const &MCII, MCInst const &MCI)
 
unsigned short llvm::HexagonMCInstrInfo::getNewValueOp (MCInstrInfo const &MCII, MCInst const &MCI)
 
MCOperand constllvm::HexagonMCInstrInfo::getNewValueOperand (MCInstrInfo const &MCII, MCInst const &MCI)
 
int llvm::HexagonMCInstrInfo::getSubTarget (MCInstrInfo const &MCII, MCInst const &MCI)
 
unsigned llvm::HexagonMCInstrInfo::getType (MCInstrInfo const &MCII, MCInst const &MCI)
 
unsigned llvm::HexagonMCInstrInfo::getUnits (MCInstrInfo const &MCII, MCSubtargetInfo const &STI, MCInst const &MCI)
 Return the slots used by the insn. More...
 
bool llvm::HexagonMCInstrInfo::hasExtenderForIndex (MCInst const &MCB, size_t Index)
 
bool llvm::HexagonMCInstrInfo::hasImmExt (MCInst const &MCI)
 
bool llvm::HexagonMCInstrInfo::hasNewValue (MCInstrInfo const &MCII, MCInst const &MCI)
 
MCInst constllvm::HexagonMCInstrInfo::instruction (MCInst const &MCB, size_t Index)
 
bool llvm::HexagonMCInstrInfo::isBundle (MCInst const &MCI)
 
bool llvm::HexagonMCInstrInfo::isCanon (MCInstrInfo const &MCII, MCInst const &MCI)
 
unsigned llvm::HexagonMCInstrInfo::iClassOfDuplexPair (unsigned Ga, unsigned Gb)
 
bool llvm::HexagonMCInstrInfo::isConstExtended (MCInstrInfo const &MCII, MCInst const &MCI)
 
bool llvm::HexagonMCInstrInfo::isDblRegForSubInst (unsigned Reg)
 
bool llvm::HexagonMCInstrInfo::isDuplex (MCInstrInfo const &MCII, MCInst const &MCI)
 
bool llvm::HexagonMCInstrInfo::isDuplexPair (MCInst const &MIa, MCInst const &MIb)
 Symmetrical. See if these two instructions are fit for duplex pair. More...
 
bool llvm::HexagonMCInstrInfo::isDuplexPairMatch (unsigned Ga, unsigned Gb)
 
bool llvm::HexagonMCInstrInfo::isExtendable (MCInstrInfo const &MCII, MCInst const &MCI)
 
bool llvm::HexagonMCInstrInfo::isExtended (MCInstrInfo const &MCII, MCInst const &MCI)
 
bool llvm::HexagonMCInstrInfo::isFloat (MCInstrInfo const &MCII, MCInst const &MCI)
 Return whether it is a floating-point insn. More...
 
bool llvm::HexagonMCInstrInfo::isImmext (MCInst const &MCI)
 
bool llvm::HexagonMCInstrInfo::isInnerLoop (MCInst const &MCI)
 
bool llvm::HexagonMCInstrInfo::isIntReg (unsigned Reg)
 
bool llvm::HexagonMCInstrInfo::isIntRegForSubInst (unsigned Reg)
 
bool llvm::HexagonMCInstrInfo::isNewValue (MCInstrInfo const &MCII, MCInst const &MCI)
 
bool llvm::HexagonMCInstrInfo::isOperandExtended (MCInstrInfo const &MCII, MCInst const &MCI, unsigned short OperandNum)
 
bool llvm::HexagonMCInstrInfo::isOrderedDuplexPair (MCInstrInfo const &MCII, MCInst const &MIa, bool ExtendedA, MCInst const &MIb, bool ExtendedB, bool bisReversable)
 non-Symmetrical. See if these two instructions are fit for duplex pair. More...
 
bool llvm::HexagonMCInstrInfo::isOuterLoop (MCInst const &MCI)
 
bool llvm::HexagonMCInstrInfo::isPredicated (MCInstrInfo const &MCII, MCInst const &MCI)
 
bool llvm::HexagonMCInstrInfo::isPredicatedTrue (MCInstrInfo const &MCII, MCInst const &MCI)
 
bool llvm::HexagonMCInstrInfo::isPredReg (unsigned Reg)
 
bool llvm::HexagonMCInstrInfo::isPrefix (MCInstrInfo const &MCII, MCInst const &MCI)
 
bool llvm::HexagonMCInstrInfo::isSolo (MCInstrInfo const &MCII, MCInst const &MCI)
 
bool llvm::HexagonMCInstrInfo::isSoloAX (MCInstrInfo const &MCII, MCInst const &MCI)
 Return whether the insn can be packaged only with A and X-type insns. More...
 
bool llvm::HexagonMCInstrInfo::isSoloAin1 (MCInstrInfo const &MCII, MCInst const &MCI)
 Return whether the insn can be packaged only with an A-type insn in slot #1. More...
 
void llvm::HexagonMCInstrInfo::padEndloop (MCInst &MCI)
 
bool llvm::HexagonMCInstrInfo::prefersSlot3 (MCInstrInfo const &MCII, MCInst const &MCI)
 
void llvm::HexagonMCInstrInfo::replaceDuplex (MCContext &Context, MCInst &MCB, DuplexCandidate Candidate)
 
void llvm::HexagonMCInstrInfo::setInnerLoop (MCInst &MCI)
 
void llvm::HexagonMCInstrInfo::setOuterLoop (MCInst &MCI)
 
bool llvm::HexagonMCInstrInfo::subInstWouldBeExtended (MCInst const &potentialDuplex)
 
void llvm::HexagonMCInstrInfo::tryCompound (MCInstrInfo const &MCII, MCContext &Context, MCInst &MCI)
 tryCompound - Given a bundle check for compound insns when one is found update the contents fo the bundle with the compound insn. More...
 

Variables

size_t const llvm::HexagonMCInstrInfo::innerLoopOffset = 0
 
int64_t const llvm::HexagonMCInstrInfo::innerLoopMask = 1 << innerLoopOffset
 
size_t const llvm::HexagonMCInstrInfo::outerLoopOffset = 1
 
int64_t const llvm::HexagonMCInstrInfo::outerLoopMask = 1 << outerLoopOffset
 
size_t const llvm::HexagonMCInstrInfo::bundleInstructionsOffset = 1