/external/v8/src/compiler/ |
diamond.h | 52 Node* Phi(MachineRepresentation rep, Node* tv, Node* fv) { 53 return graph->NewNode(common->Phi(rep, 2), tv, fv, merge);
|
raw-machine-assembler.cc | 494 Node* RawMachineAssembler::Phi(MachineRepresentation rep, int input_count, 500 return AddNode(common()->Phi(rep, input_count), input_count + 1, buffer); 503 void RawMachineAssembler::AppendPhiInput(Node* phi, Node* new_input) { 504 const Operator* op = phi->op(); 505 const Operator* new_op = common()->ResizeMergeOrPhi(op, phi->InputCount()); 506 phi->InsertInput(zone(), phi->InputCount() - 1, new_input); 507 NodeProperties::ChangeOp(phi, new_op);
|
/external/llvm/lib/Transforms/Scalar/ |
PartiallyInlineLibCalls.cpp | 48 // dst = phi(v0, v1) 52 // Create phi and replace all uses. 55 PHINode *Phi = Builder.CreatePHI(Call->getType(), 2); 56 Call->replaceAllUsesWith(Phi); 75 // Add phi operands. 76 Phi->addIncoming(Call, &CurrBB); 77 Phi->addIncoming(LibCall, LibCallBB);
|
LoopIdiomRecognize.cpp | [all...] |
StructurizeCFG.cpp | 143 /// The condition for the optional "Else" region is expressed as a PHI node. 144 /// The incomming values of the PHI node are true for the "If" edge and false 162 /// consist of a network of PHI nodes where the true incoming values expresses 567 /// \brief Remove all PHI values coming from "From" into "To" and remember 574 PHINode &Phi = cast<PHINode>(*I++); 575 while (Phi.getBasicBlockIndex(From) != -1) { 576 Value *Deleted = Phi.removeIncomingValue(From, false); 577 Map[&Phi].push_back(std::make_pair(From, Deleted)); 582 /// \brief Add a dummy PHI value as soon as we knew the new predecessor 587 PHINode &Phi = cast<PHINode>(*I++) [all...] |
/external/swiftshader/third_party/llvm-7.0/llvm/lib/Transforms/Scalar/ |
PartiallyInlineLibCalls.cpp | 45 // dst = phi(v0, v1) 49 // Create phi and replace all uses. 53 PHINode *Phi = Builder.CreatePHI(Ty, 2); 54 Call->replaceAllUsesWith(Phi); 76 // Add phi operands. 77 Phi->addIncoming(Call, &CurrBB); 78 Phi->addIncoming(LibCall, LibCallBB);
|
StructurizeCFG.cpp | 154 /// The condition for the optional "Else" region is expressed as a PHI node. 155 /// The incoming values of the PHI node are true for the "If" edge and false 173 /// consist of a network of PHI nodes where the true incoming values expresses 576 /// Remove all PHI values coming from "From" into "To" and remember 580 for (PHINode &Phi : To->phis()) { 581 while (Phi.getBasicBlockIndex(From) != -1) { 582 Value *Deleted = Phi.removeIncomingValue(From, false); 583 Map[&Phi].push_back(std::make_pair(From, Deleted)); 588 /// Add a dummy PHI value as soon as we knew the new predecessor 590 for (PHINode &Phi : To->phis()) [all...] |
/external/swiftshader/third_party/subzero/src/ |
IcePhiLoweringImpl.h | 1 //===------ subzero/src/IcePhiLoweringImpl.h - Phi lowering -----*- C++ -*-===// 27 /// Turn an i64 Phi instruction into a pair of i32 Phi instructions, to preserve 35 auto *Phi = llvm::dyn_cast<InstPhi>(&I); 36 if (Phi->isDeleted()) 38 Variable *Dest = Phi->getDest(); 43 auto *PhiLo = InstPhi::create(Func, Phi->getSrcSize(), DestLo); 44 auto *PhiHi = InstPhi::create(Func, Phi->getSrcSize(), DestHi); 45 for (SizeT I = 0; I < Phi->getSrcSize(); ++I) { 46 Operand *Src = Phi->getSrc(I) [all...] |
IceCfgNode.cpp | 29 // Adds an instruction to either the Phi list or the regular instruction list. 43 if (auto *Phi = llvm::dyn_cast<InstPhi>(Instr)) { 45 Func->setError("Phi instruction added to the middle of a block"); 48 Phis.push_back(Phi); 61 auto &Phi = llvm::cast<InstPhi>(Inst); 62 for (SizeT i = 0; i < Phi.getSrcSize(); ++i) { 63 if (Phi.getLabel(i) == Old) { 64 Phi.setLabel(i, New); 107 // Ensure each Phi instruction in the node is consistent with respect to control 108 // flow. For each predecessor, there must be a phi argument with that label [all...] |
IceInst.h | 31 // ordering of Phi and non-Phi instructions, etc. Most of the validity checking 60 Phi, 351 /// lowering. E.g., if Phi instruction lowering happens before target lowering, 665 /// Phi instruction. For incoming edge I, the node is Labels[I] and the Phi 686 static bool classof(const Inst *Instr) { return Instr->getKind() == Phi; } 693 /// but the Phi instruction is created before InEdges[] is available, so it's [all...] |
WasmTranslator.cpp | 327 Node Phi(wasm::LocalType, uint32_t Count, Node *Vals, Node Control) { 328 LOG(out << "Phi(" << Count << ", " << Control); 345 auto *Phi = InstPhi::create(Func, Count * 200, Dest); 349 Phi->addArgument(Op, InEdges[i]); 351 setDefiningInst(Dest, Phi); 352 Control.toCfgNode()->appendInst(Phi); 934 bool IsPhiWithMerge(Node Phi, Node Merge) const { 935 LOG(out << "IsPhiWithMerge(" << Phi << ", " << Merge << ")" 937 if (Phi && Phi.isOperand()) [all...] |
/external/swiftshader/third_party/llvm-7.0/llvm/unittests/Transforms/Vectorize/ |
VPlanHCFGTest.cpp | 26 " %indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.body ]\n" 56 VPInstruction *Phi = dyn_cast<VPInstruction>(&*Iter++); 57 EXPECT_EQ(Instruction::PHI, Phi->getOpcode()); 62 EXPECT_EQ(Phi, Idx->getOperand(1)); 83 EXPECT_EQ(Phi, IndvarAdd->getOperand(0)); 103 " %indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.body ]\n" 137 auto *Phi = dyn_cast<VPWidenPHIRecipe>(&*Iter++); 138 EXPECT_NE(nullptr, Phi);
|
/external/swiftshader/third_party/llvm-7.0/llvm/lib/Transforms/Utils/ |
CallPromotionUtils.cpp | 23 /// Fix-up phi nodes in an invoke instruction's normal destination. 36 /// %t2 = phi i32 [ %t0, %then_bb ], [ %t1, %else_bb ] 40 /// %t3 = phi i32 [ %x, %orig_bb ], ... 42 /// "orig_bb" is no longer a predecessor of "normal_dst", so the phi nodes in 46 /// %t3 = phi i32 [ %x, %merge_bb ], ... 50 for (PHINode &Phi : Invoke->getNormalDest()->phis()) { 51 int Idx = Phi.getBasicBlockIndex(OrigBlock); 54 Phi.setIncomingBlock(Idx, MergeBlock); 58 /// Fix-up phi nodes in an invoke instruction's unwind destination. 71 /// %t3 = phi i32 [ %x, %orig_bb ], .. [all...] |
LoopUnrollPeel.cpp | 65 // Designates that a Phi is estimated to become invariant after an "infinite" 91 // This function calculates the number of iterations after which the given Phi 94 // Given %x = phi <Inputs from above the loop>, ..., [%y, %back.edge]. 96 // If %y is a Phi from the loop header, I(%x) = I(%y) + 1. 98 // TODO: Actually if %y is an expression that depends only on Phi %z and some 101 // %x = phi(0, %a), <-- becomes invariant starting from 3rd iteration. 102 // %y = phi(0, 5), 105 PHINode *Phi, Loop *L, BasicBlock *BackEdge, 107 assert(Phi->getParent() == L->getHeader() && 108 "Non-loop Phi should not be checked for turning into invariant.") [all...] |
LoopUnrollRuntime.cpp | 60 /// - Create PHI nodes at prolog end block to combine values 62 /// - Add a PHI operand to a PHI node at the loop exit block 77 // Create a PHI node for each outgoing value from the original loop 79 // The new PHI node is inserted in the prolog end basic block. 80 // The new PHI node value is added as an operand of a PHI node in either 84 // Add a new PHI node to the prolog end block and add the 88 // Adding a value to the new PHI node from the original loop preheader. 103 // Adding a value to the new PHI node from the last prolog bloc [all...] |
/external/swiftshader/third_party/llvm-7.0/llvm/lib/Analysis/ |
MemorySSAUpdater.cpp | 33 // The simple, non-marker algorithm places phi nodes at any join 34 // Here, we place markers, and only place phi nodes if they end up necessary. 39 // flow, where phi nodes may be in cycles with themselves, but unnecessary. 58 // We hit our node again, meaning we had a cycle, we must insert a phi 71 // potential phi node. This will insert phi nodes if we cycle in order to 76 // Now try to simplify the ops to avoid placing a phi. 77 // This may return null if we never created a phi yet, that's okay 78 MemoryPhi *Phi = dyn_cast_or_null<MemoryPhi>(MSSA->getMemoryAccess(BB)); 80 // See if we can avoid the phi by simplifying it [all...] |
/external/swiftshader/third_party/llvm-7.0/llvm/lib/CodeGen/ |
ScalarizeMaskedMemIntrin.cpp | 98 // %res.phi.else = phi <16 x i32> [ %6, %cond.load ], [ undef, %0 ] 106 // %11 = insertelement <16 x i32> %res.phi.else, i32 %10, i32 1 110 // %res.phi.else3 = phi <16 x i32> [ %11, %cond.load1 ], [ %res.phi.else, %else ] 176 PHINode *Phi = nullptr; 182 // %res.phi.else3 = phi <16 x i32> [ %11, %cond.load1 ], [ %res.phi.else, %else [all...] |
/external/swiftshader/third_party/llvm-7.0/llvm/lib/Target/AMDGPU/ |
SIAnnotateControlFlow.cpp | 88 bool isElse(PHINode *Phi); 90 void eraseIfUnused(PHINode *Phi); 182 /// Can the condition represented by this PHI node treated like 184 bool SIAnnotateControlFlow::isElse(PHINode *Phi) { 185 BasicBlock *IDom = DT->getNode(Phi->getParent())->getIDom()->getBlock(); 186 for (unsigned i = 0, e = Phi->getNumIncomingValues(); i != e; ++i) { 187 if (Phi->getIncomingBlock(i) == IDom) { 189 if (Phi->getIncomingValue(i) != BoolTrue) 193 if (Phi->getIncomingValue(i) != BoolFalse) 201 // Erase "Phi" if it is not used any mor [all...] |
/external/llvm/lib/Target/AMDGPU/ |
SIAnnotateControlFlow.cpp | 80 bool isElse(PHINode *Phi); 82 void eraseIfUnused(PHINode *Phi); 189 /// \brief Can the condition represented by this PHI node treated like 191 bool SIAnnotateControlFlow::isElse(PHINode *Phi) { 192 BasicBlock *IDom = DT->getNode(Phi->getParent())->getIDom()->getBlock(); 193 for (unsigned i = 0, e = Phi->getNumIncomingValues(); i != e; ++i) { 194 if (Phi->getIncomingBlock(i) == IDom) { 196 if (Phi->getIncomingValue(i) != BoolTrue) 200 if (Phi->getIncomingValue(i) != BoolFalse) 208 // \brief Erase "Phi" if it is not used any mor [all...] |
/external/swiftshader/third_party/llvm-7.0/llvm/lib/Target/ARM/ |
ARMParallelDSP.cpp | 85 // 'Reduction' contains the phi-node and accumulator statement from where we 100 PHINode *Phi; // The Phi-node from where we start 107 Reduction (PHINode *P, Instruction *Acc) : Phi(P), AccIntAdd(Acc) { }; 387 Instruction *Acc = Reduction.Phi; 400 if (Acc != Reduction.Phi) { 421 for (PHINode &Phi : Header->phis()) { 422 const auto *Ty = Phi.getType(); 427 RecurrenceDescriptor::AddReductionVar(&Phi, 433 Instruction *Acc = dyn_cast<Instruction>(Phi.getIncomingValueForBlock(Latch)) [all...] |
/external/tensorflow/tensorflow/compiler/xla/service/ |
hlo_dataflow_analysis.cc | 182 bool HloDataflowAnalysis::Phi( 186 VLOG(4) << "Phi(" << instruction->name() << ")"; 201 // Positions with phi values should never have more than one value in the 224 // Remove the existing phi value (if it exists). The phi can be its own 248 // Only a single value reaches this point. There should be no phi, and 257 // Remove the existing phi. 265 // Multiple distinct values reach this point. A phi value is 383 return Phi(conditional, inputs); 534 return Phi(parameter, inputs) [all...] |
/external/llvm/lib/Transforms/Utils/ |
MemorySSA.cpp | 209 // Rename the phi nodes in our successor block 213 auto *Phi = cast<MemoryPhi>(&Accesses->front()); 214 Phi->addIncoming(IncomingVal, BB); 223 /// in phi nodes in our successors. 249 /// \brief Compute dominator levels, used by the phi insertion algorithm above. 256 /// \brief This handles unreachable block accesses by deleting phi nodes in 263 // Make sure phi nodes in our reachable successors end up with a 271 // Rename the phi nodes in our successor block 275 auto *Phi = cast<MemoryPhi>(&Accesses->front()); 276 Phi->addIncoming(LiveOnEntryDef.get(), BB) [all...] |
/external/swiftshader/third_party/LLVM/lib/Analysis/ |
ScalarEvolutionExpander.cpp | [all...] |
/external/swiftshader/third_party/llvm-7.0/llvm/unittests/Analysis/ |
MemorySSA.cpp | 153 // the phi is trivial 163 // We don't touch existing loads, so we need to create a new one to get a phi 176 // Now the load should be a phi of the entry store and the left store 192 // and make sure the phi below it got updated, despite being blocks away 361 // Before, the load will point to a phi of the EntryStore and SideStore. 369 // After it's a phi of the new side store access. 404 // Before, the load will point to a phi of the EntryStore and SideStore. 412 // After, it's a phi of the side store. 448 // Before, the load will point to a phi of the EntryStore and SideStore. 457 // After, it's a phi of the entry store [all...] |
ScalarEvolutionTest.cpp | 135 // PHI node. 239 " %iv0 = phi i8* [ %iv0.inc, %loop ], [ %iv0.init, %loop.ph ] " 240 " %iv1 = phi i32 [ %iv1.inc, %loop ], [ 0, %loop.ph ] " 373 PHINode *Phi = cast<PHINode>(&*II++); 374 Phi->addIncoming(Acc[i], LoopBB); 375 Phi->addIncoming(UndefValue::get(Ty), EntryBB); 493 " %iv0 = phi i32 [ %iv0.inc, %loop ], [ 0, %loop.ph ] " 494 " %iv1 = phi i32 [ %iv1.inc, %loop ], [ -2147483648, %loop.ph ] " 637 // %0 = phi i64 [ 100, %entry ], [ %dec, %for.inc ] 646 // %1 = phi i64 [ 100, %for.cond ], [ %dec5, %for.inc2 [all...] |