mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-19 19:12:56 +02:00
don't repeat function names in comments; NFC
llvm-svn: 247154
This commit is contained in:
parent
d982a06194
commit
b8699722a6
@ -886,7 +886,7 @@ static bool checkRippleForAdd(const APInt &Op0KnownZero,
|
||||
return Op0ZeroPosition >= Op1OnePosition;
|
||||
}
|
||||
|
||||
/// WillNotOverflowSignedAdd - Return true if we can prove that:
|
||||
/// Return true if we can prove that:
|
||||
/// (sext (add LHS, RHS)) === (add (sext LHS), (sext RHS))
|
||||
/// This basically requires proving that the add in the original type would not
|
||||
/// overflow to change the sign bit or have a carry out.
|
||||
|
@ -22,9 +22,9 @@ using namespace PatternMatch;
|
||||
#define DEBUG_TYPE "instcombine"
|
||||
|
||||
|
||||
/// simplifyValueKnownNonZero - The specific integer value is used in a context
|
||||
/// where it is known to be non-zero. If this allows us to simplify the
|
||||
/// computation, do so and return the new operand, otherwise return null.
|
||||
/// The specific integer value is used in a context where it is known to be
|
||||
/// non-zero. If this allows us to simplify the computation, do so and return
|
||||
/// the new operand, otherwise return null.
|
||||
static Value *simplifyValueKnownNonZero(Value *V, InstCombiner &IC,
|
||||
Instruction &CxtI) {
|
||||
// If V has multiple uses, then we would have to do more analysis to determine
|
||||
@ -76,8 +76,7 @@ static Value *simplifyValueKnownNonZero(Value *V, InstCombiner &IC,
|
||||
}
|
||||
|
||||
|
||||
/// MultiplyOverflows - True if the multiply can not be expressed in an int
|
||||
/// this size.
|
||||
/// True if the multiply can not be expressed in an int this size.
|
||||
static bool MultiplyOverflows(const APInt &C1, const APInt &C2, APInt &Product,
|
||||
bool IsSigned) {
|
||||
bool Overflow;
|
||||
@ -713,8 +712,7 @@ Instruction *InstCombiner::visitFMul(BinaryOperator &I) {
|
||||
return Changed ? &I : nullptr;
|
||||
}
|
||||
|
||||
/// SimplifyDivRemOfSelect - Try to fold a divide or remainder of a select
|
||||
/// instruction.
|
||||
/// Try to fold a divide or remainder of a select instruction.
|
||||
bool InstCombiner::SimplifyDivRemOfSelect(BinaryOperator &I) {
|
||||
SelectInst *SI = cast<SelectInst>(I.getOperand(1));
|
||||
|
||||
|
@ -67,7 +67,7 @@ static Value *generateMinMaxSelectPattern(InstCombiner::BuilderTy *Builder,
|
||||
return Builder->CreateSelect(Builder->CreateICmp(Pred, A, B), A, B);
|
||||
}
|
||||
|
||||
/// GetSelectFoldableOperands - We want to turn code that looks like this:
|
||||
/// We want to turn code that looks like this:
|
||||
/// %C = or %A, %B
|
||||
/// %D = select %cond, %C, %A
|
||||
/// into:
|
||||
@ -96,8 +96,8 @@ static unsigned GetSelectFoldableOperands(Instruction *I) {
|
||||
}
|
||||
}
|
||||
|
||||
/// GetSelectFoldableConstant - For the same transformation as the previous
|
||||
/// function, return the identity constant that goes into the select.
|
||||
/// For the same transformation as the previous function, return the identity
|
||||
/// constant that goes into the select.
|
||||
static Constant *GetSelectFoldableConstant(Instruction *I) {
|
||||
switch (I->getOpcode()) {
|
||||
default: llvm_unreachable("This cannot happen!");
|
||||
@ -116,7 +116,7 @@ static Constant *GetSelectFoldableConstant(Instruction *I) {
|
||||
}
|
||||
}
|
||||
|
||||
/// FoldSelectOpOp - Here we have (select c, TI, FI), and we know that TI and FI
|
||||
/// Here we have (select c, TI, FI), and we know that TI and FI
|
||||
/// have the same opcode and only one use each. Try to simplify this.
|
||||
Instruction *InstCombiner::FoldSelectOpOp(SelectInst &SI, Instruction *TI,
|
||||
Instruction *FI) {
|
||||
@ -203,8 +203,8 @@ static bool isSelect01(Constant *C1, Constant *C2) {
|
||||
C2I->isOne() || C2I->isAllOnesValue();
|
||||
}
|
||||
|
||||
/// FoldSelectIntoOp - Try fold the select into one of the operands to
|
||||
/// facilitate further optimization.
|
||||
/// Try to fold the select into one of the operands to allow further
|
||||
/// optimization.
|
||||
Instruction *InstCombiner::FoldSelectIntoOp(SelectInst &SI, Value *TrueVal,
|
||||
Value *FalseVal) {
|
||||
// See the comment above GetSelectFoldableOperands for a description of the
|
||||
@ -282,7 +282,7 @@ Instruction *InstCombiner::FoldSelectIntoOp(SelectInst &SI, Value *TrueVal,
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
/// foldSelectICmpAndOr - We want to turn:
|
||||
/// We want to turn:
|
||||
/// (select (icmp eq (and X, C1), 0), Y, (or Y, C2))
|
||||
/// into:
|
||||
/// (or (shl (and X, C1), C3), y)
|
||||
@ -400,9 +400,7 @@ static Value *foldSelectCttzCtlz(ICmpInst *ICI, Value *TrueVal, Value *FalseVal,
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
/// visitSelectInstWithICmp - Visit a SelectInst that has an
|
||||
/// ICmpInst as its first operand.
|
||||
///
|
||||
/// Visit a SelectInst that has an ICmpInst as its first operand.
|
||||
Instruction *InstCombiner::visitSelectInstWithICmp(SelectInst &SI,
|
||||
ICmpInst *ICI) {
|
||||
bool Changed = false;
|
||||
@ -601,10 +599,9 @@ Instruction *InstCombiner::visitSelectInstWithICmp(SelectInst &SI,
|
||||
}
|
||||
|
||||
|
||||
/// CanSelectOperandBeMappingIntoPredBlock - SI is a select whose condition is a
|
||||
/// PHI node (but the two may be in different blocks). See if the true/false
|
||||
/// values (V) are live in all of the predecessor blocks of the PHI. For
|
||||
/// example, cases like this cannot be mapped:
|
||||
/// SI is a select whose condition is a PHI node (but the two may be in
|
||||
/// different blocks). See if the true/false values (V) are live in all of the
|
||||
/// predecessor blocks of the PHI. For example, cases like this can't be mapped:
|
||||
///
|
||||
/// X = phi [ C1, BB1], [C2, BB2]
|
||||
/// Y = add
|
||||
@ -638,7 +635,7 @@ static bool CanSelectOperandBeMappingIntoPredBlock(const Value *V,
|
||||
return false;
|
||||
}
|
||||
|
||||
/// FoldSPFofSPF - We have an SPF (e.g. a min or max) of an SPF of the form:
|
||||
/// We have an SPF (e.g. a min or max) of an SPF of the form:
|
||||
/// SPF2(SPF1(A, B), C)
|
||||
Instruction *InstCombiner::FoldSPFofSPF(Instruction *Inner,
|
||||
SelectPatternFlavor SPF1,
|
||||
@ -751,10 +748,10 @@ Instruction *InstCombiner::FoldSPFofSPF(Instruction *Inner,
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
/// foldSelectICmpAnd - If one of the constants is zero (we know they can't
|
||||
/// both be) and we have an icmp instruction with zero, and we have an 'and'
|
||||
/// with the non-constant value and a power of two we can turn the select
|
||||
/// into a shift on the result of the 'and'.
|
||||
/// If one of the constants is zero (we know they can't both be) and we have an
|
||||
/// icmp instruction with zero, and we have an 'and' with the non-constant value
|
||||
/// and a power of two we can turn the select into a shift on the result of the
|
||||
/// 'and'.
|
||||
static Value *foldSelectICmpAnd(const SelectInst &SI, ConstantInt *TrueVal,
|
||||
ConstantInt *FalseVal,
|
||||
InstCombiner::BuilderTy *Builder) {
|
||||
|
@ -22,9 +22,9 @@ using namespace PatternMatch;
|
||||
|
||||
#define DEBUG_TYPE "instcombine"
|
||||
|
||||
/// CheapToScalarize - Return true if the value is cheaper to scalarize than it
|
||||
/// is to leave as a vector operation. isConstant indicates whether we're
|
||||
/// extracting one known element. If false we're extracting a variable index.
|
||||
/// Return true if the value is cheaper to scalarize than it is to leave as a
|
||||
/// vector operation. isConstant indicates whether we're extracting one known
|
||||
/// element. If false we're extracting a variable index.
|
||||
static bool CheapToScalarize(Value *V, bool isConstant) {
|
||||
if (Constant *C = dyn_cast<Constant>(V)) {
|
||||
if (isConstant) return true;
|
||||
@ -275,9 +275,8 @@ Instruction *InstCombiner::visitExtractElementInst(ExtractElementInst &EI) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
/// CollectSingleShuffleElements - If V is a shuffle of values that ONLY returns
|
||||
/// elements from either LHS or RHS, return the shuffle mask and true.
|
||||
/// Otherwise, return false.
|
||||
/// If V is a shuffle of values that ONLY returns elements from either LHS or
|
||||
/// RHS, return the shuffle mask and true. Otherwise, return false.
|
||||
static bool CollectSingleShuffleElements(Value *V, Value *LHS, Value *RHS,
|
||||
SmallVectorImpl<Constant*> &Mask) {
|
||||
assert(LHS->getType() == RHS->getType() &&
|
||||
|
Loading…
Reference in New Issue
Block a user