MachineSSAUpdater ‐ This class updates SSA form for a set of virtual registers defined in multiple blocks. This is used when code duplication or another unstructured transformation wants to rewrite a set of uses of one vreg with uses of a set of vregs.

Synopsis

Declared in <llvm/CodeGen/MachineSSAUpdater.h>

class MachineSSAUpdater;

Member Functions

Name

Description

MachineSSAUpdater [constructor]

MachineSSAUpdater constructor. If InsertedPHIs is specified, it will be filled in with all PHI Nodes created by rewriting.

~MachineSSAUpdater [destructor]

Destructor

operator= [deleted]

Copy assignment operator

AddAvailableValue

AddAvailableValue ‐ Indicate that a rewritten value is available at the end of the specified block with the specified value.

GetValueAtEndOfBlock

GetValueAtEndOfBlock ‐ Construct SSA form, materializing a value that is live at the end of the specified block.

GetValueInMiddleOfBlock

GetValueInMiddleOfBlock ‐ Construct SSA form, materializing a value that is live in the middle of the specified block. If ExistingValueOnly is true then this will only return an existing value or $noreg; otherwise new instructions may be inserted to materialize a value.

HasValueForBlock

HasValueForBlock ‐ Return true if the MachineSSAUpdater already has a value for the specified block.

Initialize

Initialize ‐ Reset this object to get ready for a new set of SSA updates.

RewriteUse

RewriteUse ‐ Rewrite a use of the symbolic value. This handles PHI nodes, which use their value in the corresponding predecessor. Note that this will not work if the use is supposed to be rewritten to a value defined in the same block as the use, but above it. Any 'AddAvailableValue's added for the use's block will be considered to be below it.

Friends

Name

Description

llvm::SSAUpdaterTraits

Created with MrDocs