Various comment and whitespace cleanups.

llvm-svn: 79533
This commit is contained in:
Dan Gohman 2009-08-20 16:42:55 +00:00
parent f91a992c30
commit 8a8ad7d8e8
4 changed files with 19 additions and 17 deletions

View File

@ -24,7 +24,7 @@ namespace llvm {
/// rewrite expressions in canonical form. /// rewrite expressions in canonical form.
/// ///
/// Clients should create an instance of this class when rewriting is needed, /// Clients should create an instance of this class when rewriting is needed,
/// and destroy it when finished to allow the release of the associated /// and destroy it when finished to allow the release of the associated
/// memory. /// memory.
struct SCEVExpander : public SCEVVisitor<SCEVExpander, Value*> { struct SCEVExpander : public SCEVVisitor<SCEVExpander, Value*> {
ScalarEvolution &SE; ScalarEvolution &SE;
@ -62,7 +62,7 @@ namespace llvm {
private: private:
LLVMContext &getContext() const { return SE.getContext(); } LLVMContext &getContext() const { return SE.getContext(); }
/// InsertBinop - Insert the specified binary operator, doing a small amount /// InsertBinop - Insert the specified binary operator, doing a small amount
/// of work to avoid inserting an obviously redundant operation. /// of work to avoid inserting an obviously redundant operation.
Value *InsertBinop(Instruction::BinaryOps Opcode, Value *LHS, Value *RHS); Value *InsertBinop(Instruction::BinaryOps Opcode, Value *LHS, Value *RHS);
@ -126,4 +126,3 @@ namespace llvm {
} }
#endif #endif

View File

@ -208,7 +208,7 @@ static Constant *SymbolicallyEvaluateGEP(Constant* const* Ops, unsigned NumOps,
"Computed GetElementPtr has unexpected type!"); "Computed GetElementPtr has unexpected type!");
// If we ended up indexing a member with a type that doesn't match // If we ended up indexing a member with a type that doesn't match
// type type of what the original indices indexed, add a cast. // the type of what the original indices indexed, add a cast.
if (Ty != cast<PointerType>(ResultTy)->getElementType()) if (Ty != cast<PointerType>(ResultTy)->getElementType())
C = ConstantExpr::getBitCast(C, ResultTy); C = ConstantExpr::getBitCast(C, ResultTy);

View File

@ -1682,7 +1682,7 @@ const SCEV *ScalarEvolution::getUDivExpr(const SCEV *LHS,
if (const SCEVConstant *RHSC = dyn_cast<SCEVConstant>(RHS)) { if (const SCEVConstant *RHSC = dyn_cast<SCEVConstant>(RHS)) {
if (RHSC->getValue()->equalsInt(1)) if (RHSC->getValue()->equalsInt(1))
return LHS; // X udiv 1 --> x return LHS; // X udiv 1 --> x
if (RHSC->isZero()) if (RHSC->isZero())
return getIntegerSCEV(0, LHS->getType()); // value is undefined return getIntegerSCEV(0, LHS->getType()); // value is undefined
@ -3533,8 +3533,8 @@ ScalarEvolution::ComputeBackedgeTakenCountFromExitCondICmp(const Loop *L,
if (!isa<SCEVCouldNotCompute>(TC)) return TC; if (!isa<SCEVCouldNotCompute>(TC)) return TC;
break; break;
} }
case ICmpInst::ICMP_EQ: { case ICmpInst::ICMP_EQ: { // while (X == Y)
// Convert to: while (X-Y == 0) // while (X == Y) // Convert to: while (X-Y == 0)
const SCEV *TC = HowFarToNonZero(getMinusSCEV(LHS, RHS), L); const SCEV *TC = HowFarToNonZero(getMinusSCEV(LHS, RHS), L);
if (!isa<SCEVCouldNotCompute>(TC)) return TC; if (!isa<SCEVCouldNotCompute>(TC)) return TC;
break; break;
@ -3986,7 +3986,7 @@ const SCEV *ScalarEvolution::getSCEVAtScope(const SCEV *V, const Loop *L) {
getContext()); getContext());
else else
C = ConstantFoldInstOperands(I->getOpcode(), I->getType(), C = ConstantFoldInstOperands(I->getOpcode(), I->getType(),
&Operands[0], Operands.size(), &Operands[0], Operands.size(),
getContext()); getContext());
Pair.first->second = C; Pair.first->second = C;
return getSCEV(C); return getSCEV(C);
@ -4235,7 +4235,7 @@ const SCEV *ScalarEvolution::HowFarToZero(const SCEV *V, const Loop *L) {
// First, handle unitary steps. // First, handle unitary steps.
if (StepC->getValue()->equalsInt(1)) // 1*N = -Start (mod 2^BW), so: if (StepC->getValue()->equalsInt(1)) // 1*N = -Start (mod 2^BW), so:
return getNegativeSCEV(Start); // N = -Start (as unsigned) return getNegativeSCEV(Start); // N = -Start (as unsigned)
if (StepC->getValue()->isAllOnesValue()) // -1*N = -Start (mod 2^BW), so: if (StepC->getValue()->isAllOnesValue()) // -1*N = -Start (mod 2^BW), so:
return Start; // N = Start (as unsigned) return Start; // N = Start (as unsigned)

View File

@ -53,10 +53,9 @@ Value *SCEVExpander::InsertNoopCastOfTo(Value *V, const Type *Ty) {
return CE->getOperand(0); return CE->getOperand(0);
} }
// FIXME: keep track of the cast instruction.
if (Constant *C = dyn_cast<Constant>(V)) if (Constant *C = dyn_cast<Constant>(V))
return ConstantExpr::getCast(Op, C, Ty); return ConstantExpr::getCast(Op, C, Ty);
if (Argument *A = dyn_cast<Argument>(V)) { if (Argument *A = dyn_cast<Argument>(V)) {
// Check to see if there is already a cast! // Check to see if there is already a cast!
for (Value::use_iterator UI = A->use_begin(), E = A->use_end(); for (Value::use_iterator UI = A->use_begin(), E = A->use_end();
@ -317,13 +316,17 @@ static void SplitAddRecs(SmallVectorImpl<const SCEV *> &Ops,
} }
} }
/// expandAddToGEP - Expand a SCEVAddExpr with a pointer type into a GEP /// expandAddToGEP - Expand an addition expression with a pointer type into
/// instead of using ptrtoint+arithmetic+inttoptr. This helps /// a GEP instead of using ptrtoint+arithmetic+inttoptr. This helps
/// BasicAliasAnalysis and other passes analyze the result. /// BasicAliasAnalysis and other passes analyze the result. See the rules
/// for getelementptr vs. inttoptr in
/// http://llvm.org/docs/LangRef.html#pointeraliasing
/// for details.
/// ///
/// Design note: This depends on ScalarEvolution not recognizing inttoptr /// Design note: The correctness of using getelmeentptr here depends on
/// and ptrtoint operators, as they may introduce pointer arithmetic /// ScalarEvolution not recognizing inttoptr and ptrtoint operators, as
/// which may not be safely converted into getelementptr. /// they may introduce pointer arithmetic which may not be safely converted
/// into getelementptr.
/// ///
/// Design note: It might seem desirable for this function to be more /// Design note: It might seem desirable for this function to be more
/// loop-aware. If some of the indices are loop-invariant while others /// loop-aware. If some of the indices are loop-invariant while others