| LLVM 22.0.0git
    | 
#include "Target/RISCV/GISel/RISCVLegalizerInfo.h"
| Public Member Functions | |
| RISCVLegalizerInfo (const RISCVSubtarget &ST) | |
| bool | legalizeCustom (LegalizerHelper &Helper, MachineInstr &MI, LostDebugLocObserver &LocObserver) const override | 
| Called for instructions with the Custom LegalizationAction. | |
| bool | legalizeIntrinsic (LegalizerHelper &Helper, MachineInstr &MI) const override | 
| Public Member Functions inherited from llvm::LegalizerInfo | |
| virtual | ~LegalizerInfo ()=default | 
| const LegacyLegalizerInfo & | getLegacyLegalizerInfo () const | 
| LegacyLegalizerInfo & | getLegacyLegalizerInfo () | 
| unsigned | getOpcodeIdxForOpcode (unsigned Opcode) const | 
| unsigned | getActionDefinitionsIdx (unsigned Opcode) const | 
| void | verify (const MCInstrInfo &MII) const | 
| Perform simple self-diagnostic and assert if there is anything obviously wrong with the actions set up. | |
| const LegalizeRuleSet & | getActionDefinitions (unsigned Opcode) const | 
| Get the action definitions for the given opcode. | |
| LegalizeRuleSet & | getActionDefinitionsBuilder (unsigned Opcode) | 
| Get the action definition builder for the given opcode. | |
| LegalizeRuleSet & | getActionDefinitionsBuilder (std::initializer_list< unsigned > Opcodes) | 
| Get the action definition builder for the given set of opcodes. | |
| void | aliasActionDefinitions (unsigned OpcodeTo, unsigned OpcodeFrom) | 
| LegalizeActionStep | getAction (const LegalityQuery &Query) const | 
| Determine what action should be taken to legalize the described instruction. | |
| LegalizeActionStep | getAction (const MachineInstr &MI, const MachineRegisterInfo &MRI) const | 
| Determine what action should be taken to legalize the given generic instruction. | |
| bool | isLegal (const LegalityQuery &Query) const | 
| bool | isLegalOrCustom (const LegalityQuery &Query) const | 
| bool | isLegal (const MachineInstr &MI, const MachineRegisterInfo &MRI) const | 
| bool | isLegalOrCustom (const MachineInstr &MI, const MachineRegisterInfo &MRI) const | 
| virtual unsigned | getExtOpcodeForWideningConstant (LLT SmallTy) const | 
| Return the opcode (SEXT/ZEXT/ANYEXT) that should be performed while widening a constant of type SmallTy which targets can override. | |
Definition at line 26 of file RISCVLegalizerInfo.h.
| RISCVLegalizerInfo::RISCVLegalizerInfo | ( | const RISCVSubtarget & | ST | ) | 
Definition at line 76 of file RISCVLegalizerInfo.cpp.
References llvm::LegalizeRuleSet::clampScalar(), llvm::LegalizeRuleSet::customFor(), llvm::LegalizerInfo::getActionDefinitionsBuilder(), llvm::LegalizeRuleSet::lower(), llvm::LLT::pointer(), llvm::LLT::scalable_vector(), llvm::LLT::scalar(), typeIsLegalIntOrFPVec(), and llvm::LegalizeRuleSet::widenScalarToNextPow2().
| 
 | overridevirtual | 
Called for instructions with the Custom LegalizationAction.
Reimplemented from llvm::LegalizerInfo.
Definition at line 1384 of file RISCVLegalizerInfo.cpp.
References llvm::APFloat::bitcastToAPInt(), llvm::MachineIRBuilder::buildAnd(), llvm::MachineIRBuilder::buildConstant(), llvm::MachineIRBuilder::buildICmp(), llvm::MachineIRBuilder::buildInstr(), llvm::MachineIRBuilder::buildSExtInReg(), llvm::GISelChangeObserver::changedInstr(), llvm::GISelChangeObserver::changingInstr(), llvm::MachineOperand::CreateImm(), F, llvm::MCInstrInfo::get(), llvm::MachineFunction::getFunction(), llvm::getIConstantVRegValWithLookThrough(), llvm::MachineOperand::getImm(), llvm::MachineIRBuilder::getInsertPt(), llvm::MachineIRBuilder::getMBB(), llvm::MachineIRBuilder::getMRI(), getRISCVWOpcode(), llvm::LLT::getSizeInBits(), llvm::MachineIRBuilder::getTII(), llvm::ConstantInt::getValue(), llvm::CmpInst::ICMP_NE, llvm::LegalizerHelper::Legalized, llvm_unreachable, llvm::LegalizerHelper::lower(), llvm::LegalizerHelper::lowerAbsToMaxNeg(), llvm::LegalizerHelper::lowerConstant(), MI, llvm::LegalizerHelper::MIRBuilder, MRI, llvm::LegalizerHelper::Observer, llvm::APInt::rotr(), llvm::RISCVFPRndMode::RTZ, llvm::MachineIRBuilder::setInsertPt(), llvm::MachineOperand::setReg(), llvm::LegalizerHelper::widenScalarDst(), llvm::LegalizerHelper::widenScalarSrc(), and llvm::APInt::zext().
| 
 | overridevirtual | 
Reimplemented from llvm::LegalizerInfo.
Definition at line 736 of file RISCVLegalizerInfo.cpp.
References llvm::MachineIRBuilder::buildLoad(), llvm::MachineIRBuilder::buildStore(), llvm::cast(), llvm::GISelChangeObserver::changedInstr(), llvm::GISelChangeObserver::changingInstr(), DL, llvm::Function::getContext(), llvm::MachineIRBuilder::getDataLayout(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineIRBuilder::getMRI(), llvm::getTypeForLLT(), II, MI, llvm::LegalizerHelper::MIRBuilder, llvm::MachineMemOperand::MOLoad, llvm::MachineMemOperand::MOStore, MRI, llvm::LegalizerHelper::Observer, and llvm::LegalizerHelper::widenScalarSrc().