LLVM  16.0.0git
Macros | Functions | Variables
AMDGPURewriteUndefForPHI.cpp File Reference
#include "AMDGPU.h"
#include "llvm/Analysis/LegacyDivergenceAnalysis.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/Instructions.h"
#include "llvm/InitializePasses.h"
Include dependency graph for AMDGPURewriteUndefForPHI.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "amdgpu-rewrite-undef-for-phi"
 

Functions

 INITIALIZE_PASS_BEGIN (AMDGPURewriteUndefForPHI, DEBUG_TYPE, "Rewrite undef for PHI", false, false) INITIALIZE_PASS_END(AMDGPURewriteUndefForPHI
 
Rewrite undef for false bool rewritePHIs (Function &F, LegacyDivergenceAnalysis *DA, DominatorTree *DT)
 

Variables

 DEBUG_TYPE
 
Rewrite undef for PHI
 
Rewrite undef for false
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "amdgpu-rewrite-undef-for-phi"

Definition at line 68 of file AMDGPURewriteUndefForPHI.cpp.

Function Documentation

◆ INITIALIZE_PASS_BEGIN()

INITIALIZE_PASS_BEGIN ( AMDGPURewriteUndefForPHI  ,
DEBUG_TYPE  ,
"Rewrite undef for PHI ,
false  ,
false   
)

◆ rewritePHIs()

Rewrite undef for false bool rewritePHIs ( Function F,
LegacyDivergenceAnalysis DA,
DominatorTree DT 
)

Variable Documentation

◆ DEBUG_TYPE

DEBUG_TYPE

Definition at line 100 of file AMDGPURewriteUndefForPHI.cpp.

◆ false

Rewrite undef for false

Definition at line 101 of file AMDGPURewriteUndefForPHI.cpp.

◆ PHI

Rewrite undef for PHI

Definition at line 101 of file AMDGPURewriteUndefForPHI.cpp.

Referenced by llvm::SSAUpdaterTraits< SSAUpdater >::AddPHIOperand(), llvm::SSAUpdaterTraits< MachineSSAUpdater >::AddPHIOperand(), llvm::SSAUpdaterTraits< LDVSSAUpdater >::AddPHIOperand(), analyzeLoopUnrollCost(), areInnerLoopExitPHIsSupported(), areInnerLoopLatchPHIsSupported(), areOuterLoopExitPHIsSupported(), canCreateUndefOrPoison(), canEvaluateSExtd(), canEvaluateShifted(), canEvaluateTruncated(), canEvaluateZExtd(), canRewriteGEPAsOffset(), llvm::SSAUpdaterImpl< UpdaterT >::CheckIfPHIMatches(), llvm::FPMathOperator::classof(), llvm::PHINode::classof(), cloneLoopBlocks(), collectValuesToDemote(), commonChecksToProhibitNewValueJump(), computeKnownBitsFromOperator(), llvm::GISelKnownBits::computeKnownBitsImpl(), ComputeNumSignBitsImpl(), llvm::SIInstrInfo::convertNonUniformLoopRegion(), llvm::SSAUpdaterTraits< SSAUpdater >::CreateEmptyPHI(), llvm::SSAUpdaterTraits< MachineSSAUpdater >::CreateEmptyPHI(), llvm::SSAUpdaterTraits< LDVSSAUpdater >::CreateEmptyPHI(), llvm::PeelingModuloScheduleExpander::CreateLCSSAExitingBlock(), createPHIsForCMOVsInSinkBB(), createPHIsForSelects(), dependsOnLocalPhi(), determinePointerAccessAttrs(), llvm::DetermineUseCaptureKind(), DoFlattenLoopPair(), llvm::VETargetLowering::emitEHSjLjSetJmp(), llvm::PPCTargetLowering::emitEHSjLjSetJmp(), llvm::AArch64TargetLowering::EmitF128CSEL(), emitFROUND(), llvm::BPFTargetLowering::EmitInstrWithCustomInserter(), llvm::AVRTargetLowering::EmitInstrWithCustomInserter(), llvm::XCoreTargetLowering::EmitInstrWithCustomInserter(), llvm::MSP430TargetLowering::EmitInstrWithCustomInserter(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitInstrWithCustomInserter(), emitLoadM0FromVGPRLoop(), EmitLoweredCascadedSelect(), emitSelectPseudo(), llvm::MSP430TargetLowering::EmitShiftInstr(), emitXBegin(), ensureValueAvailableInSuccessor(), llvm::InstCombinerImpl::EvaluateInDifferentType(), llvm::JumpThreadingPass::evaluateOnPredecessorEdge(), llvm::VPWidenRecipe::execute(), llvm::AMDGPURegisterBankInfo::executeInWaterfallLoop(), llvm::SparcTargetLowering::expandSelectCC(), llvm::SSAUpdaterImpl< UpdaterT >::FindAvailableVals(), findInnerReductionPhi(), findLoopComponents(), FindPHIForConditionForwarding(), llvm::InnerLoopVectorizer::fixupIVUsers(), llvm::InstCombinerImpl::foldAggregateConstructionIntoAggregateReuse(), foldGuardedFunnelShift(), llvm::InstCombinerImpl::foldICmpInstWithConstantNotInt(), followLCSSA(), genTPLoopBody(), llvm::objcarc::GetARCInstKind(), llvm::ValueDFS_Compare::getBlockEdge(), getCaseResults(), llvm::R600TTIImpl::getCFInstrCost(), llvm::PPCTTIImpl::getCFInstrCost(), llvm::AArch64TTIImpl::getCFInstrCost(), llvm::X86TTIImpl::getCFInstrCost(), llvm::TargetTransformInfoImplBase::getCFInstrCost(), getConstantEvolvingPHIOperands(), llvm::LoopVectorizationCostModel::getDivRemSpeculationCost(), llvm::SSAUpdaterTraits< SSAUpdater >::PHI_iterator::getIncomingBlock(), llvm::SSAUpdaterTraits< MachineSSAUpdater >::PHI_iterator::getIncomingBlock(), llvm::SSAUpdaterTraits< LDVSSAUpdater >::PHI_iterator::getIncomingBlock(), llvm::SSAUpdaterTraits< SSAUpdater >::PHI_iterator::getIncomingValue(), llvm::SSAUpdaterTraits< MachineSSAUpdater >::PHI_iterator::getIncomingValue(), llvm::SSAUpdaterTraits< LDVSSAUpdater >::PHI_iterator::getIncomingValue(), getInsertPointForUses(), llvm::TargetTransformInfoImplCRTPBase< AMDGPUTTIImpl >::getInstructionCost(), llvm::PPCTTIImpl::getIntImmCostInst(), llvm::AArch64TTIImpl::getIntImmCostInst(), llvm::X86TTIImpl::getIntImmCostInst(), getInvertibleOperands(), llvm::Instruction::getOpcodeName(), llvm::MachineTraceMetrics::Trace::getPHIDepth(), getPHIDestReg(), getPHINumInputs(), getPHIPred(), getPHISourceReg(), llvm::SSAUpdaterTraits< SSAUpdater >::GetPHIValue(), llvm::SSAUpdaterTraits< MachineSSAUpdater >::GetPHIValue(), llvm::SSAUpdaterTraits< LDVSSAUpdater >::GetPHIValue(), getPointerOperands(), llvm::LazyValueInfo::getPredicateAt(), getRelevantOperands(), llvm::slpvectorizer::BoUpSLP::getReorderingData(), getShiftedValue(), llvm::getUnderlyingObject(), llvm::MachineSSAUpdater::GetValueInMiddleOfBlock(), llvm::SIInstrInfo::getVALUOp(), HandleInlinedEHPad(), hasAllWUsers(), llvm::LiveIntervals::hasPHIKill(), initializeUniqueCases(), llvm::InlineFunction(), llvm::insertDebugValuesForPHIs(), insertPHI(), llvm::TargetLoweringBase::InstructionOpcodeToISD(), isAddressExpression(), llvm::Attributor::isAssumedDead(), IsEquivalentPHI(), isFunctionMallocLike(), llvm::PPCTTIImpl::isHardwareLoopProfitable(), isKnownNonZero(), llvm::MachineInstr::isPHI(), llvm::RecurrenceDescriptor::isRecurrenceInstr(), isReturnNonNull(), llvm::isSafeToSpeculativelyExecuteWithOpcode(), isSignExtendedW(), llvm::PPCInstrInfo::isSignOrZeroExtended(), llvm::MachineInstr::isTransient(), llvm::SIInstrInfo::legalizeOperands(), llvm::GVNPass::ValueTable::lookupOrAdd(), LowerFPToInt(), lowersToCopies(), llvm::ARMTTIImpl::maybeLoweredToCall(), llvm::PeelingModuloScheduleExpander::moveStageBetweenBlocks(), llvm::peelLoop(), llvm::SSAUpdaterTraits< SSAUpdater >::PHI_begin(), llvm::SSAUpdaterTraits< MachineSSAUpdater >::PHI_begin(), llvm::SSAUpdaterTraits< LDVSSAUpdater >::PHI_begin(), llvm::SSAUpdaterTraits< SSAUpdater >::PHI_end(), llvm::SSAUpdaterTraits< MachineSSAUpdater >::PHI_end(), llvm::SSAUpdaterTraits< LDVSSAUpdater >::PHI_end(), llvm::propagatesPoison(), llvm::SwiftErrorValueTracking::propagateVRegs(), llvm::SSAUpdaterImpl< UpdaterT >::RecordMatchingPHIs(), removeSwitchAfterSelectFold(), removeUndefIntroducingPredecessor(), llvm::slpvectorizer::BoUpSLP::reorderTopToBottom(), rewriteGEPAsOffset(), rewritePHIs(), runImpl(), llvm::FastISel::selectOperator(), llvm::FunctionLoweringInfo::set(), setInsertionPoint(), setPhiPred(), simplifyInstructionWithOperands(), llvm::InstCombinerImpl::SliceUpIllegalIntegerPHI(), llvm::fuzzerop::splitBlockDescriptor(), SwitchToLookupTable(), trySwitchToSelect(), llvm::UnrollLoop(), updateOperand(), llvm::SSAUpdaterTraits< SSAUpdater >::ValueIsNewPHI(), llvm::SSAUpdaterTraits< MachineSSAUpdater >::ValueIsNewPHI(), llvm::SSAUpdaterTraits< LDVSSAUpdater >::ValueIsNewPHI(), llvm::InstCombinerImpl::visitFCmpInst(), and llvm::ObjectSizeOffsetEvaluator::visitPHINode().