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: