Home
last modified time | relevance | path

Searched refs:PN (Results 1 – 25 of 389) sorted by relevance

12345678910>>...16

/external/llvm/lib/Transforms/InstCombine/
DInstCombinePHI.cpp24 Instruction *InstCombiner::FoldPHIArgBinOpIntoPHI(PHINode &PN) { in FoldPHIArgBinOpIntoPHI() argument
25 Instruction *FirstInst = cast<Instruction>(PN.getIncomingValue(0)); in FoldPHIArgBinOpIntoPHI()
44 for (unsigned i = 1; i != PN.getNumIncomingValues(); ++i) { in FoldPHIArgBinOpIntoPHI()
45 Instruction *I = dyn_cast<Instruction>(PN.getIncomingValue(i)); in FoldPHIArgBinOpIntoPHI()
83 NewLHS = PHINode::Create(LHSType, PN.getNumIncomingValues(), in FoldPHIArgBinOpIntoPHI()
85 NewLHS->addIncoming(InLHS, PN.getIncomingBlock(0)); in FoldPHIArgBinOpIntoPHI()
86 InsertNewInstBefore(NewLHS, PN); in FoldPHIArgBinOpIntoPHI()
91 NewRHS = PHINode::Create(RHSType, PN.getNumIncomingValues(), in FoldPHIArgBinOpIntoPHI()
93 NewRHS->addIncoming(InRHS, PN.getIncomingBlock(0)); in FoldPHIArgBinOpIntoPHI()
94 InsertNewInstBefore(NewRHS, PN); in FoldPHIArgBinOpIntoPHI()
[all …]
/external/llvm/lib/IR/
DBasicBlock.cpp250 while (PHINode *PN = dyn_cast<PHINode>(&front())) { in removePredecessor() local
252 PN->removeIncomingValue(Pred, !DontDeleteUselessPHIs); in removePredecessor()
256 if (PN->getIncomingValue(0) != PN) in removePredecessor()
257 PN->replaceAllUsesWith(PN->getIncomingValue(0)); in removePredecessor()
260 PN->replaceAllUsesWith(UndefValue::get(PN->getType())); in removePredecessor()
270 PHINode *PN; in removePredecessor() local
271 for (iterator II = begin(); (PN = dyn_cast<PHINode>(II)); ) { in removePredecessor()
273 PN->removeIncomingValue(Pred, false); in removePredecessor()
277 if (!DontDeleteUselessPHIs && (PNV = PN->hasConstantValue())) in removePredecessor()
278 if (PNV != PN) { in removePredecessor()
[all …]
DDominators.cpp222 PHINode *PN = dyn_cast<PHINode>(UserInst); in dominates() local
223 if (PN && PN->getParent() == BBE.getEnd() && in dominates()
224 PN->getIncomingBlock(U) == BBE.getStart()) in dominates()
230 if (PN) in dominates()
231 UseBB = PN->getIncomingBlock(U); in dominates()
246 if (PHINode *PN = dyn_cast<PHINode>(UserInst)) in dominates() local
247 UseBB = PN->getIncomingBlock(U); in dominates()
297 if (PHINode *PN = dyn_cast<PHINode>(I)) in isReachableFromEntry() local
298 return isReachableFromEntry(PN->getIncomingBlock(U)); in isReachableFromEntry()
/external/llvm/lib/Transforms/Utils/
DLoopSimplify.cpp274 PHINode *PN; in ProcessLoop() local
276 (PN = dyn_cast<PHINode>(I++)); ) in ProcessLoop()
277 if (Value *V = SimplifyInstruction(PN, 0, 0, DT)) { in ProcessLoop()
278 if (AA) AA->deleteValue(PN); in ProcessLoop()
279 if (SE) SE->forgetValue(PN); in ProcessLoop()
280 PN->replaceAllUsesWith(V); in ProcessLoop()
281 PN->eraseFromParent(); in ProcessLoop()
472 PHINode *PN = cast<PHINode>(I); in FindPHIToPartitionLoops() local
474 if (Value *V = SimplifyInstruction(PN, 0, 0, DT)) { in FindPHIToPartitionLoops()
476 PN->replaceAllUsesWith(V); in FindPHIToPartitionLoops()
[all …]
DLocal.cpp376 bool llvm::RecursivelyDeleteDeadPHINode(PHINode *PN, in RecursivelyDeleteDeadPHINode() argument
379 for (Instruction *I = PN; areAllUsesEqual(I) && !I->mayHaveSideEffects(); in RecursivelyDeleteDeadPHINode()
460 while (PHINode *PN = dyn_cast<PHINode>(PhiIt)) { in RemovePredecessorAndSimplify() local
464 if (!recursivelySimplifyInstruction(PN, TD)) in RemovePredecessorAndSimplify()
482 while (PHINode *PN = dyn_cast<PHINode>(DestBB->begin())) { in MergeBasicBlockIntoOnlyPred() local
483 Value *NewVal = PN->getIncomingValue(0); in MergeBasicBlockIntoOnlyPred()
485 if (NewVal == PN) NewVal = UndefValue::get(PN->getType()); in MergeBasicBlockIntoOnlyPred()
486 PN->replaceAllUsesWith(NewVal); in MergeBasicBlockIntoOnlyPred()
487 PN->eraseFromParent(); in MergeBasicBlockIntoOnlyPred()
555 PHINode *PN = cast<PHINode>(I); in CanPropagatePredecessorsForPHIs() local
[all …]
DBasicBlockUtils.cpp78 while (PHINode *PN = dyn_cast<PHINode>(BB->begin())) { in FoldSingleEntryPHINodes() local
79 if (PN->getIncomingValue(0) != PN) in FoldSingleEntryPHINodes()
80 PN->replaceAllUsesWith(PN->getIncomingValue(0)); in FoldSingleEntryPHINodes()
82 PN->replaceAllUsesWith(UndefValue::get(PN->getType())); in FoldSingleEntryPHINodes()
85 MemDep->removeInstruction(PN); // Memdep updates AA itself. in FoldSingleEntryPHINodes()
86 else if (AA && isa<PointerType>(PN->getType())) in FoldSingleEntryPHINodes()
87 AA->deleteValue(PN); in FoldSingleEntryPHINodes()
89 PN->eraseFromParent(); in FoldSingleEntryPHINodes()
103 PHINode *PN = dyn_cast<PHINode>(I); ++I) in DeleteDeadPHIs()
104 PHIs.push_back(PN); in DeleteDeadPHIs()
[all …]
DCloneFunction.cpp411 if (const PHINode *PN = dyn_cast<PHINode>(I)) in CloneAndPruneFunctionInto() local
412 PHIToResolve.push_back(PN); in CloneAndPruneFunctionInto()
435 PHINode *PN = cast<PHINode>(VMap[OPN]); in CloneAndPruneFunctionInto() local
437 Value *V = VMap[PN->getIncomingBlock(pred)]; in CloneAndPruneFunctionInto()
439 Value *InVal = MapValue(PN->getIncomingValue(pred), in CloneAndPruneFunctionInto()
443 PN->setIncomingValue(pred, InVal); in CloneAndPruneFunctionInto()
444 PN->setIncomingBlock(pred, MappedBlock); in CloneAndPruneFunctionInto()
446 PN->removeIncomingValue(pred, false); in CloneAndPruneFunctionInto()
457 PHINode *PN = cast<PHINode>(NewBB->begin()); in CloneAndPruneFunctionInto() local
459 if (NumPreds != PN->getNumIncomingValues()) { in CloneAndPruneFunctionInto()
[all …]
DBreakCriticalEdges.cpp102 PHINode *PN = dyn_cast<PHINode>(I); ++I) { in createPHIsForSplitLoopExit()
103 unsigned Idx = PN->getBasicBlockIndex(SplitBB); in createPHIsForSplitLoopExit()
104 Value *V = PN->getIncomingValue(Idx); in createPHIsForSplitLoopExit()
114 PHINode::Create(PN->getType(), Preds.size(), "split", in createPHIsForSplitLoopExit()
121 PN->setIncomingValue(Idx, NewPN); in createPHIsForSplitLoopExit()
181 PHINode *PN = cast<PHINode>(I); in SplitCriticalEdge() local
188 if (PN->getIncomingBlock(BBIdx) != TIBB) in SplitCriticalEdge()
189 BBIdx = PN->getBasicBlockIndex(TIBB); in SplitCriticalEdge()
190 PN->setIncomingBlock(BBIdx, NewBB); in SplitCriticalEdge()
231 if (PHINode *PN = dyn_cast<PHINode>(DestBB->begin())) { in SplitCriticalEdge() local
[all …]
DLCSSA.cpp198 if (PHINode *PN = dyn_cast<PHINode>(U)) in ProcessInstruction() local
199 UserBB = PN->getIncomingBlock(UI); in ProcessInstruction()
235 PHINode *PN = PHINode::Create(Inst->getType(), in ProcessInstruction() local
242 PN->addIncoming(Inst, *PI); in ProcessInstruction()
249 &PN->getOperandUse( in ProcessInstruction()
250 PN->getOperandNumForIncomingValue(PN->getNumIncomingValues()-1))); in ProcessInstruction()
253 AddedPHIs.push_back(PN); in ProcessInstruction()
256 SSAUpdate.AddAvailableValue(ExitBB, PN); in ProcessInstruction()
268 if (PHINode *PN = dyn_cast<PHINode>(User)) in ProcessInstruction() local
269 UserBB = PN->getIncomingBlock(*UsesToRewrite[i]); in ProcessInstruction()
DUnifyFunctionExitNodes.cpp94 PHINode *PN = 0; in runOnFunction() local
99 PN = PHINode::Create(F.getReturnType(), ReturningBlocks.size(), in runOnFunction()
101 NewRetBlock->getInstList().push_back(PN); in runOnFunction()
102 ReturnInst::Create(F.getContext(), PN, NewRetBlock); in runOnFunction()
114 if (PN) in runOnFunction()
115 PN->addIncoming(BB->getTerminator()->getOperand(0), BB); in runOnFunction()
DCodeExtractor.cpp192 PHINode *PN = dyn_cast<PHINode>(Header->begin()); in severSplitPHINodes() local
193 if (!PN) return; // No PHI nodes. in severSplitPHINodes()
198 for (unsigned i = 0, e = PN->getNumIncomingValues(); i != e; ++i) in severSplitPHINodes()
199 if (Blocks.count(PN->getIncomingBlock(i))) in severSplitPHINodes()
232 PHINode *PN = cast<PHINode>(OldPred->begin()); in severSplitPHINodes() local
235 for (unsigned i = 0, e = PN->getNumIncomingValues(); i != e; ++i) in severSplitPHINodes()
236 if (Blocks.count(PN->getIncomingBlock(i))) { in severSplitPHINodes()
237 TerminatorInst *TI = PN->getIncomingBlock(i)->getTerminator(); in severSplitPHINodes()
244 PHINode *PN = cast<PHINode>(AfterPHIs); in severSplitPHINodes() local
247 PHINode *NewPN = PHINode::Create(PN->getType(), 1 + NumPredsFromRegion, in severSplitPHINodes()
[all …]
DLoopUnrollRuntime.cpp71 PHINode *PN = dyn_cast<PHINode>(BBI); ++BBI) { in ConnectProlog()
75 PHINode *NewPN = PHINode::Create(PN->getType(), 2, PN->getName()+".unr", in ConnectProlog()
79 if (L->contains(PN)) { in ConnectProlog()
80 NewPN->addIncoming(PN->getIncomingValueForBlock(NewPH), OrigPH); in ConnectProlog()
82 NewPN->addIncoming(Constant::getNullValue(PN->getType()), OrigPH); in ConnectProlog()
85 Value *V = PN->getIncomingValueForBlock(Latch); in ConnectProlog()
98 if (L->contains(PN)) { in ConnectProlog()
99 PN->setIncomingValue(PN->getBasicBlockIndex(NewPH), NewPN); in ConnectProlog()
101 PN->addIncoming(NewPN, PrologEnd); in ConnectProlog()
DDemoteRegToStack.cpp45 if (PHINode *PN = dyn_cast<PHINode>(U)) { in DemoteRegToStack() local
56 for (unsigned i = 0, e = PN->getNumIncomingValues(); i != e; ++i) in DemoteRegToStack()
57 if (PN->getIncomingValue(i) == &I) { in DemoteRegToStack()
58 Value *&V = Loads[PN->getIncomingBlock(i)]; in DemoteRegToStack()
62 PN->getIncomingBlock(i)->getTerminator()); in DemoteRegToStack()
64 PN->setIncomingValue(i, V); in DemoteRegToStack()
DSimplifyCFG.cpp134 PHINode *PN = cast<PHINode>(BBI); in SafeToMergeTerminators() local
135 if (PN->getIncomingValueForBlock(SI1BB) != in SafeToMergeTerminators()
136 PN->getIncomingValueForBlock(SI2BB)) in SafeToMergeTerminators()
175 PHINode *PN = cast<PHINode>(BBI); in isProfitableToFoldUnconditional() local
176 if (PN->getIncomingValueForBlock(SI1BB) != Cond || in isProfitableToFoldUnconditional()
177 !isa<ConstantInt>(PN->getIncomingValueForBlock(SI2BB))) in isProfitableToFoldUnconditional()
179 PhiNodes.push_back(PN); in isProfitableToFoldUnconditional()
192 PHINode *PN; in AddPredecessorToBlock() local
194 (PN = dyn_cast<PHINode>(I)); ++I) in AddPredecessorToBlock()
195 PN->addIncoming(PN->getIncomingValueForBlock(ExistPred), NewPred); in AddPredecessorToBlock()
[all …]
DLoopUnroll.cpp50 if (PHINode *PN = dyn_cast<PHINode>(I)) { in RemapInstruction() local
51 for (unsigned i = 0, e = PN->getNumIncomingValues(); i != e; ++i) { in RemapInstruction()
52 ValueToValueMapTy::iterator It = VMap.find(PN->getIncomingBlock(i)); in RemapInstruction()
54 PN->setIncomingBlock(i, cast<BasicBlock>(It->second)); in RemapInstruction()
332 PHINode *PN = OrigPHINode[i]; in UnrollLoop() local
334 PN->replaceAllUsesWith(PN->getIncomingValueForBlock(Preheader)); in UnrollLoop()
335 Header->getInstList().erase(PN); in UnrollLoop()
338 Value *InVal = PN->removeIncomingValue(LatchBlock, false); in UnrollLoop()
346 PN->addIncoming(InVal, Latches.back()); in UnrollLoop()
DLowerSwitch.cpp207 PHINode* PN = cast<PHINode>(I); in newLeafBlock() local
212 PN->removeIncomingValue(OrigBlock); in newLeafBlock()
215 int BlockIdx = PN->getBasicBlockIndex(OrigBlock); in newLeafBlock()
217 PN->setIncomingBlock((unsigned)BlockIdx, NewLeaf); in newLeafBlock()
282 PHINode *PN = cast<PHINode>(I); in processSwitchInst() local
283 int BlockIdx = PN->getBasicBlockIndex(OrigBlock); in processSwitchInst()
285 PN->setIncomingBlock((unsigned)BlockIdx, NewDefault); in processSwitchInst()
/external/llvm/lib/Analysis/
DSparsePropagation.cpp229 void SparseSolver::visitPHINode(PHINode &PN) { in visitPHINode() argument
233 if (LatticeFunc->IsSpecialCasedPHI(&PN)) { in visitPHINode()
234 LatticeVal IV = LatticeFunc->ComputeInstructionState(PN, *this); in visitPHINode()
236 UpdateState(PN, IV); in visitPHINode()
240 LatticeVal PNIV = getOrInitValueState(&PN); in visitPHINode()
249 if (PN.getNumIncomingValues() > 64) { in visitPHINode()
250 UpdateState(PN, Overdefined); in visitPHINode()
257 for (unsigned i = 0, e = PN.getNumIncomingValues(); i != e; ++i) { in visitPHINode()
259 if (!isEdgeFeasible(PN.getIncomingBlock(i), PN.getParent(), true)) in visitPHINode()
263 LatticeVal OpVal = getOrInitValueState(PN.getIncomingValue(i)); in visitPHINode()
[all …]
DScalarEvolutionExpander.cpp861 bool SCEVExpander::isNormalAddRecExprPHI(PHINode *PN, Instruction *IncV, in isNormalAddRecExprPHI() argument
884 if (IncV != PN) in isNormalAddRecExprPHI()
887 return isNormalAddRecExprPHI(PN, IncV, L); in isNormalAddRecExprPHI()
984 bool SCEVExpander::isExpandedAddRecExprPHI(PHINode *PN, Instruction *IncV, in isExpandedAddRecExprPHI() argument
989 if (IVOper == PN) in isExpandedAddRecExprPHI()
998 Value *SCEVExpander::expandIVInc(PHINode *PN, Value *StepV, const Loop *L, in expandIVInc() argument
1011 IncV = expandAddToGEP(StepArray, StepArray+1, GEPPtrTy, IntTy, PN); in expandIVInc()
1012 if (IncV->getType() != PN->getType()) { in expandIVInc()
1013 IncV = Builder.CreateBitCast(IncV, PN->getType()); in expandIVInc()
1018 Builder.CreateSub(PN, StepV, Twine(IVName) + ".iv.next") : in expandIVInc()
[all …]
/external/llvm/lib/Transforms/Scalar/
DIndVarSimplify.cpp241 void IndVarSimplify::HandleFloatingPointIV(Loop *L, PHINode *PN) { in HandleFloatingPointIV() argument
242 unsigned IncomingEdge = L->contains(PN->getIncomingBlock(0)); in HandleFloatingPointIV()
247 dyn_cast<ConstantFP>(PN->getIncomingValue(IncomingEdge)); in HandleFloatingPointIV()
256 dyn_cast<BinaryOperator>(PN->getIncomingValue(BackEdge)); in HandleFloatingPointIV()
263 if (IncValueVal == 0 || Incr->getOperand(0) != PN || in HandleFloatingPointIV()
393 IntegerType *Int32Ty = Type::getInt32Ty(PN->getContext()); in HandleFloatingPointIV()
396 PHINode *NewPHI = PHINode::Create(Int32Ty, 2, PN->getName()+".int", PN); in HandleFloatingPointIV()
398 PN->getIncomingBlock(IncomingEdge)); in HandleFloatingPointIV()
403 NewPHI->addIncoming(NewAdd, PN->getIncomingBlock(BackEdge)); in HandleFloatingPointIV()
411 WeakVH WeakPH = PN; in HandleFloatingPointIV()
[all …]
DJumpThreading.cpp129 bool ProcessBranchOnPHI(PHINode *PN);
379 if (PHINode *PN = dyn_cast<PHINode>(I)) { in ComputeValueKnownInPredecessors() local
380 for (unsigned i = 0, e = PN->getNumIncomingValues(); i != e; ++i) { in ComputeValueKnownInPredecessors()
381 Value *InVal = PN->getIncomingValue(i); in ComputeValueKnownInPredecessors()
383 Result.push_back(std::make_pair(KC, PN->getIncomingBlock(i))); in ComputeValueKnownInPredecessors()
386 PN->getIncomingBlock(i), BB); in ComputeValueKnownInPredecessors()
388 Result.push_back(std::make_pair(KC, PN->getIncomingBlock(i))); in ComputeValueKnownInPredecessors()
484 PHINode *PN = dyn_cast<PHINode>(Cmp->getOperand(0)); in ComputeValueKnownInPredecessors() local
485 if (PN && PN->getParent() == BB) { in ComputeValueKnownInPredecessors()
488 for (unsigned i = 0, e = PN->getNumIncomingValues(); i != e; ++i) { in ComputeValueKnownInPredecessors()
[all …]
DLoopRotation.cpp107 for (I = OrigHeader->begin(); PHINode *PN = dyn_cast<PHINode>(I); ++I) in RewriteUsesOfClonedInstructions()
108 PN->removeIncomingValue(PN->getBasicBlockIndex(OrigPreheader)); in RewriteUsesOfClonedInstructions()
351 for (; PHINode *PN = dyn_cast<PHINode>(I); ++I) in rotateLoop()
352 ValueMap[PN] = PN->getIncomingValueForBlock(OrigPreheader); in rotateLoop()
404 PHINode *PN = dyn_cast<PHINode>(BI); ++BI) in rotateLoop()
405 PN->addIncoming(PN->getIncomingValueForBlock(OrigHeader), OrigPreheader); in rotateLoop()
DCodeGenPrepare.cpp320 while (const PHINode *PN = dyn_cast<PHINode>(BBI++)) { in CanMergeBlocks() local
321 for (Value::const_use_iterator UI = PN->use_begin(), E = PN->use_end(); in CanMergeBlocks()
362 while (const PHINode *PN = dyn_cast<PHINode>(BBI++)) { in CanMergeBlocks() local
363 const Value *V1 = PN->getIncomingValueForBlock(Pred); in CanMergeBlocks()
364 const Value *V2 = PN->getIncomingValueForBlock(BB); in CanMergeBlocks()
408 PHINode *PN; in EliminateMostlyEmptyBlock() local
410 (PN = dyn_cast<PHINode>(BBI)); ++BBI) { in EliminateMostlyEmptyBlock()
412 Value *InVal = PN->removeIncomingValue(BB, false); in EliminateMostlyEmptyBlock()
420 PN->addIncoming(InValPhi->getIncomingValue(i), in EliminateMostlyEmptyBlock()
427 PN->addIncoming(InVal, BBPN->getIncomingBlock(i)); in EliminateMostlyEmptyBlock()
[all …]
/external/llvm/lib/CodeGen/SelectionDAG/
DFunctionLoweringInfo.cpp159 const PHINode *PN = dyn_cast<PHINode>(I); ++I) { in set()
160 if (PN->use_empty()) continue; in set()
163 if (PN->getType()->isEmptyTy()) in set()
166 DebugLoc DL = PN->getDebugLoc(); in set()
167 unsigned PHIReg = ValueMap[PN]; in set()
171 ComputeValueVTs(*TLI, PN->getType(), ValueVTs); in set()
268 void FunctionLoweringInfo::ComputePHILiveOutRegInfo(const PHINode *PN) { in ComputePHILiveOutRegInfo() argument
269 Type *Ty = PN->getType(); in ComputePHILiveOutRegInfo()
281 if (TLI->getNumRegisters(PN->getContext(), IntVT) != 1) in ComputePHILiveOutRegInfo()
283 IntVT = TLI->getTypeToTransformTo(PN->getContext(), IntVT); in ComputePHILiveOutRegInfo()
[all …]
/external/llvm/include/llvm/Analysis/
DScalarEvolutionExpander.h188 void setChainedPhi(PHINode *PN) { ChainedPhis.insert(PN); }
257 bool isNormalAddRecExprPHI(PHINode *PN, Instruction *IncV, const Loop *L);
259 bool isExpandedAddRecExprPHI(PHINode *PN, Instruction *IncV, const Loop *L);
266 Value *expandIVInc(PHINode *PN, Value *StepV, const Loop *L,
/external/llvm/lib/Transforms/ObjCARC/
DProvenanceAnalysis.cpp150 if (const PHINode *PN = dyn_cast<PHINode>(A)) in relatedCheck() local
151 return relatedPHI(PN, B); in relatedCheck()
152 if (const PHINode *PN = dyn_cast<PHINode>(B)) in relatedCheck() local
153 return relatedPHI(PN, A); in relatedCheck()

12345678910>>...16