LLVM 20.0.0git
|
Template specialization to give SSAUpdater access to CFG and value information. More...
Classes | |
class | PHI_iterator |
Iterator for PHI operands. More... | |
Public Types | |
using | BlkT = LDVSSABlock |
using | ValT = BlockValueNum |
using | PhiT = LDVSSAPhi |
using | BlkSucc_iterator = LDVSSABlockIterator |
Static Public Member Functions | |
static BlkSucc_iterator | BlkSucc_begin (BlkT *BB) |
static BlkSucc_iterator | BlkSucc_end (BlkT *BB) |
static PHI_iterator | PHI_begin (PhiT *PHI) |
static PHI_iterator | PHI_end (PhiT *PHI) |
static void | FindPredecessorBlocks (LDVSSABlock *BB, SmallVectorImpl< LDVSSABlock * > *Preds) |
FindPredecessorBlocks - Put the predecessors of BB into the Preds vector. | |
static BlockValueNum | GetPoisonVal (LDVSSABlock *BB, LDVSSAUpdater *Updater) |
GetPoisonVal - Normally creates an IMPLICIT_DEF instruction with a new register. | |
static BlockValueNum | CreateEmptyPHI (LDVSSABlock *BB, unsigned NumPreds, LDVSSAUpdater *Updater) |
CreateEmptyPHI - Create a (representation of a) PHI in the given block. | |
static void | AddPHIOperand (LDVSSAPhi *PHI, BlockValueNum Val, LDVSSABlock *Pred) |
AddPHIOperand - Add the specified value as an operand of the PHI for the specified predecessor block. | |
static LDVSSAPhi * | ValueIsPHI (BlockValueNum Val, LDVSSAUpdater *Updater) |
ValueIsPHI - Check if the instruction that defines the specified value is a PHI instruction. | |
static LDVSSAPhi * | ValueIsNewPHI (BlockValueNum Val, LDVSSAUpdater *Updater) |
ValueIsNewPHI - Like ValueIsPHI but also check if the PHI has no source operands, i.e., it was just added. | |
static BlockValueNum | GetPHIValue (LDVSSAPhi *PHI) |
GetPHIValue - For the specified PHI instruction, return the value that it defines. | |
Template specialization to give SSAUpdater access to CFG and value information.
SSAUpdater calls methods in these traits, passing in the LDVSSAUpdater object, to learn about blocks and the values they define. It also provides methods to create PHI nodes and track them.
Definition at line 3995 of file InstrRefBasedImpl.cpp.
using llvm::SSAUpdaterTraits< LDVSSAUpdater >::BlkSucc_iterator = LDVSSABlockIterator |
Definition at line 4000 of file InstrRefBasedImpl.cpp.
using llvm::SSAUpdaterTraits< LDVSSAUpdater >::BlkT = LDVSSABlock |
Definition at line 3997 of file InstrRefBasedImpl.cpp.
using llvm::SSAUpdaterTraits< LDVSSAUpdater >::PhiT = LDVSSAPhi |
Definition at line 3999 of file InstrRefBasedImpl.cpp.
using llvm::SSAUpdaterTraits< LDVSSAUpdater >::ValT = BlockValueNum |
Definition at line 3998 of file InstrRefBasedImpl.cpp.
|
inlinestatic |
AddPHIOperand - Add the specified value as an operand of the PHI for the specified predecessor block.
Definition at line 4071 of file InstrRefBasedImpl.cpp.
References PHI.
|
inlinestatic |
Definition at line 4003 of file InstrRefBasedImpl.cpp.
|
inlinestatic |
Definition at line 4004 of file InstrRefBasedImpl.cpp.
|
inlinestatic |
CreateEmptyPHI - Create a (representation of a) PHI in the given block.
SSAUpdater will populate it with information about incoming values. The value number of this PHI is whatever the machine value number problem solution determined it to be. This includes non-phi values if SSAUpdater tries to create a PHI where the incoming values are identical.
Definition at line 4061 of file InstrRefBasedImpl.cpp.
References PHI.
|
inlinestatic |
FindPredecessorBlocks - Put the predecessors of BB into the Preds vector.
Definition at line 4038 of file InstrRefBasedImpl.cpp.
References llvm::SmallVectorTemplateBase< T, bool >::push_back().
|
inlinestatic |
GetPHIValue - For the specified PHI instruction, return the value that it defines.
Definition at line 4092 of file InstrRefBasedImpl.cpp.
References PHI.
|
inlinestatic |
GetPoisonVal - Normally creates an IMPLICIT_DEF instruction with a new register.
For LiveDebugValues, represents a block identified as not having any DBG_PHI predecessors.
Definition at line 4047 of file InstrRefBasedImpl.cpp.
References LiveDebugValues::ValueIDNum::asU64().
|
inlinestatic |
Definition at line 4030 of file InstrRefBasedImpl.cpp.
References PHI.
|
inlinestatic |
Definition at line 4032 of file InstrRefBasedImpl.cpp.
References PHI.
|
inlinestatic |
ValueIsNewPHI - Like ValueIsPHI but also check if the PHI has no source operands, i.e., it was just added.
Definition at line 4083 of file InstrRefBasedImpl.cpp.
References PHI.
|
inlinestatic |
ValueIsPHI - Check if the instruction that defines the specified value is a PHI instruction.
Definition at line 4077 of file InstrRefBasedImpl.cpp.