Changes in directory llvm/include/llvm/Analysis:
ScalarEvolutionExpander.h updated: 1.13 -> 1.14 --- Log message: CSE simple binary expressions when they are inserted. This makes LSR produce less huge code that needs to be cleaned up by sdisel. --- Diffs of the changes: (+7 -4) ScalarEvolutionExpander.h | 11 +++++++---- 1 files changed, 7 insertions(+), 4 deletions(-) Index: llvm/include/llvm/Analysis/ScalarEvolutionExpander.h diff -u llvm/include/llvm/Analysis/ScalarEvolutionExpander.h:1.13 llvm/include/llvm/Analysis/ScalarEvolutionExpander.h:1.14 --- llvm/include/llvm/Analysis/ScalarEvolutionExpander.h:1.13 Sat Jan 20 18:29:25 2007 +++ llvm/include/llvm/Analysis/ScalarEvolutionExpander.h Fri Apr 13 00:04:18 2007 @@ -89,7 +89,10 @@ /// we can to share the casts. static Value *InsertCastOfTo(Instruction::CastOps opcode, Value *V, const Type *Ty); - + /// InsertBinop - Insert the specified binary operator, doing a small amount + /// of work to avoid inserting an obviously redundant operation. + static Value *InsertBinop(Instruction::BinaryOps Opcode, Value *LHS, + Value *RHS, Instruction *InsertPt); protected: Value *expand(SCEV *S) { // Check to see if we already expanded this. @@ -141,8 +144,8 @@ // Emit a bunch of add instructions for (int i = S->getNumOperands()-2; i >= 0; --i) - V = BinaryOperator::createAdd(V, expandInTy(S->getOperand(i), Ty), - "tmp.", InsertPt); + V = InsertBinop(Instruction::Add, V, expandInTy(S->getOperand(i), Ty), + InsertPt); return V; } @@ -152,7 +155,7 @@ const Type *Ty = S->getType(); Value *LHS = expandInTy(S->getLHS(), Ty); Value *RHS = expandInTy(S->getRHS(), Ty); - return BinaryOperator::createSDiv(LHS, RHS, "tmp.", InsertPt); + return InsertBinop(Instruction::SDiv, LHS, RHS, InsertPt); } Value *visitAddRecExpr(SCEVAddRecExpr *S); _______________________________________________ llvm-commits mailing list [EMAIL PROTECTED] http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits