Home | History | Annotate | Download | only in Scalar

Lines Matching defs:S0

149   PHINode *getPHIOperand(BasicBlock *BB, StoreInst *S0, StoreInst *S1);
437 /// \brief Create a PHI node in BB for the operands of S0 and S1
439 PHINode *MergedLoadStoreMotion::getPHIOperand(BasicBlock *BB, StoreInst *S0,
443 Value *Opd1 = S0->getValueOperand();
448 NewPN->addIncoming(Opd1, S0->getParent());
461 bool MergedLoadStoreMotion::sinkStore(BasicBlock *BB, StoreInst *S0,
464 Instruction *A0 = dyn_cast<Instruction>(S0->getPointerOperand());
467 (A0->getParent() == S0->getParent()) && A1->hasOneUse() &&
470 dbgs() << "Instruction Left\n"; S0->dump(); dbgs() << "\n";
475 S0->intersectOptionalDataWith(S1);
476 S0->dropUnknownNonDebugMetadata();
479 StoreInst *SNew = (StoreInst *)(S0->clone());
484 assert(S0->getParent() == A0->getParent());
487 PHINode *NewPN = getPHIOperand(BB, S0, S1);
491 removeInstruction(S0);
538 StoreInst *S0 = (StoreInst *)I;
539 if (!S0->isSimple())
545 if (StoreInst *S1 = canSinkFromBlock(Pred1, S0)) {
546 bool Res = sinkStore(T, S0, S1);