Lines Matching refs:Value
43 /// \brief Assign a complexity or rank value to LLVM Values.
52 static inline unsigned getComplexity(Value *V) {
73 /// \brief Return true if the specified value is free to invert (apply ~ to).
78 static inline bool IsFreeToInvert(Value *V, bool WillInvertAllUses) {
221 // Return Value:
228 Value *OptimizePointerDifference(Value *LHS, Value *RHS, Type *Ty);
232 Value *foldFMulConst(Instruction *FMulOrDiv, Constant *C,
246 Value *simplifyRangeCheck(ICmpInst *Cmp0, ICmpInst *Cmp1, bool Inverted);
247 Value *FoldAndOfICmps(ICmpInst *LHS, ICmpInst *RHS);
248 Value *FoldAndOfFCmps(FCmpInst *LHS, FCmpInst *RHS);
250 Value *FoldOrOfICmps(ICmpInst *LHS, ICmpInst *RHS, Instruction *CxtI);
251 Value *FoldOrOfFCmps(FCmpInst *LHS, FCmpInst *RHS);
252 Instruction *FoldOrWithConstants(BinaryOperator &I, Value *Op, Value *A,
253 Value *B, Value *C);
254 Instruction *FoldXorWithConstants(BinaryOperator &I, Value *Op, Value *A,
255 Value *B, Value *C);
276 Instruction *FoldICmpCstShrCst(ICmpInst &I, Value *Op, Value *A,
278 Instruction *FoldICmpCstShlCst(ICmpInst &I, Value *Op, Value *A,
280 Instruction *FoldICmpAddOpCst(Instruction &ICI, Value *X, ConstantInt *CI,
282 Instruction *FoldGEPICmp(GEPOperator *GEPLHS, Value *RHS,
284 Instruction *FoldAllocaCmp(ICmpInst &ICI, AllocaInst *Alloca, Value *Other);
285 Instruction *FoldShiftByConstant(Value *Op0, Constant *Op1,
303 Instruction *FoldSelectIntoOp(SelectInst &SI, Value *, Value *);
305 Value *A, Value *B, Instruction &Outer,
306 SelectPatternFlavor SPF2, Value *C);
347 Value *dyn_castNegVal(Value *V) const;
348 Value *dyn_castFNegVal(Value *V, bool NoSignedZero = false) const;
350 SmallVectorImpl<Value *> &NewIndices);
359 bool ShouldOptimizeCast(Instruction::CastOps opcode, const Value *V,
374 bool OptimizeOverflowCheck(OverflowCheckFlavor OCF, Value *LHS, Value *RHS,
375 Instruction &CtxI, Value *&OperationResult,
386 bool WillNotOverflowSignedAdd(Value *LHS, Value *RHS, Instruction &CxtI);
387 bool WillNotOverflowSignedSub(Value *LHS, Value *RHS, Instruction &CxtI);
388 bool WillNotOverflowUnsignedSub(Value *LHS, Value *RHS, Instruction &CxtI);
389 bool WillNotOverflowSignedMul(Value *LHS, Value *RHS, Instruction &CxtI);
390 Value *EmitGEPOffset(User *GEP);
392 Value *EvaluateInDifferentElementOrder(Value *V, ArrayRef<int> Mask);
418 /// I to the worklist, replace all uses of I with the new value, then return
420 Instruction *ReplaceInstUsesWith(Instruction &I, Value *V) {
440 /// \p Result and a constant \p Overflow value.
441 Instruction *CreateOverflowTuple(IntrinsicInst *II, Value *Result,
452 /// value, we can't rely on DCE to delete the instruction. Instead, visit
453 /// methods should return the value returned by this function.
471 void computeKnownBits(Value *V, APInt &KnownZero, APInt &KnownOne,
477 bool MaskedValueIsZero(Value *V, const APInt &Mask, unsigned Depth = 0,
481 unsigned ComputeNumSignBits(Value *Op, unsigned Depth = 0,
485 void ComputeSignBit(Value *V, bool &KnownZero, bool &KnownOne,
490 OverflowResult computeOverflowForUnsignedMul(Value *LHS, Value *RHS,
494 OverflowResult computeOverflowForUnsignedAdd(Value *LHS, Value *RHS,
510 /// value, or null if it didn't simplify.
511 Value *SimplifyUsingDistributiveLaws(BinaryOperator &I);
513 /// \brief Attempts to replace V with a simpler value based on the demanded
515 Value *SimplifyDemandedUseBits(Value *V, APInt DemandedMask, APInt &KnownZero,
522 Value *SimplifyShrShlDemandedBits(Instruction *Lsr, Instruction *Sftl,
530 Value *SimplifyDemandedVectorElts(Value *V, APInt DemandedElts,
533 Value *SimplifyVectorOp(BinaryOperator &Inst);
534 Value *SimplifyBSwap(BinaryOperator &Inst);
554 Value *FoldLogicalPlusAnd(Value *LHS, Value *RHS, ConstantInt *Mask,
556 Value *InsertRangeTest(Value *V, Constant *Lo, Constant *Hi, bool isSigned,
564 Value *EvaluateInDifferentType(Value *V, Type *Ty, bool isSigned);
566 /// \brief Returns a value X such that Val = X * Scale, or null if none.
569 Value *Descale(Value *Val, APInt Scale, bool &NoSignedWrap);