| /src/external/apache2/llvm/dist/llvm/lib/Transforms/Utils/ |
| CanonicalizeFreezeInLoops.cpp | 13 // i = phi init, i.next 21 // i = phi init.fr, i.next 71 // A freeze instruction that uses an induction phi 73 // The induction phi, step instruction, the operand idx of StepInst which is 75 PHINode *PHI; 79 FrozenIndPHIInfo(PHINode *PHI, BinaryOperator *StepInst) 80 : PHI(PHI), StepInst(StepInst) {} 132 for (auto &PHI : L->getHeader()->phis()) { 134 if (!InductionDescriptor::isInductionPHI(&PHI, L, &SE, ID) [all...] |
| FlattenCFG.cpp | 137 PHINode *PHI = dyn_cast<PHINode>(BB->begin()); 138 if (PHI) 139 return false; // For simplicity, avoid cases containing PHI nodes. 274 // PS2 should not contain PHI node. 275 PHI = dyn_cast<PHINode>(PS2->begin()); 276 if (PHI) 500 // Handle PHI node to replace its predecessors to FirstEntryBlock. 502 for (PHINode &Phi : Succ->phis()) { 503 for (unsigned i = 0, e = Phi.getNumIncomingValues(); i != e; ++i) { 504 if (Phi.getIncomingBlock(i) == SecondEntryBlock [all...] |
| SSAUpdater.cpp | 77 static bool IsEquivalentPHI(PHINode *PHI, 79 unsigned PHINumValues = PHI->getNumIncomingValues(); 83 // Scan the phi to see if it matches. 85 if (ValueMapping[PHI->getIncomingBlock(i)] != 86 PHI->getIncomingValue(i)) { 110 // is relatively slow. If we already have PHI nodes in this block, walk one 147 // Otherwise, we do need a PHI: check to see if we already have one available 162 // Fill in all the predecessors of the PHI. 166 // See if the PHI node can be merged to a single value. This can happen in 167 // loop cases when we get a PHI of itself and one other value [all...] |
| PredicateInfo.cpp | 93 // Operations that must appear last in a block, like successor phi node uses. 142 // We want to put the def that will get used for a given set of phi uses, 143 // before those phi uses. 145 // Note that only phi nodes uses and defs can come last. 157 // For a phi use, or a non-materialized def, return the edge it represents. 160 auto *PHI = cast<PHINode>(VD.U->getUser()); 161 return std::make_pair(PHI->getIncomingBlock(*VD.U), PHI->getParent()); 167 // For two phi related values, return the ordering. 270 // The set of edges along which we can only handle phi uses, due to critica [all...] |
| InlineFunction.cpp | 122 /// PHI for EH values from landingpad insts. 130 // If there are PHI nodes in the unwind destination block, we need to keep 137 PHINode *PHI = cast<PHINode>(I); 138 UnwindDestPHIValues.push_back(PHI->getIncomingValueForBlock(InvokeBB)); 162 /// Add incoming-PHI values to the unwind destination block for the given 171 PHINode *phi = cast<PHINode>(I); local 172 phi->addIncoming(UnwindDestPHIValues[i], src); 204 // Create a PHI for the exception values. 537 /// it rewrites them to be invokes that jump to InvokeDest and fills in the PHI 642 // Update any PHI nodes in the exceptional block to indicate that ther [all...] |
| SimplifyIndVar.cpp | 724 // %iv = phi i32 {0,+,1} 732 // %M = phi (%X, %iv) 738 // If UseInst is not a PHI node then we know that IVOperand dominates 1124 /// loop. For PHI nodes, there may be multiple uses, so compute the nearest 1126 /// viable location is found: it may happen if User is a PHI and Def only comes 1127 /// to this PHI from unreachable blocks. 1130 PHINode *PHI = dyn_cast<PHINode>(User); 1131 if (!PHI) 1135 for (unsigned i = 0, e = PHI->getNumIncomingValues(); i != e; ++i) { 1136 if (PHI->getIncomingValue(i) != Def [all...] |
| /src/external/apache2/llvm/dist/llvm/lib/CodeGen/ |
| SwiftErrorValueTracking.cpp | 33 // use" by inserting a copy or phi at the beginning of this block. 180 // Otherwise we need a phi. 192 // phi needs to use it self. 201 // We need a phi node if we have more than one predecessor with different 211 // If there is no upwards exposed used and we don't need a phi just 226 // If we don't need a phi create a copy to the upward exposed vreg. 238 // We need a phi: if there is an upwards exposed use we already have a 244 MachineInstrBuilder PHI = 246 TII->get(TargetOpcode::PHI), PHIVReg); 248 PHI.addReg(BBRegPair.second).addMBB(BBRegPair.first) [all...] |
| MachineSSAUpdater.cpp | 115 /// InsertNewDef - Insert an empty PHI or IMPLICIT_DEF instruction which define 144 /// a block. Because of this, we need to insert a new PHI node in SomeBB to 183 // If an identical PHI is already in BB, just reuse it. 188 // Otherwise, we do need a PHI: insert one now. 190 MachineInstrBuilder InsertedPHI = InsertNewDef(TargetOpcode::PHI, BB, 193 // Fill in all the predecessors of the PHI. 197 // See if the PHI node can be merged to a single value. This can happen in 198 // loop cases when we get a PHI of itself and one other value. 207 LLVM_DEBUG(dbgs() << " Inserted PHI: " << *InsertedPHI << "\n"); 222 /// RewriteUse - Rewrite a use of the symbolic value. This handles PHI nodes [all...] |
| EarlyIfConversion.cpp | 111 /// Information about each phi in the Tail block. 113 MachineInstr *PHI; 118 PHIInfo(MachineInstr *phi) 119 : PHI(phi), TReg(0), FReg(0), CondCycles(0), TCycles(0), FCycles(0) {} 161 /// Replace PHI instructions in Tail with selects. 164 /// Insert selects and rewrite PHI operands to use them. 514 // Find PHI operands corresponding to TPred and FPred. 515 for (unsigned i = 1; i != PI.PHI->getNumOperands(); i += 2) { 516 if (PI.PHI->getOperand(i+1).getMBB() == TPred [all...] |
| /src/external/apache2/llvm/dist/llvm/lib/Transforms/InstCombine/ |
| InstCombineNegator.cpp | 271 case Instruction::PHI: { 272 // `phi` is negatible if all the incoming values are negatible. 273 auto *PHI = cast<PHINode>(I); 274 SmallVector<Value *, 4> NegatedIncomingValues(PHI->getNumOperands()); 275 for (auto I : zip(PHI->incoming_values(), NegatedIncomingValues)) { 280 // All incoming values are indeed negatible. Create negated PHI node. 282 PHI->getType(), PHI->getNumOperands(), PHI->getName() + ".neg"); 283 for (auto I : zip(NegatedIncomingValues, PHI->blocks()) [all...] |
| InstCombineVectorOps.cpp | 91 // If we have a PHI node with a vector type that is only used to feed 93 // try to replace the PHI of the vector type with a PHI of a scalar type. 97 // The users we want the PHI to have are: 100 // 3) Another operand, which will feed back into the PHI. 118 // Verify that this PHI user has one use, which is the PHI itself, 125 // Create a scalar PHI node that will replace the vector PHI node 126 // just before the current PHI node [all...] |
| /src/external/apache2/llvm/dist/llvm/include/llvm/Transforms/Utils/ |
| SSAUpdaterImpl.h | 293 /// dominating definitions for non-PHI blocks. 303 // If this block already needs a PHI, there is nothing to do here. 311 // Need a PHI here. 326 /// FindAvailableVal - If this block requires a PHI, first check if an 327 /// existing PHI matches the PHI placement and reaching definitions computed 328 /// earlier, and if not, create a new PHI. Visit all the block's 330 /// the incoming values for a new PHI. 338 // Check if there needs to be a PHI in BB. 342 // Look for an existing PHI [all...] |
| /src/external/apache2/llvm/dist/llvm/lib/Target/AMDGPU/ |
| AMDGPUAtomicOptimizer.cpp | 621 // Create a PHI node to get our new atomic result into the exit block. 622 PHINode *const PHI = B.CreatePHI(Ty, 2); 623 PHI->addIncoming(UndefValue::get(Ty), EntryBB); 624 PHI->addIncoming(NewI, SingleLaneTerminator->getParent()); 632 Value *const ExtractLo = B.CreateTrunc(PHI, B.getInt32Ty()); 634 B.CreateTrunc(B.CreateLShr(PHI, 32), B.getInt32Ty()); 646 BroadcastI = B.CreateIntrinsic(Intrinsic::amdgcn_readfirstlane, {}, PHI); 683 // Need a final PHI to reconverge to above the helper lane branch mask. 686 PHINode *const PHI = B.CreatePHI(Ty, 2); 687 PHI->addIncoming(UndefValue::get(Ty), PixelEntryBB) [all...] |
| /src/external/apache2/llvm/dist/llvm/lib/Transforms/Instrumentation/ |
| PGOMemOPSizeOpt.cpp | 440 PHINode *PHI = nullptr; 442 // Insert a phi for the return values at the merge block. 444 PHI = IRBM.CreatePHI(MemOpTy, SizeIds.size() + 1, "MemOP.RVMerge"); 445 MO.I->replaceAllUsesWith(PHI); 446 PHI->addIncoming(MO.I, DefaultBB); 479 PHI->addIncoming(NewMO.I, CaseBB);
|
| /src/external/apache2/llvm/dist/llvm/lib/Transforms/Scalar/ |
| InferAddressSpaces.cpp | 60 // %y = phi [ %generic.input, %y2 ] 68 // All address expressions (our implementation only considers phi, bitcast, 83 // %y' = phi float addrspace(3)* [ %input, undef ] 87 // %y' = phi float addrspace(3)* [ %input, %y2' ] 273 // TODO: Currently, we consider only phi, bitcast, addrspacecast, and 282 case Instruction::PHI: 311 case Instruction::PHI: { 594 case Instruction::PHI: { 596 PHINode *PHI = cast<PHINode>(I); 597 PHINode *NewPHI = PHINode::Create(NewPtrType, PHI->getNumIncomingValues()) [all...] |
| LoopUnrollPass.cpp | 383 // PHI-used worklist used between iterations while accumulating cost. 390 assert(PHIUsedList.empty() && "Must start with an empty phi used list"); 404 // If an input to a PHI node comes from a dead path through the loop 416 // If this is a PHI node in the loop header, just add it to the PHI set. 424 // Push the incoming value from the backedge into the PHI used list 443 // recursively. If we reach a loop PHI node, simply add it to the set 462 "Cannot track PHI-used values past the first iteration!"); 489 auto *PHI = dyn_cast<PHINode>(&I); 490 if (!PHI) [all...] |
| LowerMatrixIntrinsics.cpp | 1170 PHINode *PHI = Builder.CreatePHI(Load->getPointerOperandType(), 3); 1171 PHI->addIncoming(Load->getPointerOperand(), Check0); 1172 PHI->addIncoming(Load->getPointerOperand(), Check1); 1173 PHI->addIncoming(NewLd, Copy); 1181 return PHI; 1247 // Create PHI nodes for the result columns to accumulate across iterations. 1250 auto *Phi = Builder.CreatePHI(TileVecTy, 2, "result.vec." + Twine(I)); 1251 Phi->addIncoming(ConstantAggregateZero::get(TileVecTy), 1253 TileResult.addVector(Phi); 1254 ColumnPhis.push_back(Phi); [all...] |
| /src/external/gpl3/gcc.old/dist/gcc/rtl-ssa/ |
| accesses.h | 71 // when the access is being printed as part of the instruction or phi node 76 // the uses of a definition, and the inputs of a phi node. 95 // we need to perform are [SET, PHI] (for set_info) and [SET, CLOBBER] 104 // resource using a phi node; the resource does not actually change value. 105 PHI, 147 // Return true if the access occurs in a phi node or an "artificial" 235 // is null, a use_info for a debug instruction, or a use_info for a phi node. 241 // a phi node. 284 // An access_info that represents the use of a resource in either a phi node 294 // Return true if the access occurs in an instruction rather than a phi node 318 phi_info *phi () const { return m_insn_or_phi.known_second (); } function in class:rtl_ssa::use_info [all...] |
| /src/external/apache2/llvm/dist/clang/lib/CodeGen/ |
| CGVTables.cpp | 103 llvm::PHINode *PHI = CGF.Builder.CreatePHI(ReturnValue->getType(), 2); 104 PHI->addIncoming(ReturnValue, AdjustNotNull); 105 PHI->addIncoming(llvm::Constant::getNullValue(ReturnValue->getType()), 107 ReturnValue = PHI;
|
| CGAtomic.cpp | 1860 llvm::PHINode *PHI = CGF.Builder.CreatePHI(OldVal->getType(), 1862 PHI->addIncoming(OldVal, CurBB); 1867 CGF.Builder.CreateStore(PHI, NewAtomicIntAddr); 1869 auto OldRVal = ConvertIntToValueOrAtomic(PHI, AggValueSlot::ignored(), 1874 auto Res = EmitAtomicCompareExchangeOp(PHI, DesiredVal, AO, Failure); 1875 PHI->addIncoming(Res.first, CGF.Builder.GetInsertBlock()); 1942 llvm::PHINode *PHI = CGF.Builder.CreatePHI(OldVal->getType(), 1944 PHI->addIncoming(OldVal, CurBB); 1949 CGF.Builder.CreateStore(PHI, NewAtomicIntAddr); 1954 auto Res = EmitAtomicCompareExchangeOp(PHI, DesiredVal, AO, Failure) [all...] |
| CGExprCXX.cpp | 1247 // Set up the current-element phi. 1766 llvm::PHINode *PHI = Builder.CreatePHI(resultPtr->getType(), 2); 1767 PHI->addIncoming(resultPtr, notNullBB); 1768 PHI->addIncoming(llvm::Constant::getNullValue(resultPtr->getType()), 1771 resultPtr = PHI; 2315 llvm::PHINode *PHI = Builder.CreatePHI(Value->getType(), 2); 2316 PHI->addIncoming(Value, CastNotNull); 2317 PHI->addIncoming(llvm::Constant::getNullValue(Value->getType()), CastNull); 2319 Value = PHI;
|
| CGClass.cpp | 384 // Build a phi if we needed a null check. 390 llvm::PHINode *PHI = Builder.CreatePHI(BasePtrTy, 2, "cast.result"); 391 PHI->addIncoming(Value.getPointer(), notNullBB); 392 PHI->addIncoming(llvm::Constant::getNullValue(BasePtrTy), origBB); 393 Value = Address(PHI, Value.getAlignment()); 443 // Produce a PHI if we had a null-check. 450 llvm::PHINode *PHI = Builder.CreatePHI(Value->getType(), 2); 451 PHI->addIncoming(Value, CastNotNull); 452 PHI->addIncoming(llvm::Constant::getNullValue(Value->getType()), CastNull); 453 Value = PHI; [all...] |
| TargetInfo.cpp | 400 llvm::PHINode *PHI = CGF.Builder.CreatePHI(Addr1.getType(), 2, Name); 401 PHI->addIncoming(Addr1.getPointer(), Block1); 402 PHI->addIncoming(Addr2.getPointer(), Block2); 404 return Address(PHI, Align); 4830 // Merge the cases with a phi.
|
| /src/external/apache2/llvm/dist/llvm/lib/Target/PowerPC/ |
| PPCMIPeephole.cpp | 272 // This function returns a list of all PHI nodes in the tree starting from 274 // The list initially only contains the root PHI. When we visit a PHI node, we 275 // add it to the list. We continue to look for other PHI node operands while 291 // While collecting the PHI nodes, we check if they can be converted (i.e. 292 // all the operands are either copies, implicit defs or PHI nodes). 299 } else if (Opcode != PPC::IMPLICIT_DEF && Opcode != PPC::PHI) 301 // If we detect a cycle in the PHI nodes, we exit. It would be 305 if (Opcode != PPC::PHI) 316 // This function changes the unprimed accumulator PHI nodes in the PHIs list t [all...] |
| /src/external/bsd/pcc/dist/pcc/mip/ |
| pass2.h | 464 SLIST_HEAD(, phiinfo) phi; member in struct:basicblock 537 #define PHI (MAXOP + 1) /* Used in SSA trees */
|