reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
97 auto *Result = tryRemoveTrivialPhi(Phi, PhiOps); 99 if (Result == Phi && UniqueIncomingAccess && SingleAccess) { 101 if (Phi) { 102 assert(Phi->operands().empty() && "Expected empty Phi"); 103 Phi->replaceAllUsesWith(SingleAccess); 104 removeMemoryAccess(Phi); 107 } else if (Result == Phi && !(UniqueIncomingAccess && SingleAccess)) { 108 if (!Phi) 109 Phi = MSSA->createMemoryPhi(BB); 114 if (Phi->getNumOperands() != 0) { 116 if (!std::equal(Phi->op_begin(), Phi->op_end(), PhiOps.begin())) { 116 if (!std::equal(Phi->op_begin(), Phi->op_end(), PhiOps.begin())) { 118 llvm::copy(PhiOps, Phi->op_begin()); 119 std::copy(pred_begin(BB), pred_end(BB), Phi->block_begin()); 124 Phi->addIncoming(&*PhiOps[i++], Pred); 125 InsertedPHIs.push_back(Phi); 127 Result = Phi;