LLVM 20.0.0git
|
#include "Target/ARM/ARMLegalizerInfo.h"
Public Member Functions | |
ARMLegalizerInfo (const ARMSubtarget &ST) | |
bool | legalizeCustom (LegalizerHelper &Helper, MachineInstr &MI, LostDebugLocObserver &LocObserver) const override |
Called for instructions with the Custom LegalizationAction. | |
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 bool | legalizeCustom (LegalizerHelper &Helper, MachineInstr &MI, LostDebugLocObserver &LocObserver) const |
Called for instructions with the Custom LegalizationAction. | |
virtual bool | legalizeIntrinsic (LegalizerHelper &Helper, MachineInstr &MI) 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 ARMLegalizerInfo.h.
ARMLegalizerInfo::ARMLegalizerInfo | ( | const ARMSubtarget & | ST | ) |
Definition at line 32 of file ARMLegalizerInfo.cpp.
References AEABI(), llvm::LegalizeRuleSet::alwaysLegal(), llvm::LegalizeRuleSet::clampScalar(), llvm::LegalizeRuleSet::customFor(), llvm::LegalizeRuleSet::customForCartesianProduct(), llvm::LegalizerInfo::getActionDefinitionsBuilder(), llvm::LegalizerInfo::getLegacyLegalizerInfo(), llvm::LegalizeRuleSet::legalFor(), llvm::LegalizeRuleSet::legalForCartesianProduct(), llvm::LegalizeRuleSet::legalForTypesWithMemDesc(), libcall, llvm::LegalizeRuleSet::libcallFor(), llvm::LegalizeRuleSet::lower(), llvm::LegalizeRuleSet::lowerFor(), llvm::LegalizeRuleSet::maxScalar(), llvm::LLT::pointer(), llvm::LLT::scalar(), and verify.
|
overridevirtual |
Called for instructions with the Custom LegalizationAction.
Reimplemented from llvm::LegalizerInfo.
Definition at line 337 of file ARMLegalizerInfo.cpp.
References assert(), llvm::CmpInst::BAD_ICMP_PREDICATE, llvm::MachineIRBuilder::buildAnd(), llvm::MachineIRBuilder::buildConstant(), llvm::MachineIRBuilder::buildGetFPEnv(), llvm::MachineIRBuilder::buildICmp(), llvm::MachineIRBuilder::buildOr(), llvm::MachineIRBuilder::buildSetFPEnv(), llvm::MachineIRBuilder::buildTrunc(), llvm::createLibcall(), llvm::CmpInst::FCMP_FALSE, llvm::CmpInst::FCMP_TRUE, llvm::ARM::FPStatusBits, llvm::StructType::get(), llvm::Function::getContext(), llvm::Type::getDoubleTy(), llvm::Type::getFloatTy(), llvm::MachineFunction::getFunction(), llvm::Type::getInt32Ty(), llvm::MachineIRBuilder::getMF(), llvm::MachineIRBuilder::getMRI(), getReg(), llvm::CmpInst::isIntPredicate(), llvm::LegalizerHelper::Legalized, llvm::LegalizeActions::Libcall, MI, llvm::LegalizerHelper::MIRBuilder, MRI, Results, RetTy, llvm::LLT::scalar(), llvm::Function::size(), and Size.