mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-09 13:21:30 +00:00
cache result of operator*
llvm-svn: 107976
This commit is contained in:
parent
4d54dede01
commit
6184b1a2fa
@ -1118,16 +1118,18 @@ Value *SCEVExpander::visitAddRecExpr(const SCEVAddRecExpr *S) {
|
||||
|
||||
Constant *One = ConstantInt::get(Ty, 1);
|
||||
for (pred_iterator HPI = pred_begin(Header), HPE = pred_end(Header);
|
||||
HPI != HPE; ++HPI)
|
||||
if (L->contains(*HPI)) {
|
||||
HPI != HPE; ++HPI) {
|
||||
BasicBlock *HP = *HPI;
|
||||
if (L->contains(HP)) {
|
||||
// Insert a unit add instruction right before the terminator
|
||||
// corresponding to the back-edge.
|
||||
Instruction *Add = BinaryOperator::CreateAdd(PN, One, "indvar.next",
|
||||
(*HPI)->getTerminator());
|
||||
HP->getTerminator());
|
||||
rememberInstruction(Add);
|
||||
PN->addIncoming(Add, *HPI);
|
||||
PN->addIncoming(Add, HP);
|
||||
} else {
|
||||
PN->addIncoming(Constant::getNullValue(Ty), *HPI);
|
||||
PN->addIncoming(Constant::getNullValue(Ty), HP);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -771,8 +771,9 @@ void IndVarSimplify::SinkUnusedInvariants(Loop *L) {
|
||||
bool UsedInLoop = false;
|
||||
for (Value::use_iterator UI = I->use_begin(), UE = I->use_end();
|
||||
UI != UE; ++UI) {
|
||||
BasicBlock *UseBB = cast<Instruction>(UI)->getParent();
|
||||
if (PHINode *P = dyn_cast<PHINode>(UI)) {
|
||||
User *U = *UI;
|
||||
BasicBlock *UseBB = cast<Instruction>(U)->getParent();
|
||||
if (PHINode *P = dyn_cast<PHINode>(U)) {
|
||||
unsigned i =
|
||||
PHINode::getIncomingValueNumForOperand(UI.getOperandNo());
|
||||
UseBB = P->getIncomingBlock(i);
|
||||
|
Loading…
Reference in New Issue
Block a user