| /xsrc/external/mit/mesa-demos/dist/src/util/ |
| H A D | trackball.h | 81 axis_to_quat(const float a[3], float phi, float q[4]);
|
| /xsrc/external/mit/MesaLib/dist/src/compiler/nir/tests/ |
| H A D | opt_if_tests.cpp | 104 * vec1 32 ssa_3 = phi block_2: ssa_0 124 nir_phi_instr *const phi = nir_phi_instr_create(bld.shader); local in function:TEST_F 126 nir_phi_instr_add_src(phi, then_block, nir_src_for_ssa(one)); 128 nir_ssa_dest_init(&phi->instr, &phi->dest, 131 nir_builder_instr_insert(&bld, &phi->instr); 146 nir_phi_instr *phi = nir_phi_instr_create(bld.shader); local in function:TEST_F 150 nir_ssa_dest_init(&phi->instr, &phi->dest, 153 nir_phi_instr_add_src(phi, [all...] |
| H A D | lower_returns_tests.cpp | 57 nir_phi_instr *phi = nir_phi_instr_create(shader); local in function:create_one_source_phi 59 nir_phi_instr_add_src(phi, pred, nir_src_for_ssa(def)); 61 nir_ssa_dest_init(&phi->instr, &phi->dest, 64 return phi; 89 * vec1 32 ssa_4 = phi block_3: ssa_1 90 * vec1 32 ssa_5 = phi block_3: ssa_1 159 * vec1 32 ssa_4 = phi block_6: ssa_1 160 * vec1 32 ssa_5 = phi block_6: ssa_1
|
| /xsrc/external/mit/MesaLib/dist/src/compiler/nir/ |
| H A D | nir_lower_phis_to_scalar.c | 31 * Implements a pass that lowers vector phi nodes to scalar phi nodes when 42 /* Hash table marking which phi nodes are scalarizable. The key is 43 * pointers to phi instructions and the entry is either NULL for not 50 should_lower_phi(nir_phi_instr *phi, struct lower_phis_to_scalar_state *state); 75 /* A phi is scalarizable if we're going to lower it */ 125 * Determines if the given phi node should be lowered. The only phi nodes 129 * The reason for this comes down to coalescing. Since phi sources can't 131 * before the phi 146 should_lower_phi(nir_phi_instr * phi,struct lower_phis_to_scalar_state * state) argument 210 nir_phi_instr *phi = nir_instr_as_phi(instr); local in function:lower_phis_to_scalar_block [all...] |
| H A D | nir_opt_phi_precision.c | 28 * This pass tries to reduce the bitsize of phi instructions by either 29 * moving narrowing conversions from the phi's consumers to the phi's 30 * sources, if all the uses of the phi are equivalent narrowing 37 * vec1 32 ssa_155 = phi block_0: ssa_124, block_4: ssa_53 50 * vec1 16 ssa_8 = phi block_0: ssa_156, block_4: ssa_157 56 * Or failing that, tries to push widening conversion of phi srcs to 57 * the phi def. In this case, since load_const is frequently one 58 * of the phi sources this pass checks if can be narrowed without a 65 * vec1 32 ssa_8 = phi block_ 195 try_move_narrowing_dst(nir_builder * b,nir_phi_instr * phi) argument 304 find_widening_op(nir_phi_instr * phi,unsigned * bit_size) argument 367 try_move_widening_src(nir_builder * b,nir_phi_instr * phi) argument 439 lower_phi(nir_builder * b,nir_phi_instr * phi) argument [all...] |
| H A D | 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 ha 75 nir_phi_instr *phi = nir_instr_as_phi(instr); local in function:remove_phis_block [all...] |
| H A D | 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 149 * phi nodes. Of course, we couldn't place those phi nodes 157 /* Instead of creating a phi node immediately, we simply set the 158 * value to the magic value NEEDS_PHI. Later, we create phi nodes 216 /* The magic value NEEDS_PHI indicates that the block needs a phi nod 234 nir_phi_instr *phi = nir_phi_instr_create(val->builder->shader); local in function:nir_phi_builder_value_get_block_def 281 nir_phi_instr *phi = exec_node_data(nir_phi_instr, head, instr.node); local in function:nir_phi_builder_finish [all...] |
| H A D | nir_opt_peephole_select.c | 41 * phi 43 * phi 309 nir_phi_instr *phi = nir_instr_as_phi(instr); local in function:nir_opt_collapse_if 311 nir_phi_get_src_from_block(phi, nir_if_first_else_block(if_stmt)); 313 nir_foreach_use (src, &phi->dest.ssa) { 341 nir_phi_instr *phi = nir_instr_as_phi(instr); local in function:nir_opt_collapse_if 343 nir_phi_get_src_from_block(phi, nir_if_first_else_block(if_stmt)); 344 nir_foreach_use_safe(src, &phi->dest.ssa) { 350 nir_src_for_ssa(&phi->dest.ssa)); 431 * statement containing only moves to phi node 456 nir_phi_instr *phi = nir_instr_as_phi(instr); local in function:nir_opt_peephole_select_block [all...] |
| H A D | nir_lower_bit_size.c | 205 lower_phi_instr(nir_builder *b, nir_phi_instr *phi, unsigned bit_size, argument 208 assert(phi->dest.is_ssa); 209 unsigned old_bit_size = phi->dest.ssa.bit_size; 212 nir_foreach_phi_src(src, phi) { 217 nir_instr_rewrite_src(&phi->instr, &src->src, nir_src_for_ssa(new_src)); 220 phi->dest.ssa.bit_size = bit_size; 224 nir_ssa_def *new_dest = nir_u2u(b, &phi->dest.ssa, old_bit_size); 225 nir_ssa_def_rewrite_uses_after(&phi->dest.ssa, new_dest, 239 /* Stash this so we can rewrite phi destinations quickly. */ 295 split_phi(nir_builder *b, nir_phi_instr *phi) argument 343 nir_phi_instr *phi = nir_instr_as_phi(instr); local in function:lower_64bit_phi_impl [all...] |
| H A D | nir_divergence_analysis.c | 753 /* There are 3 types of phi instructions: 759 visit_if_merge_phi(nir_phi_instr *phi, bool if_cond_divergent) argument 761 if (phi->dest.ssa.divergent) 765 nir_foreach_phi_src(src, phi) { 768 phi->dest.ssa.divergent = true; 778 phi->dest.ssa.divergent = true; 785 /* There are 3 types of phi instructions: 792 visit_loop_header_phi(nir_phi_instr *phi, nir_block *preheader, bool divergent_continue) argument 794 if (phi->dest.ssa.divergent) 798 nir_foreach_phi_src(src, phi) { 833 visit_loop_exit_phi(nir_phi_instr * phi,bool divergent_break) argument 905 nir_phi_instr *phi = nir_instr_as_phi(instr); local in function:visit_loop [all...] |
| /xsrc/external/mit/MesaLib.old/dist/src/compiler/nir/ |
| H A D | 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 */ 121 * Determines if the given phi node should be lowered. The only phi nodes 125 * The reason for this comes down to coalescing. Since phi sources can't 127 * before the phi 142 should_lower_phi(nir_phi_instr * phi,struct lower_phis_to_scalar_state * state) argument 203 nir_phi_instr *phi = nir_instr_as_phi(instr); local in function:lower_phis_to_scalar_block [all...] |
| H A D | 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 150 * phi nodes. Of course, we couldn't place those phi nodes 158 /* Instead of creating a phi node immediately, we simply set the 159 * value to the magic value NEEDS_PHI. Later, we create phi nodes 217 /* The magic value NEEDS_PHI indicates that the block needs a phi nod 235 nir_phi_instr *phi = nir_phi_instr_create(val->builder->shader); local in function:nir_phi_builder_value_get_block_def 294 nir_phi_instr *phi = exec_node_data(nir_phi_instr, head, instr.node); local in function:nir_phi_builder_finish [all...] |
| H A D | 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 ha 75 nir_phi_instr *phi = nir_instr_as_phi(instr); local in function:remove_phis_block [all...] |
| H A D | nir_opt_peephole_select.c | 39 * phi 41 * phi 224 * statement containing only moves to phi nodes in this block. We can 225 * just remove that entire CF node and replace all of the phi nodes with 251 nir_phi_instr *phi = nir_instr_as_phi(instr); local in function:nir_opt_peephole_select_block 257 assert(exec_list_length(&phi->srcs) == 2); 258 nir_foreach_phi_src(src, phi) { 267 phi->dest.ssa.num_components, 268 phi->dest.ssa.bit_size, phi [all...] |
| H A D | 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); local in function:convert_loop_exit_for_ssa 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 123 nir_phi_src *phi_src = ralloc(phi, nir_phi_src); 127 exec_list_push_tail(&phi [all...] |
| H A D | nir_move_load_const.c | 58 * Kind of an ugly special-case, but phi instructions 61 * consumed by a phi instruction. We could conceivably 65 nir_phi_instr *phi = nir_instr_as_phi(instr); local in function:get_preferred_block 67 nir_foreach_phi_src(src, phi) 78 /* insert before first non-phi instruction: */ 93 * a block only containing phi's?)
|
| /xsrc/external/mit/MesaLib/dist/src/freedreno/ir3/ |
| H A D | ir3_remove_unreachable.c | 70 foreach_instr (phi, &succ->instr_list) { 71 if (phi->opc != OPC_META_PHI) 75 phi->srcs[pred_idx] = phi->srcs[phi->srcs_count - 1]; 76 phi->srcs_count--;
|
| H A D | ir3_array_to_ssa.c | 27 * the array defined in instr->dsts[0]->def (possibly a phi node), perform the 35 * insert the phi nodes to be able to know when copying should happen. 106 struct ir3_instruction *phi = local in function:read_value_beginning 108 list_del(&phi->node); 109 list_add(&phi->node, &block->instr_list); 111 struct ir3_register *dst = __ssa_dst(phi); 116 state->live_in_definition = phi->dsts[0]; 124 src_reg = __ssa_src(phi, src->instr, flags); 126 src_reg = ir3_src_create(phi, INVALID_REG, flags | IR3_REG_SSA); 131 return phi 135 remove_trivial_phi(struct ir3_instruction * phi) argument [all...] |
| H A D | ir3_merge_regs.c | 28 /* This pass "merges" compatible phi-web SSA values. First, we insert a bunch 31 * single register in order to eliminate copies. First we merge phi nodes, 357 coalesce_phi(struct ir3_liveness *live, struct ir3_instruction *phi) argument 359 for (unsigned i = 0; i < phi->srcs_count; i++) { 360 if (phi->srcs[i]->def) 361 try_merge_defs(live, phi->dsts[0], phi->srcs[i]->def, 0); 408 foreach_instr (phi, &succ->instr_list) { 409 if (phi->opc != OPC_META_PHI) 413 if ((phi [all...] |
| /xsrc/external/mit/MesaLib/dist/src/amd/compiler/ |
| H A D | aco_lower_phis.cpp | 100 /* Return if this was handled in a recursive call by a loop header phi */ 109 /* create phi */ 110 aco_ptr<Pseudo_instruction> phi{ local in function:aco::get_ssa 113 phi->operands[i] = ops[i]; 114 phi->definitions[0] = Definition(op.getTemp()); 115 block.instructions.emplace(block.instructions.begin(), std::move(phi)); 196 init_any_pred_defined(Program* program, ssa_state* state, Block* block, aco_ptr<Instruction>& phi) argument 200 if (phi->operands[i].isUndefined()) 203 if (phi->operands[i].isConstant()) 204 defined = phi 252 lower_divergent_bool_phi(Program * program,ssa_state * state,Block * block,aco_ptr<Instruction> & phi) argument 312 lower_subdword_phis(Program * program,Block * block,aco_ptr<Instruction> & phi) argument [all...] |
| /xsrc/external/mit/MesaLib.old/dist/src/gallium/drivers/r600/sb/ |
| H A D | sb_if_conversion.cpp | 182 for (node_iterator I = r->phi->begin(), E = r->phi->end(); I != E; ++I) { 264 // swap phi operands 265 for (node_iterator I = r->phi->begin(), E = r->phi->end(); I != E; 276 alu_node* if_conversion::convert_phi(value* select, node* phi) { argument 277 assert(phi->dst.size() == 1 || phi->src.size() == 2); 279 value *d = phi->dst[0]; 280 value *v1 = phi [all...] |
| H A D | sb_liveness.cpp | 116 if (n.phi) 117 process_phi_outs(n.phi); 163 if(n.target->phi) 164 process_phi_branch(n.target->phi, n.dep_id); 375 void liveness::process_phi_outs(container_node *phi) { argument 376 for (node_iterator I = phi->begin(), E = phi->end(); I != E; ++I) { 388 void liveness::process_phi_branch(container_node* phi, unsigned id) { argument 390 for (node_iterator I = phi->begin(), E = phi [all...] |
| /xsrc/external/mit/MesaLib/dist/src/gallium/drivers/r600/sb/ |
| H A D | sb_if_conversion.cpp | 182 for (node_iterator I = r->phi->begin(), E = r->phi->end(); I != E; ++I) { 264 // swap phi operands 265 for (node_iterator I = r->phi->begin(), E = r->phi->end(); I != E; 276 alu_node* if_conversion::convert_phi(value* select, node* phi) { argument 277 assert(phi->dst.size() == 1 || phi->src.size() == 2); 279 value *d = phi->dst[0]; 280 value *v1 = phi [all...] |
| H A D | sb_liveness.cpp | 116 if (n.phi) 117 process_phi_outs(n.phi); 163 if(n.target->phi) 164 process_phi_branch(n.target->phi, n.dep_id); 375 void liveness::process_phi_outs(container_node *phi) { argument 376 for (node_iterator I = phi->begin(), E = phi->end(); I != E; ++I) { 388 void liveness::process_phi_branch(container_node* phi, unsigned id) { argument 390 for (node_iterator I = phi->begin(), E = phi [all...] |
| /xsrc/external/mit/x11perf/dist/ |
| H A D | do_complex.c | 44 double phi, phiinc, radius, delta, phi2; local in function:InitComplexPoly 50 phi = 0.0; 76 phi2 = phi + ((double) j) * delta; 85 phi += phiinc; 129 double phi, phiinc, inner_radius, outer_radius, delta, phi2; local in function:InitGeneralPoly 135 phi = 0.0; 148 phi2 = phi; 155 phi += phiinc;
|