Lines Matching refs:S1
115 PHINode *getPHIOperand(BasicBlock *BB, StoreInst *S0, StoreInst *S1);
118 bool canSinkStoresAndGEPs(StoreInst *S0, StoreInst *S1) const;
207 StoreInst *S1) { in getPHIOperand() argument
210 Value *Opd2 = S1->getValueOperand(); in getPHIOperand()
216 NewPN->applyMergedLocation(S0->getDebugLoc(), S1->getDebugLoc()); in getPHIOperand()
218 NewPN->addIncoming(Opd2, S1->getParent()); in getPHIOperand()
226 StoreInst *S1) const { in canSinkStoresAndGEPs()
228 auto *A1 = dyn_cast<Instruction>(S1->getPointerOperand()); in canSinkStoresAndGEPs()
231 (A1->getParent() == S1->getParent()) && isa<GetElementPtrInst>(A0); in canSinkStoresAndGEPs()
240 StoreInst *S1) { in sinkStoresAndGEPs() argument
243 auto *A1 = dyn_cast<Instruction>(S1->getPointerOperand()); in sinkStoresAndGEPs()
246 dbgs() << "Instruction Right\n"; S1->dump(); dbgs() << "\n"); in sinkStoresAndGEPs()
250 S0->andIRFlags(S1); in sinkStoresAndGEPs()
260 assert(S1->getParent() == A1->getParent()); in sinkStoresAndGEPs()
263 if (PHINode *NewPN = getPHIOperand(BB, S0, S1)) in sinkStoresAndGEPs()
266 S1->eraseFromParent(); in sinkStoresAndGEPs()
317 if (StoreInst *S1 = canSinkFromBlock(Pred1, S0)) { in mergeStores() local
318 if (!canSinkStoresAndGEPs(S0, S1)) in mergeStores()
334 sinkStoresAndGEPs(SinkBB, S0, S1); in mergeStores()