Searched refs:PN (Results 1 - 25 of 106) sorted by relevance

12345

/external/llvm/lib/Transforms/InstCombine/
H A DInstCombinePHI.cpp26 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 DBasicBlock.cpp254 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 DDominators.cpp202 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 DUnifyFunctionExitNodes.cpp94 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 DBreakCriticalEdges.cpp101 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 DBasicBlockUtils.cpp78 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 DLCSSA.cpp72 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 DLocal.cpp377 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 DLoopSimplify.cpp214 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 DCloneFunction.cpp465 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 DDemoteRegToStack.cpp45 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 DLoopUnrollRuntime.cpp72 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 DCodeExtractor.cpp193 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 DSimplifyCFG.cpp137 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 DLoopUnroll.cpp56 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 DSparsePropagation.cpp230 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 DScalarEvolutionNormalization.cpp47 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 DProvenanceAnalysis.cpp149 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 DXCoreLowerThreadLocal.cpp135 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 DLICM.cpp198 /// 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 DIndVarSimplify.cpp245 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 DLoopRotation.cpp131 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 DJumpThreading.cpp130 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 DFunctionLoweringInfo.cpp195 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 DScalarEvolutionExpander.h188 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,

Completed in 798 milliseconds

12345