LLVM  6.0.0svn
Classes | Namespaces | Functions
InstructionSimplify.h File Reference
#include "llvm/IR/User.h"
Include dependency graph for InstructionSimplify.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  llvm::AnalysisManager< IRUnitT, ExtraArgTs >
 A container for analyses that lazily runs them and caches their results. More...
 
class  llvm::ArrayRef< T >
 ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory), i.e. More...
 
struct  llvm::SimplifyQuery
 

Namespaces

 llvm
 Compute iterated dominance frontiers using a linear time algorithm.
 

Functions

Valuellvm::SimplifyAddInst (Value *LHS, Value *RHS, bool isNSW, bool isNUW, const SimplifyQuery &Q)
 Given operands for an Add, fold the result or return null. More...
 
Valuellvm::SimplifySubInst (Value *LHS, Value *RHS, bool isNSW, bool isNUW, const SimplifyQuery &Q)
 Given operands for a Sub, fold the result or return null. More...
 
Valuellvm::SimplifyFAddInst (Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q)
 Given operands for an FAdd, fold the result or return null. More...
 
Valuellvm::SimplifyFSubInst (Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q)
 Given operands for an FSub, fold the result or return null. More...
 
Valuellvm::SimplifyFMulInst (Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q)
 Given operands for an FMul, fold the result or return null. More...
 
Valuellvm::SimplifyMulInst (Value *LHS, Value *RHS, const SimplifyQuery &Q)
 Given operands for a Mul, fold the result or return null. More...
 
Valuellvm::SimplifySDivInst (Value *LHS, Value *RHS, const SimplifyQuery &Q)
 Given operands for an SDiv, fold the result or return null. More...
 
Valuellvm::SimplifyUDivInst (Value *LHS, Value *RHS, const SimplifyQuery &Q)
 Given operands for a UDiv, fold the result or return null. More...
 
Valuellvm::SimplifyFDivInst (Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q)
 Given operands for an FDiv, fold the result or return null. More...
 
Valuellvm::SimplifySRemInst (Value *LHS, Value *RHS, const SimplifyQuery &Q)
 Given operands for an SRem, fold the result or return null. More...
 
Valuellvm::SimplifyURemInst (Value *LHS, Value *RHS, const SimplifyQuery &Q)
 Given operands for a URem, fold the result or return null. More...
 
Valuellvm::SimplifyFRemInst (Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q)
 Given operands for an FRem, fold the result or return null. More...
 
Valuellvm::SimplifyShlInst (Value *Op0, Value *Op1, bool isNSW, bool isNUW, const SimplifyQuery &Q)
 Given operands for a Shl, fold the result or return null. More...
 
Valuellvm::SimplifyLShrInst (Value *Op0, Value *Op1, bool isExact, const SimplifyQuery &Q)
 Given operands for a LShr, fold the result or return null. More...
 
Valuellvm::SimplifyAShrInst (Value *Op0, Value *Op1, bool isExact, const SimplifyQuery &Q)
 Given operands for a AShr, fold the result or return nulll. More...
 
Valuellvm::SimplifyAndInst (Value *LHS, Value *RHS, const SimplifyQuery &Q)
 Given operands for an And, fold the result or return null. More...
 
Valuellvm::SimplifyOrInst (Value *LHS, Value *RHS, const SimplifyQuery &Q)
 Given operands for an Or, fold the result or return null. More...
 
Valuellvm::SimplifyXorInst (Value *LHS, Value *RHS, const SimplifyQuery &Q)
 Given operands for an Xor, fold the result or return null. More...
 
Valuellvm::SimplifyICmpInst (unsigned Predicate, Value *LHS, Value *RHS, const SimplifyQuery &Q)
 Given operands for an ICmpInst, fold the result or return null. More...
 
Valuellvm::SimplifyFCmpInst (unsigned Predicate, Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q)
 Given operands for an FCmpInst, fold the result or return null. More...
 
Valuellvm::SimplifySelectInst (Value *Cond, Value *TrueVal, Value *FalseVal, const SimplifyQuery &Q)
 Given operands for a SelectInst, fold the result or return null. More...
 
Valuellvm::SimplifyGEPInst (Type *SrcTy, ArrayRef< Value *> Ops, const SimplifyQuery &Q)
 Given operands for a GetElementPtrInst, fold the result or return null. More...
 
Valuellvm::SimplifyInsertValueInst (Value *Agg, Value *Val, ArrayRef< unsigned > Idxs, const SimplifyQuery &Q)
 Given operands for an InsertValueInst, fold the result or return null. More...
 
Valuellvm::SimplifyExtractValueInst (Value *Agg, ArrayRef< unsigned > Idxs, const SimplifyQuery &Q)
 Given operands for an ExtractValueInst, fold the result or return null. More...
 
Valuellvm::SimplifyExtractElementInst (Value *Vec, Value *Idx, const SimplifyQuery &Q)
 Given operands for an ExtractElementInst, fold the result or return null. More...
 
Valuellvm::SimplifyCastInst (unsigned CastOpc, Value *Op, Type *Ty, const SimplifyQuery &Q)
 Given operands for a CastInst, fold the result or return null. More...
 
Valuellvm::SimplifyShuffleVectorInst (Value *Op0, Value *Op1, Constant *Mask, Type *RetTy, const SimplifyQuery &Q)
 Given operands for a ShuffleVectorInst, fold the result or return null. More...
 
Valuellvm::SimplifyCmpInst (unsigned Predicate, Value *LHS, Value *RHS, const SimplifyQuery &Q)
 Given operands for a CmpInst, fold the result or return null. More...
 
Valuellvm::SimplifyBinOp (unsigned Opcode, Value *LHS, Value *RHS, const SimplifyQuery &Q)
 Given operands for a BinaryOperator, fold the result or return null. More...
 
Valuellvm::SimplifyFPBinOp (unsigned Opcode, Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q)
 Given operands for an FP BinaryOperator, fold the result or return null. More...
 
Valuellvm::SimplifyCall (ImmutableCallSite CS, Value *V, User::op_iterator ArgBegin, User::op_iterator ArgEnd, const SimplifyQuery &Q)
 Given a function and iterators over arguments, fold the result or return null. More...
 
Valuellvm::SimplifyCall (ImmutableCallSite CS, Value *V, ArrayRef< Value *> Args, const SimplifyQuery &Q)
 Given a function and set of arguments, fold the result or return null. More...
 
Valuellvm::SimplifyInstruction (Instruction *I, const SimplifyQuery &Q, OptimizationRemarkEmitter *ORE=nullptr)
 See if we can compute a simplified version of this instruction. More...
 
bool llvm::replaceAndRecursivelySimplify (Instruction *I, Value *SimpleV, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr)
 Replace all uses of 'I' with 'SimpleV' and simplify the uses recursively. More...
 
bool llvm::recursivelySimplifyInstruction (Instruction *I, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr)
 Recursively attempt to simplify an instruction. More...
 
const SimplifyQuery llvm::getBestSimplifyQuery (Pass &, Function &)
 
template<class T , class... TArgs>
const SimplifyQuery llvm::getBestSimplifyQuery (AnalysisManager< T, TArgs... > &, Function &)
 
const SimplifyQuery llvm::getBestSimplifyQuery (LoopStandardAnalysisResults &, const DataLayout &)