|
LLVM 24.0.0git
|
#include "SIFoldOperands.h"#include "AMDGPU.h"#include "GCNSubtarget.h"#include "MCTargetDesc/AMDGPUMCTargetDesc.h"#include "SIInstrInfo.h"#include "SIMachineFunctionInfo.h"#include "SIRegisterInfo.h"#include "llvm/ADT/DepthFirstIterator.h"#include "llvm/CodeGen/MachineFunction.h"#include "llvm/CodeGen/MachineFunctionPass.h"#include "llvm/CodeGen/MachineLoopInfo.h"#include "llvm/CodeGen/MachineOperand.h"#include "llvm/CodeGen/RegisterClassInfo.h"#include "llvm/InitializePasses.h"Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "si-fold-operands" |
Variables | |
| DEBUG_TYPE | |
| SI Fold | Operands |
| SI Fold | false |
| #define DEBUG_TYPE "si-fold-operands" |
Definition at line 26 of file SIFoldOperands.cpp.
|
static |
Definition at line 799 of file SIFoldOperands.cpp.
References llvm::dbgs(), LLVM_DEBUG, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by appendFoldCandidate().
|
static |
Definition at line 810 of file SIFoldOperands.cpp.
References appendFoldCandidate(), and MI.
|
static |
Definition at line 832 of file SIFoldOperands.cpp.
References assert(), llvm::Hi, llvm::Hi_32(), llvm::Lo, and llvm::Lo_32().
Definition at line 1601 of file SIFoldOperands.cpp.
Definition at line 1675 of file SIFoldOperands.cpp.
|
static |
Definition at line 2305 of file SIFoldOperands.cpp.
References llvm::SIOutMods::DIV2, llvm_unreachable, llvm::SIOutMods::MUL2, llvm::SIOutMods::MUL4, llvm::SIOutMods::NONE, and Opc.
|
static |
Definition at line 317 of file SIFoldOperands.cpp.
References const, getRegOpRC(), if(), and TRI.
Referenced by getRegOpRC().
| INITIALIZE_PASS_BEGIN | ( | SIFoldOperandsLegacy | , |
| DEBUG_TYPE | , | ||
| "SI Fold Operands" | , | ||
| false | , | ||
| false | ) |
References DEBUG_TYPE, and INITIALIZE_PASS_DEPENDENCY.
|
static |
Checks whether Copy is a AGPR -> VGPR copy.
Returns true on success and stores the AGPR register in OutReg and the subreg in OutSubReg
Definition at line 2554 of file SIFoldOperands.cpp.
References assert(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineOperand::getSubReg(), llvm::MachineRegisterInfo::getVRegDef(), llvm::MachineInstr::isCopy(), llvm::Register::isVirtual(), and TRI.
|
static |
Definition at line 821 of file SIFoldOperands.cpp.
References MI, llvm::AMDGPU::OPERAND_REG_IMM_V2FP32, and llvm::MCOperandInfo::OperandType.
|
static |
Definition at line 1037 of file SIFoldOperands.cpp.
References llvm::SrcOp::getReg(), llvm::MachineRegisterInfo::getVRegDef(), llvm::Register::isPhysical(), llvm::Sub, and TII.
|
static |
Definition at line 1012 of file SIFoldOperands.cpp.
Definition at line 328 of file SIFoldOperands.cpp.
References Opc.
| DEBUG_TYPE |
Definition at line 310 of file SIFoldOperands.cpp.
| SI Fold false |
Definition at line 310 of file SIFoldOperands.cpp.
| SI Fold Operands |
Definition at line 310 of file SIFoldOperands.cpp.
Referenced by AArch64MnemonicSpellCheck(), llvm::logicalview::LVSymbol::addLocationOperands(), llvm::AMDGPURegisterBankInfo::addMappingFromTable(), llvm::logicalview::LVLocation::addObject(), llvm::logicalview::LVLocationSymbol::addObject(), addOptionalImmOperand(), addSrcModifiersAndSrc(), llvm::RISCVDAGToDAGISel::addVectorLoadStoreOperands(), alignReassociatedOperandsByKey(), analyzeLoopUnrollCost(), llvm::CombinerHelper::applyCombineUnmergeMergeToPlainValues(), applyMnemonicAliases(), applyMnemonicAliases(), applyMnemonicAliases(), llvm::R600InstrInfo::buildSlotOfVectorInstruction(), canConvertToFMA(), llvm::MCTargetAsmParser::checkEarlyTargetMatchPredicate(), llvm::SelectionDAGISel::CheckNodePredicateWithOperands(), combinePackingMovIntoStore(), llvm::VPWidenIntrinsicRecipe::computeCallCost(), llvm::VPReplicateRecipe::computeScalarType(), llvm::computeScalarTypeForInstruction(), llvm::ConstantExprKeyType::ConstantExprKeyType(), llvm::ConstantFoldCall(), llvm::MCTargetAsmParser::convertToMapAndConstraints(), llvm::VPBuilder::createNaryOp(), llvm::VPBuilder::createNaryOp(), llvm::VPBuilder::createNaryOp(), llvm::VPBuilder::createNaryOp(), llvm::logicalview::LVReader::createOperation(), llvm::VPBuilder::createOverflowingOp(), llvm::VPBuilder::createScalarIntrinsic(), llvm::VPBuilder::createSingleScalarOp(), CSKYMnemonicSpellCheck(), llvm::SPIRVAuxDataHandler::emitAuxData(), emitLibCall(), llvm::sandboxir::EraseFromParent::EraseFromParent(), EvaluateExpression(), findCCOutInd(), findCondCodeInd(), llvm::InstCombinerImpl::foldAllocaCmp(), llvm::ScalarEvolution::getAddRecExpr(), llvm::ScalarEvolution::getAddRecExpr(), llvm::ScalarEvolution::getAddRecExpr(), getCalledFnOperandIndex(), getCalledFunction(), llvm::AArch64TTIImpl::getCastInstrCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getGEPCost(), llvm::TargetTransformInfo::getGEPCost(), llvm::TargetTransformInfoImplBase::getGEPCost(), llvm::TargetTransformInfoImplCRTPBase< T >::getGEPCost(), llvm::getInlineSpirvType(), llvm::HexagonTTIImpl::getInstructionCost(), llvm::LoopVectorizationCostModel::getInstructionCost(), llvm::NVPTXTTIImpl::getInstructionCost(), llvm::PPCTTIImpl::getInstructionCost(), llvm::TargetTransformInfo::getInstructionCost(), llvm::TargetTransformInfo::getInstructionCost(), llvm::TargetTransformInfoImplBase::getInstructionCost(), llvm::TargetTransformInfoImplCRTPBase< T >::getInstructionCost(), getMnemonicOpsEndInd(), llvm::ScalarEvolution::getMulExpr(), getNMDOps(), llvm::SCEVAddRecExpr::getNumIterationsInRange(), llvm::sandboxir::getOperand(), llvm::SPIRVGlobalRegistry::getOrCreateUnknownType(), getPrefixes(), llvm::logicalview::LVCodeViewReader::getRegisterName(), llvm::logicalview::LVDWARFReader::getRegisterName(), llvm::logicalview::LVIRReader::getRegisterName(), llvm::logicalview::LVReader::getRegisterName(), getRegListInd(), getRelaxedOpcode(), llvm::GIMatchTableExecutor::getRemainingOperands(), llvm::VPCostContext::getScalarizationOverhead(), llvm::ScalarEvolution::getSignExtendExprImpl(), slpvectorizer::BoUpSLP::getSpillCost(), getSubtargetFeatureName(), getSubtargetFeatureName(), llvm::ScalarEvolution::getTruncateExpr(), llvm::ScalarEvolution::getUDivExpr(), llvm::AArch64TTIImpl::getUnrollingPreferences(), llvm::ARMTTIImpl::getUnrollingPreferences(), llvm::RISCVTTIImpl::getUnrollingPreferences(), getVCIXISDNodeVOID(), getVCIXISDNodeWCHAIN(), llvm::ScalarEvolution::getZeroExtendExprImpl(), llvm::PPCTTIImpl::isHardwareLoopProfitable(), isImplicitOperandIn(), isInvalidVOPDY(), isLoopSizeWithinBudget(), IsMemoryAssignmentError(), llvm::WebAssemblyMCInstLower::lower(), lowerBUILD_VECTOR(), llvm::RISCVTargetLowering::lowerDeinterleaveIntrinsicToLoad(), llvm::RISCVTargetLowering::lowerInterleaveIntrinsicToStore(), lowerLaneOp(), lowerShuffleViaVRegSplitting(), lowerVectorIntrinsicScalars(), lowerWaveShuffle(), llvm::VPlanPatternMatch::m_GetElementPtr(), llvm::MCTargetAsmParser::matchAndEmitInstruction(), llvm::CombinerHelper::matchCombineUnmergeMergeToPlainValues(), MatchRegisterAltName(), MatchRegisterName(), MaybePredicatedInst(), llvm::MCAsmBackend::mayNeedRelaxation(), llvm::RISCVAsmBackend::mayNeedRelaxation(), operandsContainWide(), llvm::DWARFDebugLine::LineTable::parse(), parseCC(), llvm::MCTargetAsmParser::parseInstruction(), llvm::MCTargetAsmParser::parseInstruction(), parseRD(), llvm::prettyPrintBaseTypeRef(), llvm::prettyPrintRegisterOp(), previousEqual(), previousIsLoop(), processVCIXOperands(), promoteVCIXScalar(), RefineErrorLoc(), RefineErrorLoc(), removeCCOut(), removeCondCode(), RemoveDeadConstant(), removeVPTCondCode(), llvm::ConstantUniqueMap< ConstantArray >::replaceOperandsInPlace(), llvm::sandboxir::EraseFromParent::revert(), llvm::ScalarEvolution::LoopGuards::rewrite(), llvm::sandboxir::LoadStoreVec::runOnRegion(), scanAssociativeOperands(), llvm::RISCVDAGToDAGISel::Select(), llvm::SelectionDAGISel::SelectCodeCommon(), llvm::RISCVDAGToDAGISel::selectSF_VC_X_SE(), llvm::RISCVDAGToDAGISel::selectVLSEG(), llvm::RISCVDAGToDAGISel::selectVLSEGFF(), llvm::RISCVDAGToDAGISel::selectVLXSEG(), llvm::RISCVDAGToDAGISel::selectVSSEG(), llvm::RISCVDAGToDAGISel::selectVSXSEG(), STATISTIC(), translateLoopMetadata(), llvm::vputils::tryToFoldLiveIns(), llvm::WebAssemblyAsmTypeCheck::typeCheck(), llvm::SelectionDAG::UnrollVectorOp(), llvm::User::User(), validateMemOp(), llvm::SLPVectorizerPass::vectorizeNonVectorizableInsts(), llvm::SCEVRewriteVisitor< SCEVCastSinkingRewriter >::visitAddExpr(), SCEVCastSinkingRewriter::visitAddExpr(), llvm::SCEVLoopAddRecRewriter::visitAddRecExpr(), llvm::SCEVRewriteVisitor< SCEVCastSinkingRewriter >::visitAddRecExpr(), llvm::SCEVRewriteVisitor< SCEVCastSinkingRewriter >::visitMulExpr(), SCEVCastSinkingRewriter::visitMulExpr(), llvm::SCEVRewriteVisitor< SCEVCastSinkingRewriter >::visitSequentialUMinExpr(), llvm::SCEVRewriteVisitor< SCEVCastSinkingRewriter >::visitSMaxExpr(), llvm::SCEVRewriteVisitor< SCEVCastSinkingRewriter >::visitSMinExpr(), llvm::SCEVRewriteVisitor< SCEVCastSinkingRewriter >::visitUMaxExpr(), llvm::SCEVRewriteVisitor< SCEVCastSinkingRewriter >::visitUMinExpr(), slpvectorizer::BoUpSLP::VLOperands::VLOperands(), slpvectorizer::BoUpSLP::VLOperands::VLOperands(), llvm::VPBlendRecipe::VPBlendRecipe(), llvm::VPInstruction::VPInstruction(), llvm::VPInstructionWithType::VPInstructionWithType(), llvm::VPPhi::VPPhi(), llvm::VPReductionRecipe::VPReductionRecipe(), llvm::VPReplicateRecipe::VPReplicateRecipe(), llvm::VPWidenGEPRecipe::VPWidenGEPRecipe(), llvm::VPWidenRecipe::VPWidenRecipe(), llvm::VPWidenRecipe::VPWidenRecipe(), llvm::logicalview::LVLocationSymbol::~LVLocationSymbol(), llvm::RISCVAsmBackend::~RISCVAsmBackend(), and llvm::VPReplicateRecipe::~VPReplicateRecipe().