LLVM: llvm::MipsLegalizerInfo Class Reference (original) (raw)
This class provides legalization strategies. More...
#include "[Target/Mips/MipsLegalizerInfo.h](MipsLegalizerInfo%5F8h%5Fsource.html)"
Inheritance diagram for llvm::MipsLegalizerInfo:
| Public Member Functions | |
|---|---|
| MipsLegalizerInfo (const MipsSubtarget &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
Definition at line 68 of file MipsLegalizerInfo.cpp.
References assert(), CheckTy0Ty1MemSizeAlign(), CheckTyN(), llvm::LegalizeRuleSet::clampScalar(), llvm::LegacyLegalizerInfo::computeTables(), llvm::LLT::fixed_vector(), llvm::LegalizerInfo::getActionDefinitionsBuilder(), llvm::LegalizerInfo::getLegacyLegalizerInfo(), llvm::isPowerOf2_64(), isUnalignedMemmoryAccess(), llvm::LegalizeRuleSet::legalFor(), llvm::LegalizeRuleSet::legalForCartesianProduct(), llvm::LegalizeRuleSet::legalIf(), libcall, llvm::LegalizeRuleSet::libcallFor(), llvm::LegalizeRuleSet::libcallForCartesianProduct(), llvm::LegalizeRuleSet::lower(), llvm::LegalizeRuleSet::lowerFor(), llvm::LegalizeRuleSet::maxScalar(), llvm::LegalizeRuleSet::minScalar(), llvm::LegalityQuery::MMODescrs, llvm::LLT::pointer(), llvm::LLT::scalar(), Size, llvm::LegalityQuery::Types, and verify.
Member Function Documentation
◆ legalizeCustom()
Called for instructions with the Custom LegalizationAction.
Reimplemented from llvm::LegalizerInfo.
Definition at line 333 of file MipsLegalizerInfo.cpp.
References assert(), llvm::bit_cast(), llvm::MachineIRBuilder::buildAnyExt(), llvm::MachineIRBuilder::buildConstant(), llvm::MachineIRBuilder::buildFConstant(), llvm::MachineIRBuilder::buildFPTrunc(), llvm::MachineIRBuilder::buildFSub(), llvm::MachineIRBuilder::buildLoad(), llvm::MachineIRBuilder::buildLShr(), llvm::MachineIRBuilder::buildMergeLikeInstr(), llvm::MachineIRBuilder::buildPtrAdd(), llvm::MachineIRBuilder::buildStore(), llvm::MachineIRBuilder::buildTrunc(), llvm::MachineIRBuilder::buildUnmerge(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineIRBuilder::getMF(), llvm::MachineIRBuilder::getMRI(), llvm::MachineInstrBuilder::getReg(), llvm::isPowerOf2_64(), llvm::Log2_32(), Merge, MI, llvm::LegalizerHelper::MIRBuilder, MRI, llvm::LLT::scalar(), and Size.
◆ 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 507 of file MipsLegalizerInfo.cpp.
References llvm::MachineIRBuilder::buildLoad(), llvm::MachineIRBuilder::buildStore(), llvm::cast(), getIntrinsicID(), MI, llvm::LegalizerHelper::MIRBuilder, llvm::MachineMemOperand::MOLoad, llvm::MachineMemOperand::MOStore, MSA2OpIntrinsicToGeneric(), MSA3OpIntrinsicToGeneric(), llvm::LLT::pointer(), and SelectMSA3OpIntrinsic().
The documentation for this class was generated from the following files:
- lib/Target/Mips/MipsLegalizerInfo.h
- lib/Target/Mips/MipsLegalizerInfo.cpp