22#ifndef LLVM_TRANSFORMS_SCALAR_REASSOCIATE_H
23#define LLVM_TRANSFORMS_SCALAR_REASSOCIATE_H
55 return LHS.Rank >
RHS.Rank;
98 Instruction::BinaryOpsEnd - Instruction::BinaryOpsBegin;
115 unsigned getRank(
Value *V);
This file defines the DenseMap class.
This header defines various interfaces for pass management in LLVM.
This file builds on the ADT/GraphTraits.h file to build a generic graph post order iterator.
This file implements a set that has insertion order iteration characteristics.
Class for arbitrary precision integers.
A container for analyses that lazily runs them and caches their results.
InstListType::iterator iterator
Instruction iterators...
This class represents an Operation in the Expression.
Common base class shared among various IRBuilders.
A set of analyses that are preserved following a run of a transformation pass.
Reassociate commutative expressions.
DenseMap< BasicBlock *, unsigned > RankMap
DenseMap< AssertingVH< Value >, unsigned > ValueRankMap
static const unsigned GlobalReassociateLimit
PreservedAnalyses run(Function &F, FunctionAnalysisManager &)
static const unsigned NumBinaryOps
DenseMap< std::pair< Value *, Value * >, PairMapValue > PairMap[NumBinaryOps]
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
LLVM Value Representation.
A nullable Value handle that is nullable.
Utility class representing a non-constant Xor-operand.
@ BasicBlock
Various leaf nodes.
bool operator<(const ValueEntry &LHS, const ValueEntry &RHS)
This is an optimization pass for GlobalISel generic memory operations.
A CRTP mix-in to automatically provide informational APIs needed for passes.
Utility class representing a base and exponent pair which form one factor of some product.
Factor(Value *Base, unsigned Power)
ValueEntry(unsigned R, Value *O)