22#ifndef LLVM_TRANSFORMS_SCALAR_REASSOCIATE_H
23#define LLVM_TRANSFORMS_SCALAR_REASSOCIATE_H
57 return LHS.Rank >
RHS.Rank;
87 Instruction::BinaryOpsEnd - Instruction::BinaryOpsBegin;
104 unsigned getRank(
Value *V);
MachineBasicBlock MachineBasicBlock::iterator DebugLoc DL
This file defines the DenseMap class.
This header defines various interfaces for pass management in LLVM.
const AbstractManglingParser< Derived, Alloc >::OperatorInfo AbstractManglingParser< Derived, Alloc >::Ops[]
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.
LLVM Basic Block Representation.
InstListType::iterator iterator
Instruction iterators...
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
LLVM_ABI PreservedAnalyses run(Function &F, FunctionAnalysisManager &)
SetVector< AssertingVH< Instruction >, std::deque< AssertingVH< Instruction > > > OrderedSet
static const unsigned NumBinaryOps
DenseMap< std::pair< Value *, Value * >, PairMapValue > PairMap[NumBinaryOps]
A vector that has set insertion semantics.
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.
A private "module" namespace for types and utilities used by Reassociate.
bool operator<(const ValueEntry &LHS, const ValueEntry &RHS)
This is an optimization pass for GlobalISel generic memory operations.
DWARFExpression::Operation Op
AnalysisManager< Function > FunctionAnalysisManager
Convenience typedef for the Function analysis manager.
A CRTP mix-in to automatically provide informational APIs needed for passes.
Factor(Value *Base, unsigned Power)
ValueEntry(unsigned R, Value *O)