Go to the documentation of this file.
22 #ifndef LLVM_TRANSFORMS_SCALAR_REASSOCIATE_H
23 #define LLVM_TRANSFORMS_SCALAR_REASSOCIATE_H
54 return LHS.Rank >
RHS.Rank;
84 Instruction::BinaryOpsEnd - Instruction::BinaryOpsBegin;
101 unsigned getRank(
Value *V);
133 #endif // LLVM_TRANSFORMS_SCALAR_REASSOCIATE_H
A set of analyses that are preserved following a run of a transformation pass.
This is an optimization pass for GlobalISel generic memory operations.
A CRTP mix-in to automatically provide informational APIs needed for passes.
Reassociate commutative expressions.
DenseMap< BasicBlock *, unsigned > RankMap
A nullable Value handle that is nullable.
static const unsigned NumBinaryOps
bool operator<(const ValueEntry &LHS, const ValueEntry &RHS)
Utility class representing a non-constant Xor-operand.
SetVector< AssertingVH< Instruction >, std::deque< AssertingVH< Instruction > >> OrderedSet
DenseMap< std::pair< Value *, Value * >, PairMapValue > PairMap[NumBinaryOps]
ValueEntry(unsigned R, Value *O)
@ BasicBlock
Various leaf nodes.
Class for arbitrary precision integers.
Common base class shared among various IRBuilders.
static const unsigned GlobalReassociateLimit
PreservedAnalyses run(Function &F, FunctionAnalysisManager &)
DenseMap< AssertingVH< Value >, unsigned > ValueRankMap
Factor(Value *Base, unsigned Power)
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
A container for analyses that lazily runs them and caches their results.
A vector that has set insertion semantics.
Utility class representing a base and exponent pair which form one factor of some product.
LLVM Value Representation.