/external/llvm/lib/Transforms/InstCombine/ |
H A D | InstCombinePHI.cpp | 26 Instruction *InstCombiner::FoldPHIArgBinOpIntoPHI(PHINode &PN) { argument 27 Instruction *FirstInst = cast<Instruction>(PN.getIncomingValue(0)); 46 for (unsigned i = 1; i != PN.getNumIncomingValues(); ++i) { 47 Instruction *I = dyn_cast<Instruction>(PN.getIncomingValue(i)); 85 NewLHS = PHINode::Create(LHSType, PN.getNumIncomingValues(), 87 NewLHS->addIncoming(InLHS, PN.getIncomingBlock(0)); 88 InsertNewInstBefore(NewLHS, PN); 93 NewRHS = PHINode::Create(RHSType, PN.getNumIncomingValues(), 95 NewRHS->addIncoming(InRHS, PN.getIncomingBlock(0)); 96 InsertNewInstBefore(NewRHS, PN); 132 FoldPHIArgGEPIntoPHI(PHINode &PN) argument 287 FoldPHIArgLoadIntoPHI(PHINode &PN) argument 391 FoldPHIArgOpIntoPHI(PHINode &PN) argument 508 DeadPHICycle(PHINode *PN, SmallPtrSet<PHINode*, 16> &PotentiallyDeadPHIs) argument 530 PHIsEqualValue(PHINode *PN, Value *NonPhiInVal, SmallPtrSet<PHINode*, 16> &ValueEqualPHIs) argument 575 PHINode *PN; // The PHI that was lowered. member in struct:__anon26247::LoweredPHIRecord 634 PHINode *PN = PHIsToSlice[PHIId]; local 702 PHINode *PN = PHIsToSlice[PHIId]; local 790 visitPHINode(PHINode &PN) argument [all...] |
/external/llvm/lib/IR/ |
H A D | BasicBlock.cpp | 254 while (PHINode *PN = dyn_cast<PHINode>(&front())) { 256 PN->removeIncomingValue(Pred, !DontDeleteUselessPHIs); 260 if (PN->getIncomingValue(0) != PN) 261 PN->replaceAllUsesWith(PN->getIncomingValue(0)); 264 PN->replaceAllUsesWith(UndefValue::get(PN->getType())); 274 PHINode *PN; local 275 for (iterator II = begin(); (PN 328 PHINode *PN; local 352 PHINode *PN = dyn_cast<PHINode>(II); local [all...] |
H A D | Dominators.cpp | 202 PHINode *PN = dyn_cast<PHINode>(UserInst); local 203 if (PN && PN->getParent() == BBE.getEnd() && 204 PN->getIncomingBlock(U) == BBE.getStart()) 210 if (PN) 211 UseBB = PN->getIncomingBlock(U); 225 if (PHINode *PN = dyn_cast<PHINode>(UserInst)) 226 UseBB = PN->getIncomingBlock(U); 276 if (PHINode *PN = dyn_cast<PHINode>(I)) 277 return isReachableFromEntry(PN [all...] |
/external/llvm/lib/Transforms/Utils/ |
H A D | UnifyFunctionExitNodes.cpp | 94 PHINode *PN = nullptr; local 99 PN = PHINode::Create(F.getReturnType(), ReturningBlocks.size(), 101 NewRetBlock->getInstList().push_back(PN); 102 ReturnInst::Create(F.getContext(), PN, NewRetBlock); 114 if (PN) 115 PN->addIncoming(BB->getTerminator()->getOperand(0), BB);
|
H A D | BreakCriticalEdges.cpp | 101 PHINode *PN = dyn_cast<PHINode>(I); ++I) { 102 unsigned Idx = PN->getBasicBlockIndex(SplitBB); 103 Value *V = PN->getIncomingValue(Idx); 113 PHINode::Create(PN->getType(), Preds.size(), "split", 120 PN->setIncomingValue(Idx, NewPN); 180 PHINode *PN = cast<PHINode>(I); local 187 if (PN->getIncomingBlock(BBIdx) != TIBB) 188 BBIdx = PN->getBasicBlockIndex(TIBB); 189 PN->setIncomingBlock(BBIdx, NewBB); 231 if (PHINode *PN [all...] |
H A D | BasicBlockUtils.cpp | 78 while (PHINode *PN = dyn_cast<PHINode>(BB->begin())) { 79 if (PN->getIncomingValue(0) != PN) 80 PN->replaceAllUsesWith(PN->getIncomingValue(0)); 82 PN->replaceAllUsesWith(UndefValue::get(PN->getType())); 85 MemDep->removeInstruction(PN); // Memdep updates AA itself. 86 else if (AA && isa<PointerType>(PN->getType())) 87 AA->deleteValue(PN); 390 PHINode *PN = cast<PHINode>(I++); local 597 PHINode *PN = PHINode::Create(LPad->getType(), 2, "lpad.phi", LPad); local [all...] |
H A D | LCSSA.cpp | 72 if (PHINode *PN = dyn_cast<PHINode>(User)) 73 UserBB = PN->getIncomingBlock(U); 114 PHINode *PN = PHINode::Create(Inst.getType(), PredCache.GetNumPreds(ExitBB), local 119 PN->addIncoming(&Inst, *PI); 126 &PN->getOperandUse(PN->getOperandNumForIncomingValue( 127 PN->getNumIncomingValues() - 1))); 130 AddedPHIs.push_back(PN); 133 SSAUpdate.AddAvailableValue(ExitBB, PN); 145 if (PHINode *PN [all...] |
H A D | Local.cpp | 377 bool llvm::RecursivelyDeleteDeadPHINode(PHINode *PN, argument 380 for (Instruction *I = PN; areAllUsesEqual(I) && !I->mayHaveSideEffects(); 461 while (PHINode *PN = dyn_cast<PHINode>(PhiIt)) { 465 if (!recursivelySimplifyInstruction(PN, TD)) 483 while (PHINode *PN = dyn_cast<PHINode>(DestBB->begin())) { 484 Value *NewVal = PN->getIncomingValue(0); 486 if (NewVal == PN) NewVal = UndefValue::get(PN->getType()); 487 PN->replaceAllUsesWith(NewVal); 488 PN 552 PHINode *PN = cast<PHINode>(I); local 632 gatherIncomingValuesToPhi(PHINode *PN, IncomingValueMap &IncomingValues) argument 648 replaceUndefValuesInPhi(PHINode *PN, const IncomingValueMap &IncomingValues) argument 670 redirectValuesFromPredecessorsToPhi(BasicBlock *BB, const PredBlockVector &BBPreds, PHINode *PN) argument 779 PHINode *PN = cast<PHINode>(I); local [all...] |
H A D | LoopSimplify.cpp | 214 PHINode *PN = cast<PHINode>(I); local 216 if (Value *V = SimplifyInstruction(PN, nullptr, nullptr, DT)) { 218 PN->replaceAllUsesWith(V); 219 if (AA) AA->deleteValue(PN); 220 PN->eraseFromParent(); 225 for (unsigned i = 0, e = PN->getNumIncomingValues(); i != e; ++i) 226 if (PN->getIncomingValue(i) == PN && 227 L->contains(PN->getIncomingBlock(i))) 229 return PN; 264 PHINode *PN = findPHIToPartitionLoops(L, AA, DT); local 399 PHINode *PN = cast<PHINode>(I); local 612 PHINode *PN; local [all...] |
H A D | CloneFunction.cpp | 465 if (const PHINode *PN = dyn_cast<PHINode>(I)) 466 PHIToResolve.push_back(PN); 489 PHINode *PN = cast<PHINode>(VMap[OPN]); local 491 Value *V = VMap[PN->getIncomingBlock(pred)]; 493 Value *InVal = MapValue(PN->getIncomingValue(pred), 497 PN->setIncomingValue(pred, InVal); 498 PN->setIncomingBlock(pred, MappedBlock); 500 PN->removeIncomingValue(pred, false); 511 PHINode *PN = cast<PHINode>(NewBB->begin()); local 513 if (NumPreds != PN [all...] |
H A D | DemoteRegToStack.cpp | 45 if (PHINode *PN = dyn_cast<PHINode>(U)) { 56 for (unsigned i = 0, e = PN->getNumIncomingValues(); i != e; ++i) 57 if (PN->getIncomingValue(i) == &I) { 58 Value *&V = Loads[PN->getIncomingBlock(i)]; 62 PN->getIncomingBlock(i)->getTerminator()); 64 PN->setIncomingValue(i, V);
|
H A D | LoopUnrollRuntime.cpp | 72 PHINode *PN = dyn_cast<PHINode>(BBI); ++BBI) { 76 PHINode *NewPN = PHINode::Create(PN->getType(), 2, PN->getName()+".unr", 80 if (L->contains(PN)) { 81 NewPN->addIncoming(PN->getIncomingValueForBlock(NewPH), OrigPH); 83 NewPN->addIncoming(Constant::getNullValue(PN->getType()), OrigPH); 86 Value *V = PN->getIncomingValueForBlock(Latch); 99 if (L->contains(PN)) { 100 PN->setIncomingValue(PN [all...] |
H A D | CodeExtractor.cpp | 193 PHINode *PN = dyn_cast<PHINode>(Header->begin()); local 194 if (!PN) return; // No PHI nodes. 199 for (unsigned i = 0, e = PN->getNumIncomingValues(); i != e; ++i) 200 if (Blocks.count(PN->getIncomingBlock(i))) 233 PHINode *PN = cast<PHINode>(OldPred->begin()); local 236 for (unsigned i = 0, e = PN->getNumIncomingValues(); i != e; ++i) 237 if (Blocks.count(PN->getIncomingBlock(i))) { 238 TerminatorInst *TI = PN->getIncomingBlock(i)->getTerminator(); 245 PHINode *PN = cast<PHINode>(AfterPHIs); local 247 // from OldPred of PN 742 PHINode *PN = cast<PHINode>(I); local 755 PHINode *PN = cast<PHINode>(I); local [all...] |
H A D | SimplifyCFG.cpp | 137 PHINode *PN = cast<PHINode>(BBI); local 138 if (PN->getIncomingValueForBlock(SI1BB) != 139 PN->getIncomingValueForBlock(SI2BB)) 178 PHINode *PN = cast<PHINode>(BBI); local 179 if (PN->getIncomingValueForBlock(SI1BB) != Cond || 180 !isa<ConstantInt>(PN->getIncomingValueForBlock(SI2BB))) 182 PhiNodes.push_back(PN); 195 PHINode *PN; 197 (PN = dyn_cast<PHINode>(I)); ++I) 198 PN 985 PHINode *PN; local 1067 PHINode *PN; local 1098 PHINode *PN; local 1609 PHINode *PN = dyn_cast<PHINode>(BI->getCondition()); local 1705 FoldTwoEntryPHINode(PHINode *PN, const DataLayout *DL) argument 1738 PHINode *PN = cast<PHINode>(II++); local 2489 PHINode *PN; local 2856 PHINode *PN = cast<PHINode>(BBI); local [all...] |
H A D | LoopUnroll.cpp | 56 if (PHINode *PN = dyn_cast<PHINode>(I)) { 57 for (unsigned i = 0, e = PN->getNumIncomingValues(); i != e; ++i) { 58 ValueToValueMapTy::iterator It = VMap.find(PN->getIncomingBlock(i)); 60 PN->setIncomingBlock(i, cast<BasicBlock>(It->second)); 355 PHINode *PN = OrigPHINode[i]; local 357 PN->replaceAllUsesWith(PN->getIncomingValueForBlock(Preheader)); 358 Header->getInstList().erase(PN); 361 Value *InVal = PN->removeIncomingValue(LatchBlock, false); 369 PN [all...] |
/external/llvm/lib/Analysis/ |
H A D | SparsePropagation.cpp | 230 void SparseSolver::visitPHINode(PHINode &PN) { argument 234 if (LatticeFunc->IsSpecialCasedPHI(&PN)) { 235 LatticeVal IV = LatticeFunc->ComputeInstructionState(PN, *this); 237 UpdateState(PN, IV); 241 LatticeVal PNIV = getOrInitValueState(&PN); 250 if (PN.getNumIncomingValues() > 64) { 251 UpdateState(PN, Overdefined); 258 for (unsigned i = 0, e = PN.getNumIncomingValues(); i != e; ++i) { 260 if (!isEdgeFeasible(PN.getIncomingBlock(i), PN [all...] |
H A D | ScalarEvolutionNormalization.cpp | 47 PHINode *PN = dyn_cast<PHINode>(User); 48 if (!PN || !Operand) return false; // not a phi, not dominated by latch block. 53 for (unsigned i = 0, e = PN->getNumIncomingValues(); i != e; ++i) 54 if (PN->getIncomingValue(i) == Operand && 55 !DT->dominates(LatchBlock, PN->getIncomingBlock(i))) 58 // Okay, all uses of Operand by PN are in predecessor blocks that really are
|
/external/llvm/lib/Transforms/ObjCARC/ |
H A D | ProvenanceAnalysis.cpp | 149 if (const PHINode *PN = dyn_cast<PHINode>(A)) 150 return relatedPHI(PN, B); 151 if (const PHINode *PN = dyn_cast<PHINode>(B)) 152 return relatedPHI(PN, A);
|
/external/llvm/lib/Target/XCore/ |
H A D | XCoreLowerThreadLocal.cpp | 135 if (PHINode *PN = dyn_cast<PHINode>(WU)) { 136 for (int I = 0, E = PN->getNumIncomingValues(); I < E; ++I) 137 if (PN->getIncomingValue(I) == CE) { 138 BasicBlock *PredBB = PN->getIncomingBlock(I); 140 PredBB = SplitEdge(PredBB, PN->getParent(), P); 143 PN->setOperand(I, NewInst);
|
/external/llvm/lib/Transforms/Scalar/ |
H A D | LICM.cpp | 198 /// PN is a user of I in ExitBlock that can be used to get the number and 202 PHINode &PN); 499 static bool isTriviallyReplacablePHI(PHINode &PN, Instruction &I) { argument 500 for (unsigned i = 0, e = PN.getNumIncomingValues(); i != e; ++i) 501 if (PN.getIncomingValue(i) != &I) 514 if (PHINode *PN = dyn_cast<PHINode>(UI)) { 519 if (isTriviallyReplacablePHI(*PN, I)) { 520 if (CurLoop->contains(PN)) 528 for (unsigned i = 0, e = PN->getNumIncomingValues(); i != e; ++i) 529 if (PN 542 CloneInstructionInExitBlock(Instruction &I, BasicBlock &ExitBlock, PHINode &PN) argument 598 PHINode *PN = cast<PHINode>(I.user_back()); local 701 PHINode *PN = PHINode::Create( local [all...] |
H A D | IndVarSimplify.cpp | 245 void IndVarSimplify::HandleFloatingPointIV(Loop *L, PHINode *PN) { argument 246 unsigned IncomingEdge = L->contains(PN->getIncomingBlock(0)); 251 dyn_cast<ConstantFP>(PN->getIncomingValue(IncomingEdge)); 257 // Check IV increment. Reject this PN if increment operation is not 260 dyn_cast<BinaryOperator>(PN->getIncomingValue(BackEdge)); 267 if (IncValueVal == nullptr || Incr->getOperand(0) != PN || 271 // Check Incr uses. One user is PN and the other user is an exit condition 397 IntegerType *Int32Ty = Type::getInt32Ty(PN->getContext()); 400 PHINode *NewPHI = PHINode::Create(Int32Ty, 2, PN->getName()+".int", PN); 496 PHINode *PN = dyn_cast<PHINode>(ExitBB->begin()); local [all...] |
H A D | LoopRotation.cpp | 131 for (I = OrigHeader->begin(); PHINode *PN = dyn_cast<PHINode>(I); ++I) 132 PN->removeIncomingValue(PN->getBasicBlockIndex(OrigPreheader)); 376 for (; PHINode *PN = dyn_cast<PHINode>(I); ++I) 377 ValueMap[PN] = PN->getIncomingValueForBlock(OrigPreheader); 429 PHINode *PN = dyn_cast<PHINode>(BI); ++BI) 430 PN->addIncoming(PN->getIncomingValueForBlock(OrigHeader), OrigPreheader);
|
H A D | JumpThreading.cpp | 130 bool ProcessBranchOnPHI(PHINode *PN); 393 if (PHINode *PN = dyn_cast<PHINode>(I)) { 394 for (unsigned i = 0, e = PN->getNumIncomingValues(); i != e; ++i) { 395 Value *InVal = PN->getIncomingValue(i); 397 Result.push_back(std::make_pair(KC, PN->getIncomingBlock(i))); 400 PN->getIncomingBlock(i), BB); 402 Result.push_back(std::make_pair(KC, PN->getIncomingBlock(i))); 498 PHINode *PN = dyn_cast<PHINode>(Cmp->getOperand(0)); local 499 if (PN && PN 998 PHINode *PN = PHINode::Create(LI->getType(), std::distance(PB, PE), "", local 1196 ProcessBranchOnPHI(PHINode *PN) argument [all...] |
/external/llvm/lib/CodeGen/SelectionDAG/ |
H A D | FunctionLoweringInfo.cpp | 195 const PHINode *PN = dyn_cast<PHINode>(I); ++I) { 196 if (PN->use_empty()) continue; 199 if (PN->getType()->isEmptyTy()) 202 DebugLoc DL = PN->getDebugLoc(); 203 unsigned PHIReg = ValueMap[PN]; 207 ComputeValueVTs(*TLI, PN->getType(), ValueVTs); 304 void FunctionLoweringInfo::ComputePHILiveOutRegInfo(const PHINode *PN) { argument 305 Type *Ty = PN->getType(); 317 if (TLI->getNumRegisters(PN->getContext(), IntVT) != 1) 319 IntVT = TLI->getTypeToTransformTo(PN [all...] |
/external/llvm/include/llvm/Analysis/ |
H A D | ScalarEvolutionExpander.h | 188 void setChainedPhi(PHINode *PN) { ChainedPhis.insert(PN); } argument 255 bool isNormalAddRecExprPHI(PHINode *PN, Instruction *IncV, const Loop *L); 257 bool isExpandedAddRecExprPHI(PHINode *PN, Instruction *IncV, const Loop *L); 266 Value *expandIVInc(PHINode *PN, Value *StepV, const Loop *L,
|