/art/test/481-regression-phi-cond/src/ |
Main.java | 26 boolean phi; 28 phi = x; 30 phi = y; 32 return phi; 40 // First create a Phi(x, y). 41 boolean phi = inlinePhi(x, y, z); 42 // Now use the phi as a condition which the boolean simplifier will try to 44 // the original condition (phi) and crash. 45 return dontUseParam(phi == false ? false : true);
|
/external/apache-commons-math/src/main/java/org/apache/commons/math/optimization/fitting/ |
HarmonicFunction.java | 23 /** Harmonic function of the form <code>f (t) = a cos (ω t + φ)</code>. 35 /** Phase φ. */ 36 private final double phi; field in class:HarmonicFunction 41 * @param phi phase 43 public HarmonicFunction(double a, double omega, double phi) { 46 this.phi = phi; 51 return a * FastMath.cos(omega * x + phi); 56 return new HarmonicFunction(a * omega, omega, phi + FastMath.PI / 2); 73 /** Get the phase φ [all...] |
HarmonicFitter.java | 29 * the phase φ: <code>f (t) = a cos (ω t + φ)</code>. They are 40 /** Values for amplitude, pulsation ω and phase φ. */ 56 * pulsation ω (index 1) and phase φ (index 2) 116 final double phi = parameters[2]; local 117 return a * FastMath.cos(omega * x + phi); 124 final double phi = parameters[2]; local 125 final double alpha = omega * x + phi;
|
/dalvik/dx/tests/083-ssa-phi-placement/ |
run | 17 dx --dump --ssa-blocks --ssa-step=phi-placement Blort.class
|
/external/swiftshader/third_party/LLVM/unittests/Transforms/Utils/ |
Local.cpp | 29 PHINode *phi = builder.CreatePHI(Type::getInt32Ty(C), 2); local 35 phi->addIncoming(phi, bb0); 36 phi->addIncoming(phi, bb1); 38 // The PHI will be removed 39 EXPECT_TRUE(RecursivelyDeleteDeadPHINode(phi)); 46 phi = builder.CreatePHI(Type::getInt32Ty(C), 0); 48 EXPECT_TRUE(RecursivelyDeleteDeadPHINode(phi)); 51 phi = builder.CreatePHI(Type::getInt32Ty(C), 0) [all...] |
/external/llvm/unittests/Transforms/Utils/ |
Local.cpp | 29 PHINode *phi = builder.CreatePHI(Type::getInt32Ty(C), 2); local 35 phi->addIncoming(phi, bb0); 36 phi->addIncoming(phi, bb1); 38 // The PHI will be removed 39 EXPECT_TRUE(RecursivelyDeleteDeadPHINode(phi)); 46 phi = builder.CreatePHI(Type::getInt32Ty(C), 0); 48 EXPECT_TRUE(RecursivelyDeleteDeadPHINode(phi)); 51 phi = builder.CreatePHI(Type::getInt32Ty(C), 0) [all...] |
/art/compiler/optimizing/ |
ssa_phi_elimination.cc | 45 // Add to the worklist phis referenced by non-phi instructions. 48 HPhi* phi = inst_it.Current()->AsPhi(); local 49 if (phi->IsDead()) { 53 bool keep_alive = (graph_->IsDebuggable() && phi->HasEnvironmentUses()); 55 for (const HUseListNode<HInstruction*>& use : phi->GetUses()) { 64 worklist.push_back(phi); 66 phi->SetDead(); 68 initially_live.insert(phi); 74 // Process the worklist by propagating liveness to phi inputs. 76 HPhi* phi = worklist.back() local 98 HPhi* phi; local 150 HPhi* phi = worklist.back(); local [all...] |
ssa_builder.cc | 56 // Both type propagation and redundant phi elimination ensure `int_operand` 69 HPhi* phi = it.Current()->AsPhi(); local 70 HPhi* next = phi->GetNextEquivalentPhiWithSameType(); 72 // Make sure we do not replace a live phi with a dead phi. A live phi 73 // has been handled by the type propagation phase, unlike a dead phi. 75 phi->ReplaceWith(next); 76 phi->SetDead(); 78 next->ReplaceWith(phi); 91 HPhi* phi = it_phis.Current()->AsPhi(); local 244 HPhi* phi = phi_it.Current()->AsPhi(); local 256 HPhi* phi = phi_it.Current()->AsPhi(); local 271 HPhi* phi = worklist->back(); local [all...] |
select_generator.cc | 74 // Returns nullptr if `block` has either no phis or there is more than one phi 75 // with different inputs at `index1` and `index2`. Otherwise returns that phi. 81 HPhi* phi = it.Current()->AsPhi(); local 82 if (phi->InputAt(index1) != phi->InputAt(index2)) { 84 // First phi with different inputs for the two indices found. 85 select_phi = phi; 142 HPhi* phi = GetSingleChangedPhi(merge_block, predecessor_index_true, predecessor_index_false); local 149 } else if (phi != nullptr) { 150 true_value = phi->InputAt(predecessor_index_true) [all...] |
select_generator_test.cc | 59 HPhi* phi = new (GetAllocator()) HPhi(GetAllocator(), 0, 0, DataType::Type::kInt32); local 60 return_block_->AddPhi(phi); 61 phi->AddInput(instr); 62 phi->AddInput(const1);
|
/external/mesa3d/src/compiler/nir/ |
nir_lower_phis_to_scalar.c | 31 * Implements a pass that lowers vector phi nodes to scalar phi nodes when 39 /* Hash table marking which phi nodes are scalarizable. The key is 40 * pointers to phi instructions and the entry is either NULL for not 47 should_lower_phi(nir_phi_instr *phi, struct lower_phis_to_scalar_state *state); 74 /* A phi is scalarizable if we're going to lower it */ 110 * Determines if the given phi node should be lowered. The only phi nodes 114 * The reason for this comes down to coalescing. Since phi sources can't 116 * before the phi. The choice then becomes between movs to pick of 187 nir_phi_instr *phi = nir_instr_as_phi(instr); local [all...] |
nir_opt_peephole_select.c | 39 * phi 41 * phi 179 * statement containing only moves to phi nodes in this block. We can 180 * just remove that entire CF node and replace all of the phi nodes with 206 nir_phi_instr *phi = nir_instr_as_phi(instr); local 212 assert(exec_list_length(&phi->srcs) == 2); 213 nir_foreach_phi_src(src, phi) { 222 phi->dest.ssa.num_components, 223 phi->dest.ssa.bit_size, phi->dest.ssa.name) [all...] |
nir_opt_remove_phis.c | 52 * This is a pass for removing phi nodes that look like: 53 * a = phi(b, b, b, ...) 58 * phi node's predecessors, which means it must dominate the phi node as well 59 * as all of the phi node's uses. In essence, the phi node acts as a copy 60 * instruction. b can't be another phi node in the same block, since the only 61 * time when phi nodes can source other phi nodes defined in the same block is 62 * at the loop header, and in that case one of the sources of the phi has t 75 nir_phi_instr *phi = nir_instr_as_phi(instr); local [all...] |
nir_phi_builder.c | 40 /* Worklist for phi adding */ 57 /* The list of phi nodes associated with this value. Phi nodes are not 71 * - NEEDS_PHI. Indicates that the block may need a phi node but none has 72 * been created yet. If a def is requested for a block, a phi will need 75 * - A regular SSA def. This will be either the result of a phi node or 139 * phi nodes. Of course, we couldn't place those phi nodes 147 /* Instead of creating a phi node immediately, we simply set the 148 * value to the magic value NEEDS_PHI. Later, we create phi node 214 nir_phi_instr *phi = nir_phi_instr_create(val->builder->shader); local 268 nir_phi_instr *phi = exec_node_data(nir_phi_instr, head, instr.node); local [all...] |
nir_to_lcssa.c | 26 * done by placing phi nodes at the exits of the loop for all values 35 * ssa6 = ssa2 + 4 -> ssa5 = phi(ssa2) 114 /* Initialize a phi-instruction */ 115 nir_phi_instr *phi = nir_phi_instr_create(state->shader); 116 nir_ssa_dest_init(&phi->instr, &phi->dest, 117 def->num_components, def->bit_size, "LCSSA-phi"); 119 /* Create a phi node with as many sources pointing to the same ssa_def as 124 nir_phi_src *phi_src = ralloc(phi, nir_phi_src); 128 exec_list_push_tail(&phi->srcs, &phi_src->node) [all...] |
/external/deqp-deps/SPIRV-Tools/source/opt/ |
if_conversion.h | 47 // |phi|. 48 BasicBlock* GetIncomingBlock(Instruction* phi, uint32_t predecessor); 50 // Returns the instruction defining the |predecessor|'th index of |phi|. 51 Instruction* GetIncomingValue(Instruction* phi, uint32_t predecessor); 61 // Returns true if none of |phi|'s users are in |block|. 62 bool CheckPhiUsers(Instruction* phi, BasicBlock* block);
|
if_conversion.cpp | 51 dominators, &block, &vn_table](Instruction* phi) { 52 // This phi is not compatible, but subsequent phis might be. 53 if (!CheckType(phi->type_id())) return; 55 // We cannot transform cases where the phi is used by another phi in the 58 // transformed, we could still remove this phi. 59 if (!CheckPhiUsers(phi, &block)) return; 65 BasicBlock* inc0 = GetIncomingBlock(phi, 0u); 73 true_value = GetIncomingValue(phi, 0u); 74 false_value = GetIncomingValue(phi, 1u) [all...] |
/external/v8/src/compiler/ |
loop-variable-optimizer.cc | 80 StdoutStream{} << "New upper bound for " << phi()->id() << " (loop " 81 << NodeProperties::GetControlInput(phi())->id() 90 StdoutStream{} << "New lower bound for " << phi()->id() << " (loop " 91 << NodeProperties::GetControlInput(phi())->id() 221 InductionVariable* LoopVariableOptimizer::TryGetInductionVariable(Node* phi) { 222 DCHECK_EQ(2, phi->op()->ValueInputCount()); 223 Node* loop = NodeProperties::GetControlInput(phi); 225 Node* initial = phi->InputAt(0); 226 Node* arith = phi->InputAt(1); 247 if (input != phi) return nullptr 269 Node* phi = edge.from(); local [all...] |
/external/swiftshader/third_party/SPIRV-Tools/source/opt/ |
if_conversion.cpp | 51 dominators, &block, &vn_table](Instruction* phi) { 52 // This phi is not compatible, but subsequent phis might be. 53 if (!CheckType(phi->type_id())) return; 55 // We cannot transform cases where the phi is used by another phi in the 58 // transformed, we could still remove this phi. 59 if (!CheckPhiUsers(phi, &block)) return; 65 BasicBlock* inc0 = GetIncomingBlock(phi, 0u); 73 true_value = GetIncomingValue(phi, 0u); 74 false_value = GetIncomingValue(phi, 1u) [all...] |
if_conversion.h | 48 // |phi|. 49 BasicBlock* GetIncomingBlock(Instruction* phi, uint32_t predecessor); 51 // Returns the instruction defining the |predecessor|'th index of |phi|. 52 Instruction* GetIncomingValue(Instruction* phi, uint32_t predecessor); 62 // Returns true if none of |phi|'s users are in |block|. 63 bool CheckPhiUsers(Instruction* phi, BasicBlock* block);
|
/external/swiftshader/third_party/LLVM/lib/CodeGen/ |
UnreachableBlockElim.cpp | 175 // Cleanup PHI nodes. 178 // Prune unneeded PHI entries. 181 MachineBasicBlock::iterator phi = BB->begin(); local 182 while (phi != BB->end() && phi->isPHI()) { 183 for (unsigned i = phi->getNumOperands() - 1; i >= 2; i-=2) 184 if (!preds.count(phi->getOperand(i).getMBB())) { 185 phi->RemoveOperand(i); 186 phi->RemoveOperand(i-1); 190 if (phi->getNumOperands() == 3) [all...] |
/external/swiftshader/third_party/llvm-7.0/llvm/lib/CodeGen/ |
UnreachableBlockElim.cpp | 183 // Cleanup PHI nodes. 186 // Prune unneeded PHI entries. 189 MachineBasicBlock::iterator phi = BB->begin(); local 190 while (phi != BB->end() && phi->isPHI()) { 191 for (unsigned i = phi->getNumOperands() - 1; i >= 2; i-=2) 192 if (!preds.count(phi->getOperand(i).getMBB())) { 193 phi->RemoveOperand(i); 194 phi->RemoveOperand(i-1); 198 if (phi->getNumOperands() == 3) [all...] |
/external/deqp-deps/SPIRV-Tools/source/val/ |
validate_id.cpp | 109 for (const Instruction* phi : phi_instructions) { 110 if (phi->block()->reachable() == false) continue; 111 for (size_t i = 3; i < phi->operands().size(); i += 2) { 112 const Instruction* variable = _.FindDef(phi->word(i)); 114 phi->function()->GetBlock(phi->word(i + 1)).first; 117 return _.diag(SPV_ERROR_INVALID_ID, phi) 118 << "In OpPhi instruction " << _.getIdName(phi->id()) << ", ID "
|
/external/llvm/lib/CodeGen/ |
UnreachableBlockElim.cpp | 182 // Cleanup PHI nodes. 185 // Prune unneeded PHI entries. 188 MachineBasicBlock::iterator phi = BB->begin(); local 189 while (phi != BB->end() && phi->isPHI()) { 190 for (unsigned i = phi->getNumOperands() - 1; i >= 2; i-=2) 191 if (!preds.count(phi->getOperand(i).getMBB())) { 192 phi->RemoveOperand(i); 193 phi->RemoveOperand(i-1); 197 if (phi->getNumOperands() == 3) [all...] |
/external/pdfium/core/fxcrt/ |
cfx_decimal.cpp | 28 inline uint8_t decimal_helper_div10(uint64_t& phi, 32 pmid += FXMATH_DECIMAL_LSHIFT32BIT(phi % 0xA); 33 phi /= 0xA; 54 inline void decimal_helper_mul10(uint64_t& phi, uint64_t& pmid, uint64_t& plo) { 58 phi = phi * 0xA + FXMATH_DECIMAL_RSHIFT32BIT(pmid); 70 inline void decimal_helper_normalize(uint64_t& phi, 73 phi += FXMATH_DECIMAL_RSHIFT32BIT(pmid); 77 phi += FXMATH_DECIMAL_RSHIFT32BIT(pmid); 222 inline void decimal_helper_truncate(uint64_t& phi, 275 uint64_t phi; local 335 uint64_t phi = m_uHi; local 370 uint64_t phi = m_uHi; local 382 uint64_t phi; local [all...] |