LLVM: llvm::SSAUpdaterTraits< LDVSSAUpdater > Class Reference (original) (raw)

Template specialization to give SSAUpdater access to CFG and value information. 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 4034 of file InstrRefBasedImpl.cpp.

BlkSucc_iterator

BlkT

PhiT

ValT

AddPHIOperand()

void llvm::SSAUpdaterTraits< LDVSSAUpdater >::AddPHIOperand ( LDVSSAPhi * PHI, BlockValueNum Val, LDVSSABlock * Pred ) inlinestatic

AddPHIOperand - Add the specified value as an operand of the PHI for the specified predecessor block.

Definition at line 4110 of file InstrRefBasedImpl.cpp.

References PHI.

BlkSucc_begin()

BlkSucc_end()

CreateEmptyPHI()

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 4100 of file InstrRefBasedImpl.cpp.

References PHI.

FindPredecessorBlocks()

GetPHIValue()

GetPHIValue - For the specified PHI instruction, return the value that it defines.

Definition at line 4131 of file InstrRefBasedImpl.cpp.

References PHI.

GetPoisonVal()

BlockValueNum llvm::SSAUpdaterTraits< LDVSSAUpdater >::GetPoisonVal ( LDVSSABlock * BB, LDVSSAUpdater * Updater ) inlinestatic

PHI_begin()

PHI_end()

ValueIsNewPHI()

LDVSSAPhi * llvm::SSAUpdaterTraits< LDVSSAUpdater >::ValueIsNewPHI ( BlockValueNum Val, LDVSSAUpdater * Updater ) inlinestatic

ValueIsPHI()

LDVSSAPhi * llvm::SSAUpdaterTraits< LDVSSAUpdater >::ValueIsPHI ( BlockValueNum Val, LDVSSAUpdater * Updater ) inlinestatic

The documentation for this class was generated from the following file: