LLVM 24.0.0git
llvm::ReassociatePass Class Reference

Reassociate commutative expressions. More...

#include "llvm/Transforms/Scalar/Reassociate.h"

Inheritance diagram for llvm::ReassociatePass:
[legend]

Classes

struct  PairMapValue

Public Types

using OrderedSet

Public Member Functions

LLVM_ABI PreservedAnalyses run (Function &F, FunctionAnalysisManager &AM)
LLVM_ABI PreservedAnalyses runImpl (Function &F, UniformityInfo &UI)
Public Member Functions inherited from llvm::PassInfoMixin< ReassociatePass >
void printPipeline (raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName)

Protected Attributes

DenseMap< BasicBlock *, unsignedRankMap
DenseMap< AssertingVH< Value >, unsignedValueRankMap
OrderedSet RedoInsts
DenseMap< std::pair< Value *, Value * >, PairMapValuePairMap [NumBinaryOps]
bool MadeChange
UniformityInfoUA = nullptr

Static Protected Attributes

static const unsigned GlobalReassociateLimit = 10
static const unsigned NumBinaryOps

Additional Inherited Members

Static Public Member Functions inherited from llvm::OptionalPassInfoMixin< ReassociatePass >
static bool isRequired ()
Static Public Member Functions inherited from llvm::PassInfoMixin< ReassociatePass >
static bool isRequired ()
Static Public Member Functions inherited from llvm::detail::InfoMixin< ReassociatePass >
static StringRef name ()
 Gets the name of the pass we are mixed into.

Detailed Description

Reassociate commutative expressions.

Definition at line 75 of file Reassociate.h.

Member Typedef Documentation

◆ OrderedSet

Initial value:
SetVector<AssertingVH<Instruction>, std::deque<AssertingVH<Instruction>>>
A vector that has set insertion semantics.
Definition SetVector.h:57

Definition at line 77 of file Reassociate.h.

Member Function Documentation

◆ run()

PreservedAnalyses ReassociatePass::run ( Function & F,
FunctionAnalysisManager & AM )

◆ runImpl()

Member Data Documentation

◆ GlobalReassociateLimit

const unsigned llvm::ReassociatePass::GlobalReassociateLimit = 10
staticprotected

Definition at line 86 of file Reassociate.h.

◆ MadeChange

bool llvm::ReassociatePass::MadeChange
protected

Definition at line 98 of file Reassociate.h.

Referenced by runImpl().

◆ NumBinaryOps

const unsigned llvm::ReassociatePass::NumBinaryOps
staticprotected
Initial value:
=
Instruction::BinaryOpsEnd - Instruction::BinaryOpsBegin

Definition at line 87 of file Reassociate.h.

◆ PairMap

DenseMap<std::pair<Value *, Value *>, PairMapValue> llvm::ReassociatePass::PairMap[NumBinaryOps]
protected

Definition at line 96 of file Reassociate.h.

Referenced by runImpl().

◆ RankMap

DenseMap<BasicBlock *, unsigned> llvm::ReassociatePass::RankMap
protected

Definition at line 81 of file Reassociate.h.

Referenced by runImpl().

◆ RedoInsts

OrderedSet llvm::ReassociatePass::RedoInsts
protected

Definition at line 83 of file Reassociate.h.

Referenced by runImpl().

◆ UA

UniformityInfo* llvm::ReassociatePass::UA = nullptr
protected

Definition at line 99 of file Reassociate.h.

Referenced by runImpl().

◆ ValueRankMap

DenseMap<AssertingVH<Value>, unsigned> llvm::ReassociatePass::ValueRankMap
protected

Definition at line 82 of file Reassociate.h.

Referenced by runImpl().


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