Lines Matching refs:S1
119 PHINode *getPHIOperand(BasicBlock *BB, StoreInst *S0, StoreInst *S1);
122 bool canSinkStoresAndGEPs(StoreInst *S0, StoreInst *S1) const;
208 /// Create a PHI node in BB for the operands of S0 and S1
211 StoreInst *S1) {
214 Value *Opd2 = S1->getValueOperand();
220 NewPN->applyMergedLocation(S0->getDebugLoc(), S1->getDebugLoc());
222 NewPN->addIncoming(Opd2, S1->getParent());
230 StoreInst *S1) const {
232 auto *A1 = dyn_cast<Instruction>(S1->getPointerOperand());
235 (A1->getParent() == S1->getParent()) && isa<GetElementPtrInst>(A0);
244 StoreInst *S1) {
247 auto *A1 = dyn_cast<Instruction>(S1->getPointerOperand());
250 dbgs() << "Instruction Right\n"; S1->dump(); dbgs() << "\n");
254 S0->andIRFlags(S1);
264 assert(S1->getParent() == A1->getParent());
267 if (PHINode *NewPN = getPHIOperand(BB, S0, S1))
270 S1->eraseFromParent();
321 if (StoreInst *S1 = canSinkFromBlock(Pred1, S0)) {
322 if (!canSinkStoresAndGEPs(S0, S1))
338 sinkStoresAndGEPs(SinkBB, S0, S1);