LLVM 22.0.0git
|
#include "NVPTX.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/TargetFrameLowering.h"
#include "llvm/CodeGen/TargetRegisterInfo.h"
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include "llvm/IR/DebugInfoMetadata.h"
#include "llvm/Pass.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "nvptx-prolog-epilog" |
Functions | |
INITIALIZE_PASS (NVPTXPrologEpilogPass, DEBUG_TYPE, "NVPTX Prologue/Epilogue Insertion", false, false) static bool replaceFrameIndexDebugInstr(MachineFunction &MF | |
if (MI.isDebugValue()) | |
static void | AdjustStackOffset (MachineFrameInfo &MFI, int FrameIdx, bool StackGrowsDown, int64_t &Offset, Align &MaxAlign) |
AdjustStackOffset - Helper function used to adjust the stack frame offset. | |
Variables | |
MachineInstr & | MI |
MachineInstr unsigned | OpIdx |
const TargetRegisterInfo & | TRI = *MF.getSubtarget().getRegisterInfo() |
return | false |
#define DEBUG_TYPE "nvptx-prolog-epilog" |
Definition at line 29 of file NVPTXPrologEpilogPass.cpp.
|
inlinestatic |
AdjustStackOffset - Helper function used to adjust the stack frame offset.
Definition at line 135 of file NVPTXPrologEpilogPass.cpp.
References llvm::alignTo(), llvm::dbgs(), llvm::MachineFrameInfo::getObjectAlign(), llvm::MachineFrameInfo::getObjectSize(), LLVM_DEBUG, llvm::Offset, and llvm::MachineFrameInfo::setObjectOffset().
if | ( | MI. | isDebugValue() | ) |
Definition at line 59 of file NVPTXPrologEpilogPass.cpp.
References llvm::DIExpression::appendOpsToArg(), llvm::DIExpression::ApplyOffset, assert(), llvm::MachineInstr::getDebugExpression(), llvm::MachineInstr::getDebugExpressionOp(), llvm::MachineInstr::getDebugOperandIndex(), llvm::TargetFrameLowering::getFrameIndexReference(), llvm::TargetRegisterInfo::getOffsetOpcodes(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::isDebugOperand(), llvm::MachineInstr::isNonListDebugValue(), MI, llvm::Offset, OpIdx, llvm::TargetRegisterInfo::prependOffsetExpression(), llvm::MachineOperand::setMetadata(), and TRI.
INITIALIZE_PASS | ( | NVPTXPrologEpilogPass | , |
DEBUG_TYPE | , | ||
"NVPTX Prologue/Epilogue Insertion" | , | ||
false | , | ||
false | |||
) | & |
return false |
Definition at line 87 of file NVPTXPrologEpilogPass.cpp.
MachineInstr& MI |
Definition at line 55 of file NVPTXPrologEpilogPass.cpp.
Referenced by if().
MachineInstr unsigned OpIdx |
Definition at line 56 of file NVPTXPrologEpilogPass.cpp.
Referenced by llvm::CallLowering::addArgFlagsFromAttributes(), llvm::AMDGPURegisterBankInfo::addMappingFromTable(), llvm::MachineInstr::addRegisterDead(), llvm::MachineInstr::addRegisterKilled(), llvm::ScheduleDAGInstrs::addSchedBarrierDeps(), llvm::SystemZTTIImpl::adjustInliningThreshold(), llvm::RegisterBankInfo::applyDefaultMapping(), llvm::RegBankSelect::applyMapping(), llvm::LegalizerHelper::bitcastDst(), llvm::LegalizerHelper::bitcastSrc(), buildTreeReduction(), llvm::CallBase::bundleOperandHasAttr(), CanGenerateTest(), canNarrowLoad(), canonicalizePHIOperands(), canParameterizeCallOperand(), llvm::canReplaceOperandWithVariable(), llvm::MachineOperand::ChangeToDbgInstrRef(), checkBoolTestSetCCCombine(), checkOperandType(), collectInstructionDeps(), CollectOpsToWiden(), collectVOPModifiers(), combineBMILogicOp(), combineShuffleToZeroExtendVectorInReg(), combineX86ShufflesRecursively(), computeExprForSpill(), llvm::X86TargetLowering::computeKnownBitsForTargetNode(), llvm::RegBankSelect::computeMapping(), llvm::X86TargetLowering::ComputeNumSignBitsForTargetNode(), llvm::ScheduleDAGSDNodes::computeOperandLatency(), llvm::constrainOperandRegClass(), llvm::AMDGPURegisterBankInfo::constrainOpWithReadfirstlane(), llvm::AMDGPUDisassembler::convertTrue16OpSel(), costAndCollectOperands(), llvm::MachineOperand::CreateDbgInstrRef(), llvm::TargetInstrInfo::createMIROperandComment(), llvm::ARMBaseInstrInfo::createMIROperandComment(), llvm::RISCVInstrInfo::createMIROperandComment(), CreateVPTBlock(), llvm::RegisterBankInfo::OperandsMapper::createVRegs(), doInsertBitcast(), llvm::SystemZRegisterInfo::eliminateFrameIndex(), llvm::InstrEmitter::EmitDbgInstrRef(), llvm::SPIRVTargetLowering::enforcePtrTypeCompatibility(), llvm::GIMatchTableExecutor::executeMatchTable(), llvm::MachineInstr::findInlineAsmFlagIdx(), llvm::AMDGPU::RegBankLegalizeHelper::findRuleAndApplyMapping(), llvm::MachineInstr::findTiedOperandIdx(), fixI8UseChain(), llvm::ARMBaseInstrInfo::foldImmediate(), llvm::TargetInstrInfo::foldMemoryOperand(), llvm::InstCombinerImpl::foldPHIArgInsertValueInstructionIntoPHI(), GetArgMD(), llvm::sandboxir::CallBase::getArgOperand(), getBMIMatchingOp(), getBranchTargetOpValue(), llvm::CallBase::getBundleOpInfoForOperand(), llvm::PeelingModuloScheduleExpander::getEquivalentRegisterIn(), getInstReadLaneMask(), llvm::RegisterBankInfo::getInstrMappingImpl(), getNumOpRegs(), llvm::sandboxir::getOperand(), llvm::sandboxir::User::getOperand(), llvm::CallBase::getOperandBundleForOperand(), llvm::VPExpressionRecipe::getOperandOfResultType(), llvm::sandboxir::User::getOperandUse(), llvm::sandboxir::User::getOperandUseDefault(), llvm::sandboxir::GlobalObject::getOperandUseInternal(), llvm::sandboxir::Constant::getOperandUseInternal(), llvm::RegBankSelect::RepairingPlacement::getOpIdx(), getPointeeTypeByCallInst(), llvm::AArch64RegisterInfo::getRegAllocationHints(), llvm::RISCVRegisterInfo::getRegAllocationHints(), llvm::X86RegisterInfo::getRegAllocationHints(), llvm::RegisterBankInfo::getRegBankFromConstraints(), llvm::MachineInstr::getRegClassConstraint(), llvm::MachineInstr::getRegClassConstraintEffect(), llvm::TargetInstrInfo::getRegSequenceInputs(), getTypeFromTypeIdx(), llvm::MachineInstr::getTypeToPrint(), llvm::DbgVariableRecord::getValue(), llvm::DbgValueInst::getValue(), llvm::DbgVariableRecord::getVariableLocationOp(), llvm::RawLocationWrapper::getVariableLocationOp(), llvm::DbgVariableIntrinsic::getVariableLocationOp(), llvm::slpvectorizer::BoUpSLP::VLOperands::getVL(), llvm::RegisterBankInfo::OperandsMapper::getVRegs(), handleADRP(), hasAllNBitUsers(), hasSameNumEltsOnAllVectorOperands(), llvm::GCNTTIImpl::hoistLaneIntrinsicThroughOperand(), hoistMulAddAssociation(), if(), ignoreOp(), llvm::MachineInstr::insert(), insertNamedMCOperand(), IsAGPROperand(), isCalleeOperand(), llvm::MachineInstr::isEquivalentDbgInstr(), llvm::SIInstrInfo::isInlineConstant(), llvm::SIInstrInfo::isLegalRegOperand(), llvm::SIInstrInfo::isOperandLegal(), llvm::MachineInstr::isOperandSubregIdx(), llvm::ARMTTIImpl::isProfitableToSinkOperands(), llvm::RISCVTTIImpl::isProfitableToSinkOperands(), llvm::SIInstrInfo::legalizeOperandsVALUt16(), llvm::SIInstrInfo::legalizeOpWithMove(), LinearizeExprTree(), lowerBuildVectorOfConstants(), lowerBuildVectorViaDominantValues(), llvm::RISCVTargetLowering::LowerOperation(), lowerShuffleAsBroadcast(), llvm::SDPatternMatch::Operands_match< OpIdx, OpndPreds >::match(), llvm::SDPatternMatch::Operands_match< OpIdx, OpndPred, OpndPreds... >::match(), matchAliasCondition(), llvm::MCInstPrinter::matchAliasPatterns(), llvm::CombinerHelper::matchConstantSelectCmp(), llvm::CombinerHelper::matchOperandIsKnownToBeAPowerOfTwo(), llvm::CombinerHelper::matchOperandIsUndef(), llvm::CombinerHelper::matchOperandIsZero(), llvm::LegalizerHelper::moreElementsVectorDst(), llvm::LegalizerHelper::moreElementsVectorSrc(), llvm::LegalizerHelper::narrowScalar(), llvm::LegalizerHelper::narrowScalarDst(), llvm::LegalizerHelper::narrowScalarSrc(), llvm::AMDGPUMIRFormatter::parseImmMnemonic(), partitionShuffleOfConcats(), llvm::VPInterleaveRecipe::print(), llvm::RegisterBankInfo::InstructionMapping::print(), llvm::MachineInstr::print(), llvm::MachineOperand::print(), llvm::WebAssemblyInstPrinter::printCatchList(), llvm::AMDGPUMIRFormatter::printImm(), llvm::WebAssemblyInstPrinter::printInst(), printMIOperand(), reinsertVectorIndexAdd(), llvm::slpvectorizer::BoUpSLP::VLOperands::reorder(), llvm::RegBankSelect::RepairingPlacement::RepairingPlacement(), replaceOperandIfSame(), llvm::CombinerHelper::replaceSingleDefInstWithOperand(), llvm::sandboxir::User::replaceUsesOfWith(), llvm::DbgVariableRecord::replaceVariableLocationOp(), llvm::DbgVariableIntrinsic::replaceVariableLocationOp(), replaceWithIndirectUse(), replacingOperandWithVariableIsCheap(), llvm::CallLowering::setArgFlags(), llvm::sandboxir::CallBase::setArgOperand(), llvm::MachineOperand::setInstrRefOpIndex(), llvm::MachineInstrBuilder::setOperandDead(), llvm::RegisterBankInfo::OperandsMapper::setVRegs(), shouldConvertUse(), llvm::X86TargetLowering::SimplifyMultipleUseDemandedBitsForTargetNode(), simplifySVEIntrinsic(), splitEdge(), substituteSimpleCopyRegs(), tryChangeVGPRtoSGPRinCopy(), llvm::MachineInstr::untieRegOperand(), updateOperandIfDifferent(), UpdateOperandRegClass(), llvm::SIInstrInfo::usesConstantBus(), validateFunCallMachineDef(), validateGroupWaitEventsPtr(), validatePtrTypes(), validatePtrUnwrapStructField(), llvm::SIInstrInfo::verifyInstruction(), llvm::RISCVInstrInfo::verifyInstruction(), llvm::SDNodeInfo::verifyNode(), llvm::LegalizerHelper::widenScalarDst(), and llvm::LegalizerHelper::widenScalarSrc().
const TargetRegisterInfo& TRI = *MF.getSubtarget().getRegisterInfo() |
Definition at line 58 of file NVPTXPrologEpilogPass.cpp.
Referenced by if().