LLVM: llvm::RISCVLegalizerInfo Class Reference (original) (raw)
#include "[Target/RISCV/GISel/RISCVLegalizerInfo.h](RISCVLegalizerInfo%5F8h%5Fsource.html)"
Inheritance diagram for llvm::RISCVLegalizerInfo:
| 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. |
Detailed Description
Constructor & Destructor Documentation
Member Function Documentation
◆ legalizeCustom()
Called for instructions with the Custom LegalizationAction.
Reimplemented from llvm::LegalizerInfo.
Definition at line 1387 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().
◆ legalizeIntrinsic()
Returns
true if MI is either legal or has been legalized and false if not legal. Return true if MI is either legal or has been legalized and false if not legal.
Reimplemented from llvm::LegalizerInfo.
Definition at line 739 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().
The documentation for this class was generated from the following files:
- lib/Target/RISCV/GISel/RISCVLegalizerInfo.h
- lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp