Searched refs:PHI (Results 1 - 25 of 156) sorted by relevance

1234567

/external/swiftshader/third_party/LLVM/lib/Target/X86/
H A DX86GenDisassemblerTables.inc19 "PHI"
46378 0 /* PHI*/
[all...]
/external/swiftshader/third_party/LLVM/include/llvm/Target/
H A DTargetOpcodes.h26 PHI = 0, enumerator in enum:llvm::TargetOpcode::__anon22530
/external/swiftshader/third_party/LLVM/lib/CodeGen/
H A DMachineSSAUpdater.cpp49 /// updates. ProtoValue is the value used to name PHI nodes.
108 /// InsertNewDef - Insert an empty PHI or IMPLICIT_DEF instruction which define
137 /// a block. Because of this, we need to insert a new PHI node in SomeBB to
179 // If an identical PHI is already in BB, just reuse it.
184 // Otherwise, we do need a PHI: insert one now.
186 MachineInstr *InsertedPHI = InsertNewDef(TargetOpcode::PHI, BB,
189 // Fill in all the predecessors of the PHI.
194 // See if the PHI node can be merged to a single value. This can happen in
195 // loop cases when we get a PHI of itself and one other value.
204 DEBUG(dbgs() << " Inserted PHI
250 MachineInstr *PHI; member in class:__anon22633::MachinePHIiter
284 PHI_begin(PhiT *PHI) argument
285 PHI_end(PhiT *PHI) argument
315 MachineInstr *PHI = InsertNewDef(TargetOpcode::PHI, BB, Loc, local
323 AddPHIOperand(MachineInstr *PHI, unsigned Val, MachineBasicBlock *Pred) argument
346 MachineInstr *PHI = ValueIsPHI(Val, Updater); local
354 GetPHIValue(MachineInstr *PHI) argument
[all...]
H A DStrongPHIElimination.cpp1 //===- StrongPHIElimination.cpp - Eliminate PHI nodes by inserting copies -===//
10 // This pass eliminates PHI instructions by aggressively coalescing the copies
13 // registers appearing in a PHI instruction do not interfere. It then eliminates
72 /// PHI with that register as its destination has been isolated.
112 /// Get the color of a PHI. The color of a PHI is 0 if the PHI has been
117 /// Isolate a PHI.
135 // Lowers a PHI instruction, inserting copies of the source and destination
153 // Maps a basic block to a list of its defs of registers that appear as PHI
305 MachineInstr *PHI = BBI; local
460 getPHIColor(MachineInstr *PHI) argument
476 isolatePHI(MachineInstr *PHI) argument
601 MachineInstr *PHI = BBI; local
651 InsertCopiesForPHI(MachineInstr *PHI, MachineBasicBlock *MBB) argument
[all...]
/external/llvm/lib/CodeGen/
H A DMachineSSAUpdater.cpp50 /// updates. ProtoValue is the value used to name PHI nodes.
109 /// InsertNewDef - Insert an empty PHI or IMPLICIT_DEF instruction which define
138 /// a block. Because of this, we need to insert a new PHI node in SomeBB to
180 // If an identical PHI is already in BB, just reuse it.
185 // Otherwise, we do need a PHI: insert one now.
187 MachineInstrBuilder InsertedPHI = InsertNewDef(TargetOpcode::PHI, BB,
190 // Fill in all the predecessors of the PHI.
194 // See if the PHI node can be merged to a single value. This can happen in
195 // loop cases when we get a PHI of itself and one other value.
204 DEBUG(dbgs() << " Inserted PHI
251 MachineInstr *PHI; member in class:llvm::SSAUpdaterTraits::PHI_iterator
268 PHI_begin(PhiT *PHI) argument
269 PHI_end(PhiT *PHI) argument
299 MachineInstr *PHI = InsertNewDef(TargetOpcode::PHI, BB, Loc, local
307 AddPHIOperand(MachineInstr *PHI, unsigned Val, MachineBasicBlock *Pred) argument
329 MachineInstr *PHI = ValueIsPHI(Val, Updater); local
337 GetPHIValue(MachineInstr *PHI) argument
[all...]
H A DEarlyIfConversion.cpp111 MachineInstr *PHI; member in struct:__anon13893::SSAIfConv::PHIInfo
117 : PHI(phi), TReg(0), FReg(0), CondCycles(0), TCycles(0), FCycles(0) {}
147 /// Replace PHI instructions in Tail with selects.
150 /// Insert selects and rewrite PHI operands to use them.
412 // Find PHI operands corresponding to TPred and FPred.
413 for (unsigned i = 1; i != PI.PHI->getNumOperands(); i += 2) {
414 if (PI.PHI->getOperand(i+1).getMBB() == TPred)
415 PI.TReg = PI.PHI->getOperand(i).getReg();
416 if (PI.PHI->getOperand(i+1).getMBB() == FPred)
417 PI.FReg = PI.PHI
[all...]
H A DSafeStack.cpp274 // A DFS search through all uses of the alloca in bitcasts/PHI/GEPs/etc.
631 if (auto *PHI = dyn_cast<PHINode>(User))
632 InsertBefore = PHI->getIncomingBlock(U)->getTerminator();
641 if (auto *PHI = dyn_cast<PHINode>(User)) {
642 // PHI nodes may have multiple incoming edges from the same BB (why??),
644 auto *BB = PHI->getIncomingBlock(U);
645 for (unsigned I = 0; I < PHI->getNumIncomingValues(); ++I)
646 if (PHI->getIncomingBlock(I) == BB)
647 PHI->setIncomingValue(I, Replacement);
/external/llvm/lib/Transforms/Utils/
H A DSSAUpdater.cpp65 static bool IsEquivalentPHI(PHINode *PHI, argument
67 unsigned PHINumValues = PHI->getNumIncomingValues();
73 if (ValueMapping[PHI->getIncomingBlock(i)] !=
74 PHI->getIncomingValue(i)) {
98 // is relatively slow. If we already have PHI nodes in this block, walk one
136 // Otherwise, we do need a PHI: check to see if we already have one available
153 // Fill in all the predecessors of the PHI.
157 // See if the PHI node can be merged to a single value. This can happen in
158 // loop cases when we get a PHI of itself and one other value.
165 // Set the DebugLoc of the inserted PHI, i
221 PHINode *PHI; member in class:llvm::SSAUpdaterTraits::PHI_iterator
237 PHI_begin(PhiT *PHI) argument
238 PHI_end(PhiT *PHI) argument
267 PHINode *PHI = PHINode::Create(Updater->ProtoType, NumPreds, local
274 AddPHIOperand(PHINode *PHI, Value *Val, BasicBlock *Pred) argument
293 PHINode *PHI = ValueIsPHI(Val, Updater); local
301 GetPHIValue(PHINode *PHI) argument
[all...]
H A DFlattenCFG.cpp125 PHINode *PHI = dyn_cast<PHINode>(BB->begin()); local
126 if (PHI)
127 return false; // For simplicity, avoid cases containing PHI nodes.
262 // PS2 should not contain PHI node.
263 PHI = dyn_cast<PHINode>(PS2->begin());
264 if (PHI)
H A DSimplifyCFG.cpp120 // switch for that PHI.
182 // successor, and if that successor has a PHI node, and if *that* PHI node has
202 /// store all PHI nodes in common successors.
211 // We fold the unconditional branch if we can easily update all PHI nodes in
240 /// Update PHI nodes in Succ to indicate that there will now be entries in it
241 /// from the 'NewPred' block. The values that will be flowing into the PHI nodes
781 // Remove PHI node entries for the dead edge.
856 // Remove PHI node entries for dead edges.
1095 // sure we update the number of entries in the PHI node
2509 PHINode *PHI = nullptr; local
4118 PHINode *PHI = local
4303 InitializeUniqueCases(SwitchInst *SI, PHINode *&PHI, BasicBlock *&CommonDest, SwitchCaseResultVectorTy &UniqueResults, Constant *&DefaultResult, const DataLayout &DL) argument
4386 RemoveSwitchAfterSelectConversion(SwitchInst *SI, PHINode *PHI, Value *SelectValue, IRBuilder<> &Builder) argument
4413 PHINode *PHI = nullptr; local
4862 PHINode *PHI = I.first; local
4896 PHINode *PHI = I.first; local
4991 PHINode *PHI = PHIs[I]; local
[all...]
H A DInlineFunction.cpp73 PHINode *InnerEHValuesPHI; ///< PHI for EH values from landingpad insts.
80 // If there are PHI nodes in the unwind destination block, we need to keep
87 PHINode *PHI = cast<PHINode>(I); local
88 UnwindDestPHIValues.push_back(PHI->getIncomingValueForBlock(InvokeBB));
112 /// Add incoming-PHI values to the unwind destination block for the given
153 // Create a PHI for the exception values.
415 /// it rewrites them to be invokes that jump to InvokeDest and fills in the PHI
543 // Update any PHI nodes in the exceptional block to indicate that there
552 // Now that everything is happy, we have one final detail. The PHI nodes in
555 // PHI nod
579 PHINode *PHI = dyn_cast<PHINode>(&I); local
2029 PHINode *PHI = nullptr; local
[all...]
/external/swiftshader/third_party/LLVM/lib/Transforms/Utils/
H A DSSAUpdater.cpp46 /// updates with type 'Ty'. PHI nodes get a name based on 'Name'.
71 /// IsEquivalentPHI - Check if PHI has the same incoming value as specified
73 static bool IsEquivalentPHI(PHINode *PHI, argument
75 unsigned PHINumValues = PHI->getNumIncomingValues();
81 if (ValueMapping[PHI->getIncomingBlock(i)] !=
82 PHI->getIncomingValue(i)) {
112 /// a block. Because of this, we need to insert a new PHI node in SomeBB to
127 // is relatively slow. If we already have PHI nodes in this block, walk one
165 // Otherwise, we do need a PHI: check to see if we already have one available
182 // Fill in all the predecessors of the PHI
238 PHINode *PHI; member in class:__anon23095::PHIiter
270 PHI_begin(PhiT *PHI) argument
271 PHI_end(PhiT *PHI) argument
301 PHINode *PHI = PHINode::Create(Updater->ProtoType, NumPreds, local
308 AddPHIOperand(PHINode *PHI, Value *Val, BasicBlock *Pred) argument
327 PHINode *PHI = ValueIsPHI(Val, Updater); local
335 GetPHIValue(PHINode *PHI) argument
[all...]
H A DInlineFunction.cpp260 PHINode *InnerEHValuesPHI; //< PHI for EH values from landingpad insts.
268 // If there are PHI nodes in the unwind destination block, we need to keep
275 PHINode *PHI = cast<PHINode>(I); local
276 UnwindDestPHIValues.push_back(PHI->getIncomingValueForBlock(InvokeBB));
313 /// addIncomingPHIValuesFor - Add incoming-PHI values to the unwind
460 // Create a PHI for the exception values.
499 /// it rewrites them to be invokes that jump to InvokeDest and fills in the PHI
590 // Update any PHI nodes in the exceptional block to indicate that
618 // Now that everything is happy, we have one final detail. The PHI nodes in
621 // PHI nod
1231 PHINode *PHI = 0; local
[all...]
/external/swiftshader/third_party/LLVM/include/llvm/Transforms/Utils/
H A DSSAUpdaterImpl.h271 /// dominating definitions for non-PHI blocks.
281 // If this block already needs a PHI, there is nothing to do here.
289 // Need a PHI here.
304 /// FindAvailableVal - If this block requires a PHI, first check if an
305 /// existing PHI matches the PHI placement and reaching definitions computed
306 /// earlier, and if not, create a new PHI. Visit all the block's
308 /// the incoming values for a new PHI.
316 // Check if there needs to be a PHI in BB.
320 // Look for an existing PHI
325 ValT PHI = Traits::CreateEmptyPHI(Info->BB, Info->NumPreds, Updater); local
345 PhiT *PHI = Traits::ValueIsNewPHI(Info->AvailableVal, Updater); local
387 CheckIfPHIMatches(PhiT *PHI) argument
434 RecordMatchingPHI(PhiT *PHI) argument
[all...]
/external/llvm/include/llvm/Transforms/Utils/
H A DSSAUpdaterImpl.h282 /// dominating definitions for non-PHI blocks.
292 // If this block already needs a PHI, there is nothing to do here.
300 // Need a PHI here.
315 /// FindAvailableVal - If this block requires a PHI, first check if an
316 /// existing PHI matches the PHI placement and reaching definitions computed
317 /// earlier, and if not, create a new PHI. Visit all the block's
319 /// the incoming values for a new PHI.
327 // Check if there needs to be a PHI in BB.
331 // Look for an existing PHI
336 ValT PHI = Traits::CreateEmptyPHI(Info->BB, Info->NumPreds, Updater); local
356 PhiT *PHI = Traits::ValueIsNewPHI(Info->AvailableVal, Updater); local
398 CheckIfPHIMatches(PhiT *PHI) argument
[all...]
/external/llvm/lib/Transforms/Instrumentation/
H A DIndirectCallPromotion.cpp357 // Find the PHI in BB that have the CallResult as the operand.
361 PHINode *PHI = dyn_cast<PHINode>(&I); local
362 if (!PHI)
364 int IX = PHI->getBasicBlockIndex(From);
367 Value *V = PHI->getIncomingValue(IX);
374 // This method fixes up PHI nodes in BB where BB is the UnwindDest of an
379 // so the PHI node's incoming BBs need to be fixed up accordingly.
385 PHINode *PHI = dyn_cast<PHINode>(&I); local
386 if (!PHI)
388 int IX = PHI
407 PHINode *PHI = dyn_cast<PHINode>(&I); local
[all...]
/external/llvm/lib/Transforms/Scalar/
H A DLoopInterchange.cpp531 // Since we currently do not handle LCSSA PHI's any failure in loop
533 // TODO: This should be removed once we handle LCSSA PHI nodes.
543 DEBUG(dbgs() << "PHI Nodes in loop nest exit is not handled for now "
612 // Load corresponding to reduction PHI's are safe while concluding if
629 PHINode *PHI = dyn_cast<PHINode>(L->getOperand(0));
630 if (!PHI)
705 PHINode *PHI = cast<PHINode>(I);
706 if (InductionDescriptor::isInductionPHI(PHI, SE, ID))
707 Inductions.push_back(PHI);
708 else if (RecurrenceDescriptor::isReductionPHI(PHI,
[all...]
H A DLoopLoadElimination.cpp401 PHINode *PHI = PHINode::Create(Initial->getType(), 2, "store_forwarded", local
403 PHI->addIncoming(Initial, PH);
404 PHI->addIncoming(Cand.Store->getOperand(0), L->getLoopLatch());
406 Cand.Load->replaceAllUsesWith(PHI);
H A DScalarizer.cpp569 bool Scalarizer::visitPHINode(PHINode &PHI) { argument
570 VectorType *VT = dyn_cast<VectorType>(PHI.getType());
575 IRBuilder<> Builder(&PHI);
579 unsigned NumOps = PHI.getNumOperands();
582 PHI.getName() + ".i" + Twine(I));
585 Scatterer Op = scatter(&PHI, PHI.getIncomingValue(I));
586 BasicBlock *IncomingBlock = PHI.getIncomingBlock(I);
590 gather(&PHI, Res);
/external/llvm/lib/Target/NVPTX/
H A DNVPTXInferAddressSpaces.cpp165 case Instruction::PHI:
182 case Instruction::PHI: {
305 case Instruction::PHI: {
307 PHINode *PHI = cast<PHINode>(I); local
308 PHINode *NewPHI = PHINode::Create(NewPtrType, PHI->getNumIncomingValues());
309 for (unsigned Index = 0; Index < PHI->getNumIncomingValues(); ++Index) {
312 PHI->getIncomingBlock(Index));
/external/llvm/lib/Transforms/ObjCARC/
H A DObjCARCContract.cpp26 // TODO: ObjCARCContract could insert PHI nodes when uses aren't
574 if (PHINode *PHI = dyn_cast<PHINode>(U.getUser())) {
575 // For PHI nodes, insert the bitcast in the predecessor block.
577 BasicBlock *BB = PHI->getIncomingBlock(ValNo);
581 // While we're here, rewrite all edges for this PHI, rather
584 for (unsigned i = 0, e = PHI->getNumIncomingValues(); i != e; ++i)
585 if (PHI->getIncomingBlock(i) == BB) {
588 &PHI->getOperandUse(
591 PHI->setIncomingValue(i, Replacement);
/external/swiftshader/third_party/LLVM/lib/Analysis/
H A DCaptureTracking.cpp118 case Instruction::PHI:
/external/swiftshader/third_party/LLVM/lib/CodeGen/SelectionDAG/
H A DSelectionDAGISel.cpp221 /// SplitCriticalSideEffectEdges - Look for critical edges with a PHI value that
235 // For each block with a PHI node, check to see if any of the input values
238 // PHI.
245 // Since this block has a PHI Node, we assume it has multiple input
611 // update PHI nodes later on.
1011 // PHI nodes in successors.
1016 MachineInstr *PHI = FuncInfo->PHINodesToUpdate[i].first; local
1017 assert(PHI->isPHI() &&
1018 "This is not a machine PHI node that we are updating!");
1019 if (!FuncInfo->MBB->isSuccessor(PHI
1068 MachineInstr *PHI = FuncInfo->PHINodesToUpdate[pi].first; local
1129 MachineInstr *PHI = FuncInfo->PHINodesToUpdate[pi].first; local
1155 MachineInstr *PHI = FuncInfo->PHINodesToUpdate[i].first; local
[all...]
/external/llvm/lib/Analysis/
H A DMemoryBuiltins.cpp799 SizeOffsetEvalType ObjectSizeOffsetEvaluator::visitPHINode(PHINode &PHI) { argument
801 PHINode *SizePHI = Builder.CreatePHI(IntTy, PHI.getNumIncomingValues());
802 PHINode *OffsetPHI = Builder.CreatePHI(IntTy, PHI.getNumIncomingValues());
805 CacheMap[&PHI] = std::make_pair(SizePHI, OffsetPHI);
807 // Compute offset/size for each PHI incoming pointer.
808 for (unsigned i = 0, e = PHI.getNumIncomingValues(); i != e; ++i) {
809 Builder.SetInsertPoint(&*PHI.getIncomingBlock(i)->getFirstInsertionPt());
810 SizeOffsetEvalType EdgeData = compute_(PHI.getIncomingValue(i));
819 SizePHI->addIncoming(EdgeData.first, PHI.getIncomingBlock(i));
820 OffsetPHI->addIncoming(EdgeData.second, PHI
[all...]
/external/llvm/lib/Target/AMDGPU/
H A DSIFixSGPRCopies.cpp25 /// %vreg4 <vsrc> = PHI %vreg1 <vsrc>, <BB#0>, %vreg3 <vrsc>, <BB#1>
40 /// %vreg4 <sgpr> = PHI %vreg0 <sgpr>, <BB#0>, %vreg3 <vsrc>, <BB#1>
43 /// Now that the result of the PHI instruction is an SGPR, the register
55 /// %vreg4 <sgpr> = PHI %vreg0 <sgpr>, <BB#0>, %vreg3 <sgpr>, <BB#1>
60 /// In order to avoid this problem, this pass searches for PHI instructions
62 /// <vgpr> if the user of the PHI's definition register is a vector instruction.
63 /// If the PHI's definition class is constrained to <vgpr> then the coalescer
273 case AMDGPU::PHI: {
274 DEBUG(dbgs() << "Fixing PHI: " << MI);
279 // If a PHI nod
[all...]

Completed in 638 milliseconds

1234567