|
Value * | llvm::SimplifyAddInst (Value *LHS, Value *RHS, bool isNSW, bool isNUW, const SimplifyQuery &Q) |
| Given operands for an Add, fold the result or return null. More...
|
|
Value * | llvm::SimplifySubInst (Value *LHS, Value *RHS, bool isNSW, bool isNUW, const SimplifyQuery &Q) |
| Given operands for a Sub, fold the result or return null. More...
|
|
Value * | llvm::SimplifyFAddInst (Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q) |
| Given operands for an FAdd, fold the result or return null. More...
|
|
Value * | llvm::SimplifyFSubInst (Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q) |
| Given operands for an FSub, fold the result or return null. More...
|
|
Value * | llvm::SimplifyFMulInst (Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q) |
| Given operands for an FMul, fold the result or return null. More...
|
|
Value * | llvm::SimplifyMulInst (Value *LHS, Value *RHS, const SimplifyQuery &Q) |
| Given operands for a Mul, fold the result or return null. More...
|
|
Value * | llvm::SimplifySDivInst (Value *LHS, Value *RHS, const SimplifyQuery &Q) |
| Given operands for an SDiv, fold the result or return null. More...
|
|
Value * | llvm::SimplifyUDivInst (Value *LHS, Value *RHS, const SimplifyQuery &Q) |
| Given operands for a UDiv, fold the result or return null. More...
|
|
Value * | llvm::SimplifyFDivInst (Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q) |
| Given operands for an FDiv, fold the result or return null. More...
|
|
Value * | llvm::SimplifySRemInst (Value *LHS, Value *RHS, const SimplifyQuery &Q) |
| Given operands for an SRem, fold the result or return null. More...
|
|
Value * | llvm::SimplifyURemInst (Value *LHS, Value *RHS, const SimplifyQuery &Q) |
| Given operands for a URem, fold the result or return null. More...
|
|
Value * | llvm::SimplifyFRemInst (Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q) |
| Given operands for an FRem, fold the result or return null. More...
|
|
Value * | llvm::SimplifyShlInst (Value *Op0, Value *Op1, bool isNSW, bool isNUW, const SimplifyQuery &Q) |
| Given operands for a Shl, fold the result or return null. More...
|
|
Value * | llvm::SimplifyLShrInst (Value *Op0, Value *Op1, bool isExact, const SimplifyQuery &Q) |
| Given operands for a LShr, fold the result or return null. More...
|
|
Value * | llvm::SimplifyAShrInst (Value *Op0, Value *Op1, bool isExact, const SimplifyQuery &Q) |
| Given operands for a AShr, fold the result or return nulll. More...
|
|
Value * | llvm::SimplifyAndInst (Value *LHS, Value *RHS, const SimplifyQuery &Q) |
| Given operands for an And, fold the result or return null. More...
|
|
Value * | llvm::SimplifyOrInst (Value *LHS, Value *RHS, const SimplifyQuery &Q) |
| Given operands for an Or, fold the result or return null. More...
|
|
Value * | llvm::SimplifyXorInst (Value *LHS, Value *RHS, const SimplifyQuery &Q) |
| Given operands for an Xor, fold the result or return null. More...
|
|
Value * | llvm::SimplifyICmpInst (unsigned Predicate, Value *LHS, Value *RHS, const SimplifyQuery &Q) |
| Given operands for an ICmpInst, fold the result or return null. More...
|
|
Value * | llvm::SimplifyFCmpInst (unsigned Predicate, Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q) |
| Given operands for an FCmpInst, fold the result or return null. More...
|
|
Value * | llvm::SimplifySelectInst (Value *Cond, Value *TrueVal, Value *FalseVal, const SimplifyQuery &Q) |
| Given operands for a SelectInst, fold the result or return null. More...
|
|
Value * | llvm::SimplifyGEPInst (Type *SrcTy, ArrayRef< Value *> Ops, const SimplifyQuery &Q) |
| Given operands for a GetElementPtrInst, fold the result or return null. More...
|
|
Value * | llvm::SimplifyInsertValueInst (Value *Agg, Value *Val, ArrayRef< unsigned > Idxs, const SimplifyQuery &Q) |
| Given operands for an InsertValueInst, fold the result or return null. More...
|
|
Value * | llvm::SimplifyInsertElementInst (Value *Vec, Value *Elt, Value *Idx, const SimplifyQuery &Q) |
| Given operands for an InsertElement, fold the result or return null. More...
|
|
Value * | llvm::SimplifyExtractValueInst (Value *Agg, ArrayRef< unsigned > Idxs, const SimplifyQuery &Q) |
| Given operands for an ExtractValueInst, fold the result or return null. More...
|
|
Value * | llvm::SimplifyExtractElementInst (Value *Vec, Value *Idx, const SimplifyQuery &Q) |
| Given operands for an ExtractElementInst, fold the result or return null. More...
|
|
Value * | llvm::SimplifyCastInst (unsigned CastOpc, Value *Op, Type *Ty, const SimplifyQuery &Q) |
| Given operands for a CastInst, fold the result or return null. More...
|
|
Value * | llvm::SimplifyShuffleVectorInst (Value *Op0, Value *Op1, Constant *Mask, Type *RetTy, const SimplifyQuery &Q) |
| Given operands for a ShuffleVectorInst, fold the result or return null. More...
|
|
Value * | llvm::SimplifyCmpInst (unsigned Predicate, Value *LHS, Value *RHS, const SimplifyQuery &Q) |
| Given operands for a CmpInst, fold the result or return null. More...
|
|
Value * | llvm::SimplifyBinOp (unsigned Opcode, Value *LHS, Value *RHS, const SimplifyQuery &Q) |
| Given operands for a BinaryOperator, fold the result or return null. More...
|
|
Value * | llvm::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...
|
|
Value * | llvm::SimplifyCall (ImmutableCallSite CS, const SimplifyQuery &Q) |
| Given a callsite, fold the result or return null. More...
|
|
Value * | llvm::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...
|
|
Value * | llvm::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...
|
|
Value * | llvm::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 &) |
|