Changeset View
Changeset View
Standalone View
Standalone View
llvm/lib/Transforms/InstCombine/InstCombineInternal.h
Show First 20 Lines • Show All 369 Lines • ▼ Show 20 Lines | private: | ||||
Value *foldAndOrOfICmpsOfAndWithPow2(ICmpInst *LHS, ICmpInst *RHS, | Value *foldAndOrOfICmpsOfAndWithPow2(ICmpInst *LHS, ICmpInst *RHS, | ||||
Instruction *CxtI, bool IsAnd, | Instruction *CxtI, bool IsAnd, | ||||
bool IsLogical = false); | bool IsLogical = false); | ||||
Value *matchSelectFromAndOr(Value *A, Value *B, Value *C, Value *D, | Value *matchSelectFromAndOr(Value *A, Value *B, Value *C, Value *D, | ||||
bool InvertFalseVal = false); | bool InvertFalseVal = false); | ||||
Value *getSelectCondition(Value *A, Value *B, bool ABIsTheSame); | Value *getSelectCondition(Value *A, Value *B, bool ABIsTheSame); | ||||
Instruction *foldLShrOverflowBit(BinaryOperator &I); | |||||
Instruction *foldExtractOfOverflowIntrinsic(ExtractValueInst &EV); | Instruction *foldExtractOfOverflowIntrinsic(ExtractValueInst &EV); | ||||
Instruction *foldIntrinsicWithOverflowCommon(IntrinsicInst *II); | Instruction *foldIntrinsicWithOverflowCommon(IntrinsicInst *II); | ||||
Instruction *foldFPSignBitOps(BinaryOperator &I); | Instruction *foldFPSignBitOps(BinaryOperator &I); | ||||
Instruction *foldFDivConstantDivisor(BinaryOperator &I); | Instruction *foldFDivConstantDivisor(BinaryOperator &I); | ||||
// Optimize one of these forms: | // Optimize one of these forms: | ||||
// and i1 Op, SI / select i1 Op, i1 SI, i1 false (if IsAnd = true) | // and i1 Op, SI / select i1 Op, i1 SI, i1 false (if IsAnd = true) | ||||
// or i1 Op, SI / select i1 Op, i1 true, i1 SI (if IsAnd = false) | // or i1 Op, SI / select i1 Op, i1 true, i1 SI (if IsAnd = false) | ||||
▲ Show 20 Lines • Show All 326 Lines • Show Last 20 Lines |