/prebuilts/clang/host/linux-x86/clang-3977809/prebuilt_include/llvm/include/llvm/Transforms/Utils/ |
LoopUtils.h | 171 /// Returns true if Phi is a reduction of type Kind and adds it to the 173 static bool AddReductionVar(PHINode *Phi, RecurrenceKind Kind, Loop *TheLoop, 177 /// Returns true if Phi is a reduction in TheLoop. The RecurrenceDescriptor is 179 static bool isReductionPHI(PHINode *Phi, Loop *TheLoop, 182 /// Returns true if Phi is a first-order recurrence. A first-order recurrence 186 static bool isFirstOrderRecurrence(PHINode *Phi, Loop *TheLoop, 201 /// Returns first unsafe algebra instruction in the PHI node's use-chain. 213 /// Determines if Phi may have been type-promoted. If Phi has a single user 214 /// that ANDs the Phi with a type mask, return the user. RT is updated t [all...] |
/prebuilts/clang/host/linux-x86/clang-4053586/prebuilt_include/llvm/include/llvm/Transforms/Utils/ |
LoopUtils.h | 171 /// Returns true if Phi is a reduction of type Kind and adds it to the 173 static bool AddReductionVar(PHINode *Phi, RecurrenceKind Kind, Loop *TheLoop, 177 /// Returns true if Phi is a reduction in TheLoop. The RecurrenceDescriptor is 179 static bool isReductionPHI(PHINode *Phi, Loop *TheLoop, 182 /// Returns true if Phi is a first-order recurrence. A first-order recurrence 186 static bool isFirstOrderRecurrence(PHINode *Phi, Loop *TheLoop, 201 /// Returns first unsafe algebra instruction in the PHI node's use-chain. 213 /// Determines if Phi may have been type-promoted. If Phi has a single user 214 /// that ANDs the Phi with a type mask, return the user. RT is updated t [all...] |
/external/r8/src/main/java/com/android/tools/r8/ir/code/ |
Value.java | 64 private LinkedList<Phi> phiUsers = new LinkedList<>(); 65 private Set<Phi> uniquePhiUsers = null; 184 public Set<Phi> uniquePhiUsers() { 242 public void addPhiUser(Phi user) { 247 public void removePhiUser(Phi user) { 298 for (Phi user : uniquePhiUsers()) { 427 public Phi asPhi() { 530 for (Phi phi : uniquePhiUsers()) { 531 if (!active.contains(phi) && !phi.isDead(active, options)) [all...] |
BasicBlock.java | 87 private List<Phi> phis = new ArrayList<>(); 101 private Map<Integer, Phi> incompletePhis = new HashMap<>(); 154 for (Phi phi : getPhis()) { 155 phi.removeOperand(index); 158 List<Phi> trivials = new ArrayList<>(); 159 for (Phi phi : getPhis()) { 160 if (phi.isTrivialPhi()) { 161 trivials.add(phi); 1159 Phi phi = new Phi(valueNumberGenerator.next(), local [all...] |
IRCode.java | 152 // Check that all phi uses are consistent. 153 for (Phi phi : block.getPhis()) { 154 assert phi.getOperands().size() == predecessorCount; 155 values.add(phi); 156 for (Value value : phi.getOperands()) { 159 Phi phiOperand = value.asPhi(); 161 assert phiOperand.uniquePhiUsers().contains(phi); 184 Phi phi = value.asPhi() local [all...] |
/external/r8/src/test/java/com/android/tools/r8/smali/ |
CatchSuccessorFallthroughTest.java | 13 import com.android.tools.r8.ir.code.Phi; 73 // Find the exit block and assert that the value is a phi merging the exceptional edge 79 // Check it has one phi with two operands / two predecessors. 84 // Next we find and check that the phi values come from the expected predecessor. 87 Phi phi = block.getPhis().get(0); local 88 for (Value operand : phi.getOperands()) {
|
/external/llvm/lib/Transforms/Scalar/ |
IndVarSimplify.cpp | 182 /// loop. For PHI nodes, there may be multiple uses, so compute the nearest 186 PHINode *PHI = dyn_cast<PHINode>(User); 187 if (!PHI) 191 for (unsigned i = 0, e = PHI->getNumIncomingValues(); i != e; ++i) { 192 if (PHI->getIncomingValue(i) != Def) 195 BasicBlock *InsertBB = PHI->getIncomingBlock(i); 203 assert(InsertPt && "Missing phi operand"); 262 // If this is not an add of the PHI with a constantfp, or if the constant fp 466 // Collect information about PHI nodes which can be transformed in 516 // Because of LCSSA, these values will only occur in LCSSA PHI Nodes. Sca [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/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...] |
/frameworks/native/services/sensorservice/ |
Fusion.h | 82 mat<mat33_t, 2, 2> Phi;
|
Fusion.cpp | 176 Phi[0][1] = 0; 177 Phi[1][1] = 1; 447 // P(k+1) = Phi(k)*P(k)*Phi(k)' + G*Q(k)*G' 453 // Phi = | Phi00 Phi10 | 482 Phi[0][0] = I33 - wx*(k1*ilwe) + wx2*k0; 483 Phi[1][0] = wx*k0 - I33dT - wx2*(ilwe*ilwe*ilwe)*(lwedT-k1); 490 P = Phi*P*transpose(Phi) + GQGt;
|
/prebuilts/go/darwin-x86/src/cmd/compile/internal/ssa/ |
deadcode.go | 242 // Remove phi args from c's phis. 254 // a Phi with a Copy can in general cause problems because 255 // Phi and Copy don't have exactly the same semantics. 256 // Phi arguments always come from a predecessor block, 258 // 1: x = (Phi y) 261 // If we replace Phi->Copy, we get 265 // (Phi y) refers to the *previous* value of y, whereas 275 // x = (Phi z) 278 // Where opX are not Phi ops. But such a situation
|
/prebuilts/go/linux-x86/src/cmd/compile/internal/ssa/ |
deadcode.go | 242 // Remove phi args from c's phis. 254 // a Phi with a Copy can in general cause problems because 255 // Phi and Copy don't have exactly the same semantics. 256 // Phi arguments always come from a predecessor block, 258 // 1: x = (Phi y) 261 // If we replace Phi->Copy, we get 265 // (Phi y) refers to the *previous* value of y, whereas 275 // x = (Phi z) 278 // Where opX are not Phi ops. But such a situation
|
/external/swiftshader/third_party/LLVM/lib/Transforms/Scalar/ |
IndVarSimplify.cpp | 198 /// loop. For PHI nodes, there may be multiple uses, so compute the nearest 202 PHINode *PHI = dyn_cast<PHINode>(User); 203 if (!PHI) 207 for (unsigned i = 0, e = PHI->getNumIncomingValues(); i != e; ++i) { 208 if (PHI->getIncomingValue(i) != Def) 211 BasicBlock *InsertBB = PHI->getIncomingBlock(i); 219 assert(InsertPt && "Missing phi operand"); 271 // If this is not an add of the PHI with a constantfp, or if the constant fp 449 // Add a new IVUsers entry for the newly-created integer PHI. 502 // Because of LCSSA, these values will only occur in LCSSA PHI Nodes. Sca [all...] |
/external/llvm/lib/Analysis/ |
ScalarEvolutionExpander.cpp | [all...] |
/prebuilts/go/darwin-x86/src/math/ |
const.go | 12 Phi = 1.61803398874989484820458683436563811772030917980576286213544862 // http://oeis.org/A001622
|
/prebuilts/go/linux-x86/src/math/ |
const.go | 12 Phi = 1.61803398874989484820458683436563811772030917980576286213544862 // http://oeis.org/A001622
|
/external/llvm/lib/Target/PowerPC/ |
PPCBoolRetToInt.cpp | 141 const PHINode *Phi = dyn_cast<PHINode>(V); 142 return !Phi || Promotable.count(Phi);
|
/external/llvm/lib/CodeGen/ |
MachinePipeliner.cpp | 49 // represent loop carried dependences in the DAG as order edges to the Phi 121 /// an unrelated Phi. 124 cl::desc("Prune dependences between unrelated Phi nodes."), 291 /// using an anti dependence from a Phi to an instruction. 325 // Instructions that feed a Phi have a distance of 1. Computing larger 410 unsigned PhiNum, MachineInstr *Phi, 540 /// second is true if the register defines a Phi value and loop value is 541 /// scheduled before the Phi. 650 /// The number of stages for a Phi is a little different than other 652 /// because we assume the Phi is needed for at least 1 iteration [all...] |
/external/llvm/lib/Target/Hexagon/ |
HexagonHardwareLoops.cpp | 151 /// R = phi ..., [ R.next, LatchBlock ] 215 /// \brief Return true if the Phi may generate a value that may underflow, 217 bool phiMayWrapOrUnderflow(MachineInstr *Phi, const MachineOperand *EndVal, 253 /// The desired flow is: phi ---> bump -+-> comparison-in-latch. 255 /// +-> back to phi 260 /// phi -+-> bump ---> back to phi 409 MachineInstr *Phi = &*I; 411 // Have a PHI instruction. Get the operand that corresponds to the 413 // where the "reg" is defined by the PHI node we are looking at [all...] |
/external/llvm/lib/Transforms/Vectorize/ |
LoopVectorize.cpp | 352 /// this phi node. 353 void fixFirstOrderRecurrence(PHINode *Phi); 355 /// \brief The Loop exit block may have single value PHI nodes where the 413 /// Create a vector induction phi node based on an existing scalar one. This [all...] |
/external/clang/lib/Analysis/ |
ThreadSafetyCommon.cpp | 61 // Return true if E is a variable that points to an incomplete Phi node. 63 if (const auto *Ph = dyn_cast<til::Phi>(E)) 64 return Ph->status() == til::Phi::PH_Incomplete; 302 if (auto *Ph = dyn_cast<til::Phi>(E)) 666 // Make a Phi node in the current block for the i^th variable in CurrentVarMap. 667 // If E != null, sets Phi[CurrentBlockInfo->ArgIndex] = E. 675 // We already have a Phi node in the current block, 676 // so just add the new variable to the Phi node. 677 til::Phi *Ph = dyn_cast<til::Phi>(CurrE) [all...] |
/external/llvm/lib/Transforms/InstCombine/ |
InstCombinePHI.cpp | 26 /// If we have something like phi [add (a,b), add(a,c)] and if a/b/c and the 27 /// adds all have a single use, turn this into a phi and a single binop. 53 // Keep track of which operand needs a phi node. 58 // If both LHS and RHS would need a PHI, don't do this transformation, 130 // We don't want to replace this phi if the replacement would require 131 // more than one phi, which leads to higher register pressure. This is 157 // Don't merge two GEPs when two operands differ (introducing phi nodes) 169 // If we already needed a PHI for an earlier operand, and another operand 170 // also requires a PHI, we'd be introducing more PHIs than we're 171 // eliminating, which increases register pressure on entry to the PHI' [all...] |
/external/v8/tools/turbolizer/ |
node.js | 30 return this.opcode.endsWith('Phi') || 144 ((this.opcode == "Phi" || this.opcode == "EffectPhi") &&
|
/external/swiftshader/third_party/subzero/src/ |
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...] |