23 #ifndef LLVM_TRANSFORMS_SCALAR_REASSOCIATE_H 24 #define LLVM_TRANSFORMS_SCALAR_REASSOCIATE_H 64 Factor(
Value *Base,
unsigned Power) : Base(Base), Power(Power) {}
83 static const unsigned GlobalReassociateLimit = 10;
84 static const unsigned NumBinaryOps =
85 Instruction::BinaryOpsEnd - Instruction::BinaryOpsBegin;
95 unsigned getRank(
Value *V);
125 #endif // LLVM_TRANSFORMS_SCALAR_REASSOCIATE_H
This class represents lattice values for constants.
DenseMap< AssertingVH< Value >, unsigned > ValueRankMap
Utility class representing a non-constant Xor-operand.
Utility class representing a base and exponent pair which form one factor of some product...
Reassociate commutative expressions.
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
This provides a uniform API for creating instructions and inserting them into a basic block: either a...
bool operator<(const ValueEntry &LHS, const ValueEntry &RHS)
A CRTP mix-in to automatically provide informational APIs needed for passes.
A set of analyses that are preserved following a run of a transformation pass.
SetVector< AssertingVH< Instruction >, std::deque< AssertingVH< Instruction > >> OrderedSet
ValueEntry(unsigned R, Value *O)
DenseMap< BasicBlock *, unsigned > RankMap
Factor(Value *Base, unsigned Power)
Class for arbitrary precision integers.
LLVM Value Representation.
A vector that has set insertion semantics.
A container for analyses that lazily runs them and caches their results.
This header defines various interfaces for pass management in LLVM.