llvm::GVNPass

The core GVN pass object.

Synopsis

Declared in <llvm/Transforms/Scalar/GVN.h>

class GVNPass
    : public OptionalPassInfoMixin<GVNPass>

Description

FIXME: We should have a good summary of the GVN algorithm implemented by this particular pass here.

Base Classes

NameDescription
OptionalPassInfoMixin<GVNPass>A CRTP mix-in for passes that can be skipped.

Types

NameDescription
AvailableValue A value available for rematerializing a load.
AvailableValueInBlock An AvailableValue associated with a specific basic block.
Expression Expression key used for value numbering.
ValueTable This class holds the mapping between values and value numbers. It is used as an efficient mechanism to determine the expression-wise equivalence of two values.

Member Functions

NameDescription
GVNPass [constructor]Construct a GVN pass with the given options.
getAliasAnalysis Return the alias analysis results used by this pass.
getDominatorTree Return the dominator tree used by this pass.
getMemDep Return the memory dependence analysis used by this pass.
isLoadInLoopPREEnabled Return true if PRE of loads inside loops is enabled.
isLoadPREEnabled Return true if PRE of loads is enabled.
isLoadPRESplitBackedgeEnabled Return true if load PRE may split critical backedges.
isMemDepEnabled Return true if MemoryDependenceAnalysis is enabled for this pass.
isMemorySSAEnabled Return true if MemorySSA is enabled for this pass.
isScalarPREEnabled Return true if PRE of scalar instructions is enabled.
printPipeline Print this pass's pipeline representation to OS.
run Run the pass over the function.
salvageAndRemoveInstruction This removes the specified instruction from our various maps and marks it for deletion.

Static Member Functions

NameDescription
isRequired Return false; optional passes may be skipped.

Friends

NameDescription
llvm::DenseMapInfoTraits type that supplies DenseMap hashing and equality for value type T.
llvm::GVNLegacyPassLegacy FunctionPass wrapper around GVNPass.