H A D | InstructionSimplify.cpp | 154 if (Value *V = simplifyAndInst(Cond, TCmp, Q, MaxRecurse)) in simplifyCmpSelCase() argument 171 simplifyCmpSelTrueCase(CmpInst::Predicate Pred,Value * LHS,Value * RHS,Value * Cond,const SimplifyQuery & Q,unsigned MaxRecurse) simplifyCmpSelTrueCase() argument 180 simplifyCmpSelFalseCase(CmpInst::Predicate Pred,Value * LHS,Value * RHS,Value * Cond,const SimplifyQuery & Q,unsigned MaxRecurse) simplifyCmpSelFalseCase() argument 190 handleOtherCmpSelSimplifications(Value * TCmp,Value * FCmp,Value * Cond,const SimplifyQuery & Q,unsigned MaxRecurse) handleOtherCmpSelSimplifications() argument 240 expandBinOp(Instruction::BinaryOps Opcode,Value * V,Value * OtherOp,Instruction::BinaryOps OpcodeToExpand,const SimplifyQuery & Q,unsigned MaxRecurse) expandBinOp() argument 275 expandCommutativeBinOp(Instruction::BinaryOps Opcode,Value * L,Value * R,Instruction::BinaryOps OpcodeToExpand,const SimplifyQuery & Q,unsigned MaxRecurse) expandCommutativeBinOp() argument 292 simplifyAssociativeBinOp(Instruction::BinaryOps Opcode,Value * LHS,Value * RHS,const SimplifyQuery & Q,unsigned MaxRecurse) simplifyAssociativeBinOp() argument 395 threadBinOpOverSelect(Instruction::BinaryOps Opcode,Value * LHS,Value * RHS,const SimplifyQuery & Q,unsigned MaxRecurse) threadBinOpOverSelect() argument 474 threadCmpOverSelect(CmpInst::Predicate Pred,Value * LHS,Value * RHS,const SimplifyQuery & Q,unsigned MaxRecurse) threadCmpOverSelect() argument 520 threadBinOpOverPHI(Instruction::BinaryOps Opcode,Value * LHS,Value * RHS,const SimplifyQuery & Q,unsigned MaxRecurse) threadBinOpOverPHI() argument 567 threadCmpOverPHI(CmpInst::Predicate Pred,Value * LHS,Value * RHS,const SimplifyQuery & Q,unsigned MaxRecurse) threadCmpOverPHI() argument 609 foldOrCommuteConstant(Instruction::BinaryOps Opcode,Value * & Op0,Value * & Op1,const SimplifyQuery & Q) foldOrCommuteConstant() argument 636 simplifyAddInst(Value * Op0,Value * Op1,bool IsNSW,bool IsNUW,const SimplifyQuery & Q,unsigned MaxRecurse) simplifyAddInst() argument 754 simplifyByDomEq(unsigned Opcode,Value * Op0,Value * Op1,const SimplifyQuery & Q,unsigned MaxRecurse) simplifyByDomEq() argument 788 simplifySubInst(Value * Op0,Value * Op1,bool IsNSW,bool IsNUW,const SimplifyQuery & Q,unsigned MaxRecurse) simplifySubInst() argument 924 simplifySubInst(Value * Op0,Value * Op1,bool IsNSW,bool IsNUW,const SimplifyQuery & Q) simplifySubInst() argument 931 simplifyMulInst(Value * Op0,Value * Op1,bool IsNSW,bool IsNUW,const SimplifyQuery & Q,unsigned MaxRecurse) simplifyMulInst() argument 996 simplifyMulInst(Value * Op0,Value * Op1,bool IsNSW,bool IsNUW,const SimplifyQuery & Q) simplifyMulInst() argument 1004 isICmpTrue(ICmpInst::Predicate Pred,Value * LHS,Value * RHS,const SimplifyQuery & Q,unsigned MaxRecurse) isICmpTrue() argument 1012 isDivZero(Value * X,Value * Y,const SimplifyQuery & Q,unsigned MaxRecurse,bool IsSigned) isDivZero() argument 1079 simplifyDivRem(Instruction::BinaryOps Opcode,Value * Op0,Value * Op1,const SimplifyQuery & Q,unsigned MaxRecurse) simplifyDivRem() argument 1186 simplifyDiv(Instruction::BinaryOps Opcode,Value * Op0,Value * Op1,bool IsExact,const SimplifyQuery & Q,unsigned MaxRecurse) simplifyDiv() argument 1221 simplifyRem(Instruction::BinaryOps Opcode,Value * Op0,Value * Op1,const SimplifyQuery & Q,unsigned MaxRecurse) simplifyRem() argument 1258 simplifySDivInst(Value * Op0,Value * Op1,bool IsExact,const SimplifyQuery & Q,unsigned MaxRecurse) simplifySDivInst() argument 1267 simplifySDivInst(Value * Op0,Value * Op1,bool IsExact,const SimplifyQuery & Q) simplifySDivInst() argument 1274 simplifyUDivInst(Value * Op0,Value * Op1,bool IsExact,const SimplifyQuery & Q,unsigned MaxRecurse) simplifyUDivInst() argument 1279 simplifyUDivInst(Value * Op0,Value * Op1,bool IsExact,const SimplifyQuery & Q) simplifyUDivInst() argument 1285 simplifySRemInst(Value * Op0,Value * Op1,const SimplifyQuery & Q,unsigned MaxRecurse) simplifySRemInst() argument 1300 simplifySRemInst(Value * Op0,Value * Op1,const SimplifyQuery & Q) simplifySRemInst() argument 1306 simplifyURemInst(Value * Op0,Value * Op1,const SimplifyQuery & Q,unsigned MaxRecurse) simplifyURemInst() argument 1311 simplifyURemInst(Value * Op0,Value * Op1,const SimplifyQuery & Q) simplifyURemInst() argument 1316 isPoisonShift(Value * Amount,const SimplifyQuery & Q) isPoisonShift() argument 1348 simplifyShift(Instruction::BinaryOps Opcode,Value * Op0,Value * Op1,bool IsNSW,const SimplifyQuery & Q,unsigned MaxRecurse) simplifyShift() argument 1419 simplifyRightShift(Instruction::BinaryOps Opcode,Value * Op0,Value * Op1,bool IsExact,const SimplifyQuery & Q,unsigned MaxRecurse) simplifyRightShift() argument 1447 simplifyShlInst(Value * Op0,Value * Op1,bool IsNSW,bool IsNUW,const SimplifyQuery & Q,unsigned MaxRecurse) simplifyShlInst() argument 1481 simplifyShlInst(Value * Op0,Value * Op1,bool IsNSW,bool IsNUW,const SimplifyQuery & Q) simplifyShlInst() argument 1488 simplifyLShrInst(Value * Op0,Value * Op1,bool IsExact,const SimplifyQuery & Q,unsigned MaxRecurse) simplifyLShrInst() argument 1518 simplifyLShrInst(Value * Op0,Value * Op1,bool IsExact,const SimplifyQuery & Q) simplifyLShrInst() argument 1525 simplifyAShrInst(Value * Op0,Value * Op1,bool IsExact,const SimplifyQuery & Q,unsigned MaxRecurse) simplifyAShrInst() argument 1551 simplifyAShrInst(Value * Op0,Value * Op1,bool IsExact,const SimplifyQuery & Q) simplifyAShrInst() argument 1559 simplifyUnsignedRangeCheck(ICmpInst * ZeroICmp,ICmpInst * UnsignedICmp,bool IsAnd,const SimplifyQuery & Q) simplifyUnsignedRangeCheck() argument 1772 simplifyAndOfICmps(ICmpInst * Op0,ICmpInst * Op1,const SimplifyQuery & Q) simplifyAndOfICmps() argument 1842 simplifyOrOfICmps(ICmpInst * Op0,ICmpInst * Op1,const SimplifyQuery & Q) simplifyOrOfICmps() argument 1864 simplifyAndOrOfFCmps(const SimplifyQuery & Q,FCmpInst * LHS,FCmpInst * RHS,bool IsAnd) simplifyAndOrOfFCmps() argument 1907 simplifyAndOrOfCmps(const SimplifyQuery & Q,Value * Op0,Value * Op1,bool IsAnd) simplifyAndOrOfCmps() argument 1951 simplifyAndOrWithICmpEq(unsigned Opcode,Value * Op0,Value * Op1,const SimplifyQuery & Q,unsigned MaxRecurse) simplifyAndOrWithICmpEq() argument 2022 simplifyAndCommutative(Value * Op0,Value * Op1,const SimplifyQuery & Q,unsigned MaxRecurse) simplifyAndCommutative() argument 2074 simplifyAndInst(Value * Op0,Value * Op1,const SimplifyQuery & Q,unsigned MaxRecurse) simplifyAndInst() argument 2253 simplifyAndInst(Value * Op0,Value * Op1,const SimplifyQuery & Q) simplifyAndInst() argument 2349 simplifyOrInst(Value * Op0,Value * Op1,const SimplifyQuery & Q,unsigned MaxRecurse) simplifyOrInst() argument 2527 simplifyOrInst(Value * Op0,Value * Op1,const SimplifyQuery & Q) simplifyOrInst() argument 2533 simplifyXorInst(Value * Op0,Value * Op1,const SimplifyQuery & Q,unsigned MaxRecurse) simplifyXorInst() argument 2604 simplifyXorInst(Value * Op0,Value * Op1,const SimplifyQuery & Q) simplifyXorInst() argument 2725 computePointerICmp(CmpInst::Predicate Pred,Value * LHS,Value * RHS,const SimplifyQuery & Q) computePointerICmp() argument 2874 simplifyICmpOfBools(CmpInst::Predicate Pred,Value * LHS,Value * RHS,const SimplifyQuery & Q) simplifyICmpOfBools() argument 2977 simplifyICmpWithZero(CmpInst::Predicate Pred,Value * LHS,Value * RHS,const SimplifyQuery & Q) simplifyICmpWithZero() argument 3086 simplifyICmpWithBinOpOnLHS(CmpInst::Predicate Pred,BinaryOperator * LBO,Value * RHS,const SimplifyQuery & Q,unsigned MaxRecurse) simplifyICmpWithBinOpOnLHS() argument 3267 simplifyICmpWithBinOp(CmpInst::Predicate Pred,Value * LHS,Value * RHS,const SimplifyQuery & Q,unsigned MaxRecurse) simplifyICmpWithBinOp() argument 3501 simplifyICmpWithMinMax(CmpInst::Predicate Pred,Value * LHS,Value * RHS,const SimplifyQuery & Q,unsigned MaxRecurse) simplifyICmpWithMinMax() argument 3687 simplifyICmpWithDominatingAssume(CmpInst::Predicate Predicate,Value * LHS,Value * RHS,const SimplifyQuery & Q) simplifyICmpWithDominatingAssume() argument 3756 simplifyICmpInst(unsigned Predicate,Value * LHS,Value * RHS,const SimplifyQuery & Q,unsigned MaxRecurse) simplifyICmpInst() argument 4065 simplifyICmpInst(unsigned Predicate,Value * LHS,Value * RHS,const SimplifyQuery & Q) simplifyICmpInst() argument 4072 simplifyFCmpInst(unsigned Predicate,Value * LHS,Value * RHS,FastMathFlags FMF,const SimplifyQuery & Q,unsigned MaxRecurse) simplifyFCmpInst() argument 4292 simplifyFCmpInst(unsigned Predicate,Value * LHS,Value * RHS,FastMathFlags FMF,const SimplifyQuery & Q) simplifyFCmpInst() argument 4297 simplifyWithOpReplaced(Value * V,Value * Op,Value * RepOp,const SimplifyQuery & Q,bool AllowRefinement,SmallVectorImpl<Instruction * > * DropFlags,unsigned MaxRecurse) simplifyWithOpReplaced() argument 4465 simplifyWithOpReplaced(Value * V,Value * Op,Value * RepOp,const SimplifyQuery & Q,bool AllowRefinement,SmallVectorImpl<Instruction * > * DropFlags) simplifyWithOpReplaced() argument 4605 simplifySelectWithICmpEq(Value * CmpLHS,Value * CmpRHS,Value * TrueVal,Value * FalseVal,const SimplifyQuery & Q,unsigned MaxRecurse) simplifySelectWithICmpEq() argument 4623 simplifySelectWithICmpCond(Value * CondVal,Value * TrueVal,Value * FalseVal,const SimplifyQuery & Q,unsigned MaxRecurse) simplifySelectWithICmpCond() argument 4747 simplifySelectWithFCmp(Value * Cond,Value * T,Value * F,const SimplifyQuery & Q) simplifySelectWithFCmp() argument 4778 simplifySelectInst(Value * Cond,Value * TrueVal,Value * FalseVal,const SimplifyQuery & Q,unsigned MaxRecurse) simplifySelectInst() argument 4955 simplifySelectInst(Value * Cond,Value * TrueVal,Value * FalseVal,const SimplifyQuery & Q) simplifySelectInst() argument 4963 simplifyGEPInst(Type * SrcTy,Value * Ptr,ArrayRef<Value * > Indices,GEPNoWrapFlags NW,const SimplifyQuery & Q,unsigned) simplifyGEPInst() argument 5096 simplifyGEPInst(Type * SrcTy,Value * Ptr,ArrayRef<Value * > Indices,GEPNoWrapFlags NW,const SimplifyQuery & Q) simplifyGEPInst() argument 5104 simplifyInsertValueInst(Value * Agg,Value * Val,ArrayRef<unsigned> Idxs,const SimplifyQuery & Q,unsigned) simplifyInsertValueInst() argument 5136 simplifyInsertValueInst(Value * Agg,Value * Val,ArrayRef<unsigned> Idxs,const SimplifyQuery & Q) simplifyInsertValueInst() argument 5141 simplifyInsertElementInst(Value * Vec,Value * Val,Value * Idx,const SimplifyQuery & Q) simplifyInsertElementInst() argument 5201 simplifyExtractValueInst(Value * Agg,ArrayRef<unsigned> Idxs,const SimplifyQuery & Q) simplifyExtractValueInst() argument 5208 simplifyExtractElementInst(Value * Vec,Value * Idx,const SimplifyQuery & Q,unsigned) simplifyExtractElementInst() argument 5253 simplifyExtractElementInst(Value * Vec,Value * Idx,const SimplifyQuery & Q) simplifyExtractElementInst() argument 5259 simplifyPHINode(PHINode * PN,ArrayRef<Value * > IncomingValues,const SimplifyQuery & Q) simplifyPHINode() argument 5304 simplifyCastInst(unsigned CastOpc,Value * Op,Type * Ty,const SimplifyQuery & Q,unsigned MaxRecurse) simplifyCastInst() argument 5338 simplifyCastInst(unsigned CastOpc,Value * Op,Type * Ty,const SimplifyQuery & Q) simplifyCastInst() argument 5392 simplifyShuffleVectorInst(Value * Op0,Value * Op1,ArrayRef<int> Mask,Type * RetTy,const SimplifyQuery & Q,unsigned MaxRecurse) simplifyShuffleVectorInst() argument 5508 simplifyShuffleVectorInst(Value * Op0,Value * Op1,ArrayRef<int> Mask,Type * RetTy,const SimplifyQuery & Q) simplifyShuffleVectorInst() argument 5513 foldConstant(Instruction::UnaryOps Opcode,Value * & Op,const SimplifyQuery & Q) foldConstant() argument 5522 simplifyFNegInst(Value * Op,FastMathFlags FMF,const SimplifyQuery & Q,unsigned MaxRecurse) simplifyFNegInst() argument 5535 simplifyFNegInst(Value * Op,FastMathFlags FMF,const SimplifyQuery & Q) simplifyFNegInst() argument 5584 simplifyFPOp(ArrayRef<Value * > Ops,FastMathFlags FMF,const SimplifyQuery & Q,fp::ExceptionBehavior ExBehavior,RoundingMode Rounding) simplifyFPOp() argument 5626 simplifyFAddInst(Value * Op0,Value * Op1,FastMathFlags FMF,const SimplifyQuery & Q,unsigned MaxRecurse,fp::ExceptionBehavior ExBehavior=fp::ebIgnore,RoundingMode Rounding=RoundingMode::NearestTiesToEven) simplifyFAddInst() argument 5692 simplifyFSubInst(Value * Op0,Value * Op1,FastMathFlags FMF,const SimplifyQuery & Q,unsigned MaxRecurse,fp::ExceptionBehavior ExBehavior=fp::ebIgnore,RoundingMode Rounding=RoundingMode::NearestTiesToEven) simplifyFSubInst() argument 5758 simplifyFMAFMul(Value * Op0,Value * Op1,FastMathFlags FMF,const SimplifyQuery & Q,unsigned MaxRecurse,fp::ExceptionBehavior ExBehavior,RoundingMode Rounding) simplifyFMAFMul() argument 5807 simplifyFMulInst(Value * Op0,Value * Op1,FastMathFlags FMF,const SimplifyQuery & Q,unsigned MaxRecurse,fp::ExceptionBehavior ExBehavior=fp::ebIgnore,RoundingMode Rounding=RoundingMode::NearestTiesToEven) simplifyFMulInst() argument 5819 simplifyFAddInst(Value * Op0,Value * Op1,FastMathFlags FMF,const SimplifyQuery & Q,fp::ExceptionBehavior ExBehavior,RoundingMode Rounding) simplifyFAddInst() argument 5827 simplifyFSubInst(Value * Op0,Value * Op1,FastMathFlags FMF,const SimplifyQuery & Q,fp::ExceptionBehavior ExBehavior,RoundingMode Rounding) simplifyFSubInst() argument 5835 simplifyFMulInst(Value * Op0,Value * Op1,FastMathFlags FMF,const SimplifyQuery & Q,fp::ExceptionBehavior ExBehavior,RoundingMode Rounding) simplifyFMulInst() argument 5843 simplifyFMAFMul(Value * Op0,Value * Op1,FastMathFlags FMF,const SimplifyQuery & Q,fp::ExceptionBehavior ExBehavior,RoundingMode Rounding) simplifyFMAFMul() argument 5852 simplifyFDivInst(Value * Op0,Value * Op1,FastMathFlags FMF,const SimplifyQuery & Q,unsigned,fp::ExceptionBehavior ExBehavior=fp::ebIgnore,RoundingMode Rounding=RoundingMode::NearestTiesToEven) simplifyFDivInst() argument 5902 simplifyFDivInst(Value * Op0,Value * Op1,FastMathFlags FMF,const SimplifyQuery & Q,fp::ExceptionBehavior ExBehavior,RoundingMode Rounding) simplifyFDivInst() argument 5911 simplifyFRemInst(Value * Op0,Value * Op1,FastMathFlags FMF,const SimplifyQuery & Q,unsigned,fp::ExceptionBehavior ExBehavior=fp::ebIgnore,RoundingMode Rounding=RoundingMode::NearestTiesToEven) simplifyFRemInst() argument 5940 simplifyFRemInst(Value * Op0,Value * Op1,FastMathFlags FMF,const SimplifyQuery & Q,fp::ExceptionBehavior ExBehavior,RoundingMode Rounding) simplifyFRemInst() argument 5951 simplifyUnOp(unsigned Opcode,Value * Op,const SimplifyQuery & Q,unsigned MaxRecurse) simplifyUnOp() argument 5965 simplifyFPUnOp(unsigned Opcode,Value * Op,const FastMathFlags & FMF,const SimplifyQuery & Q,unsigned MaxRecurse) simplifyFPUnOp() argument 5975 simplifyUnOp(unsigned Opcode,Value * Op,const SimplifyQuery & Q) simplifyUnOp() argument 5980 simplifyUnOp(unsigned Opcode,Value * Op,FastMathFlags FMF,const SimplifyQuery & Q) simplifyUnOp() argument 5987 simplifyBinOp(unsigned Opcode,Value * LHS,Value * RHS,const SimplifyQuery & Q,unsigned MaxRecurse) simplifyBinOp() argument 6038 simplifyBinOp(unsigned Opcode,Value * LHS,Value * RHS,const FastMathFlags & FMF,const SimplifyQuery & Q,unsigned MaxRecurse) simplifyBinOp() argument 6055 simplifyBinOp(unsigned Opcode,Value * LHS,Value * RHS,const SimplifyQuery & Q) simplifyBinOp() argument 6060 simplifyBinOp(unsigned Opcode,Value * LHS,Value * RHS,FastMathFlags FMF,const SimplifyQuery & Q) simplifyBinOp() argument 6066 simplifyCmpInst(unsigned Predicate,Value * LHS,Value * RHS,const SimplifyQuery & Q,unsigned MaxRecurse) simplifyCmpInst() argument 6073 simplifyCmpInst(unsigned Predicate,Value * LHS,Value * RHS,const SimplifyQuery & Q) simplifyCmpInst() argument 6168 simplifyLdexp(Value * Op0,Value * Op1,const SimplifyQuery & Q,bool IsStrict) simplifyLdexp() argument 6218 simplifyUnaryIntrinsic(Function * F,Value * Op0,const SimplifyQuery & Q,const CallBase * Call) simplifyUnaryIntrinsic() argument 6405 simplifyBinaryIntrinsic(Intrinsic::ID IID,Type * ReturnType,Value * Op0,Value * Op1,const SimplifyQuery & Q,const CallBase * Call) simplifyBinaryIntrinsic() argument 6730 simplifyIntrinsic(CallBase * Call,Value * Callee,ArrayRef<Value * > Args,const SimplifyQuery & Q) simplifyIntrinsic() argument 6923 tryConstantFoldCall(CallBase * Call,Value * Callee,ArrayRef<Value * > Args,const SimplifyQuery & Q) tryConstantFoldCall() argument 6944 simplifyCall(CallBase * Call,Value * Callee,ArrayRef<Value * > Args,const SimplifyQuery & Q) simplifyCall() argument 6969 simplifyConstrainedFPCall(CallBase * Call,const SimplifyQuery & Q) simplifyConstrainedFPCall() argument 6980 simplifyFreezeInst(Value * Op0,const SimplifyQuery & Q) simplifyFreezeInst() argument 6988 simplifyFreezeInst(Value * Op0,const SimplifyQuery & Q) simplifyFreezeInst() argument 6993 simplifyLoadInst(LoadInst * LI,Value * PtrOp,const SimplifyQuery & Q) simplifyLoadInst() argument 7039 const SimplifyQuery Q = SQ.CxtI ? SQ : SQ.getWithInstruction(I); simplifyInstructionWithOperands() local [all...] |