llvm::SSAUpdater

Helper class for SSA formation on a set of values defined in multiple blocks.

Synopsis

Declared in <llvm/Transforms/Utils/SSAUpdater.h>

class SSAUpdater;

Description

This is used when code duplication or another unstructured transformation wants to rewrite a set of uses of one value with uses of a set of values.

Member Functions

NameDescription
SSAUpdater [constructor]Constructors
~SSAUpdater [destructor]Destroy the SSA updater.
operator= [deleted]Deleted copy assignment; SSAUpdater cannot be copy-assigned.
AddAvailableValue Indicate that a rewritten value is available in the specified block with the specified value.
FindValueForBlock Return the value for the specified block if the SSAUpdater has one, otherwise return nullptr.
GetValueAtEndOfBlock Construct SSA form, materializing a value that is live at the end of the specified block.
GetValueInMiddleOfBlock Construct SSA form, materializing a value that is live in the middle of the specified block.
HasValueForBlock Return true if the SSAUpdater already has a value for the specified block.
Initialize Reset this object to get ready for a new set of SSA updates with type 'Ty'.
RewriteUse Rewrite a use of the symbolic value.
RewriteUseAfterInsertions Rewrite a use like RewriteUse but handling in-block definitions.
UpdateDebugValues UpdateDebugValues overloads

Friends

NameDescription
llvm::SSAUpdaterTraitsTraits used by SSAUpdaterImpl to adapt an SSA updater implementation.