LLVM: llvm::RISCVMatInt Namespace Reference (original) (raw)

Enumerations
enum OpndKind { RegImm, Imm, RegReg, RegX0 }
Functions
InstSeq generateInstSeq (int64_t Val, const MCSubtargetInfo &STI)
void generateMCInstSeq (int64_t Val, const MCSubtargetInfo &STI, MCRegister DestReg, SmallVectorImpl< MCInst > &Insts)
InstSeq generateTwoRegInstSeq (int64_t Val, const MCSubtargetInfo &STI, unsigned &ShiftAmt, unsigned &AddOpc)
int getIntMatCost (const APInt &Val, unsigned Size, const MCSubtargetInfo &STI, bool CompressionCost, bool FreeZeroes)

InstSeq

OpndKind

Enumerator
RegImm
Imm
RegReg
RegX0

Definition at line 22 of file RISCVMatInt.h.

generateInstSeq()

Definition at line 283 of file RISCVMatInt.cpp.

References assert(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::countr_zero(), llvm::SmallVectorImpl< T >::emplace_back(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::SmallVectorImpl< T >::erase(), extractRotateInfo(), llvm::SmallVectorTemplateCommon< T, typename >::front(), generateInstSeqImpl(), generateInstSeqLeadingZeros(), llvm::getImm(), getOpcode(), llvm::MCSubtargetInfo::hasFeature(), llvm::Hi, llvm::isInt(), llvm::Lo, Opc, llvm::popcount(), llvm::rotl(), llvm::SignExtend64(), and llvm::SmallVectorTemplateCommon< T, typename >::size().

Referenced by generateMCInstSeq(), generateTwoRegInstSeq(), getIntMatCost(), lowerConstant(), llvm::RISCVInstrInfo::movImm(), selectConstantAddr(), selectImm(), and llvm::RISCVTargetLowering::shouldConvertConstantLoadToIntImm().

generateMCInstSeq()

Definition at line 495 of file RISCVMatInt.cpp.

References llvm::MCInstBuilder::addImm(), llvm::MCInstBuilder::addReg(), generateInstSeq(), llvm::RISCVMatInt::Inst::getImm(), llvm::RISCVMatInt::Inst::getOpcode(), llvm::RISCVMatInt::Inst::getOpndKind(), Imm, llvm::SmallVectorTemplateBase< T, bool >::push_back(), RegImm, RegReg, and RegX0.

generateTwoRegInstSeq()

getIntMatCost()