/third_party/mesa3d/src/compiler/glsl/ |
H A D | ir_validate.cpp | 31 * in the ir tree. ir_variable does appear multiple times: Once as a 36 #include "ir.h" 64 virtual ir_visitor_status visit(ir_dereference_variable *ir); 66 virtual ir_visitor_status visit_enter(ir_discard *ir); 67 virtual ir_visitor_status visit_enter(ir_if *ir); 69 virtual ir_visitor_status visit_enter(ir_function *ir); 70 virtual ir_visitor_status visit_leave(ir_function *ir); 71 virtual ir_visitor_status visit_enter(ir_function_signature *ir); 72 virtual ir_visitor_status visit_enter(ir_return *ir); 74 virtual ir_visitor_status visit_leave(ir_expression *ir); 93 visit(ir_dereference_variable *ir) visit() argument 124 visit_enter(class ir_dereference_array *ir) visit_enter() argument 167 visit_enter(class ir_dereference_record *ir) visit_enter() argument 189 visit_enter(ir_discard *ir) visit_enter() argument 203 visit_enter(ir_if *ir) visit_enter() argument 218 visit_enter(ir_function *ir) visit_enter() argument 254 visit_leave(ir_function *ir) visit_leave() argument 263 visit_enter(ir_function_signature *ir) visit_enter() argument 287 visit_enter(ir_return *ir) visit_enter() argument 298 visit_leave(ir_expression *ir) visit_leave() argument 993 visit_leave(ir_swizzle *ir) visit_leave() argument 1010 visit(ir_variable *ir) visit() argument 1080 visit_enter(ir_assignment *ir) visit_enter() argument 1121 visit_enter(ir_call *ir) visit_enter() argument 1182 validate_ir(ir_instruction *ir, void *data) validate_ir() argument 1196 check_node_type(ir_instruction *ir, void *data) check_node_type() argument [all...] |
H A D | ir_rvalue_visitor.cpp | 32 #include "ir.h" 38 ir_rvalue_base_visitor::rvalue_visit(ir_expression *ir) in rvalue_visit() argument 42 for (operand = 0; operand < ir->num_operands; operand++) { in rvalue_visit() 43 handle_rvalue(&ir->operands[operand]); in rvalue_visit() 50 ir_rvalue_base_visitor::rvalue_visit(ir_texture *ir) in rvalue_visit() argument 52 handle_rvalue(&ir->coordinate); in rvalue_visit() 53 handle_rvalue(&ir->projector); in rvalue_visit() 54 handle_rvalue(&ir->shadow_comparator); in rvalue_visit() 55 handle_rvalue(&ir->offset); in rvalue_visit() 56 handle_rvalue(&ir in rvalue_visit() 89 rvalue_visit(ir_swizzle *ir) rvalue_visit() argument 96 rvalue_visit(ir_dereference_array *ir) rvalue_visit() argument 111 rvalue_visit(ir_dereference_record *ir) rvalue_visit() argument 118 rvalue_visit(ir_assignment *ir) rvalue_visit() argument 125 rvalue_visit(ir_call *ir) rvalue_visit() argument 139 rvalue_visit(ir_discard *ir) rvalue_visit() argument 146 rvalue_visit(ir_return *ir) rvalue_visit() argument 153 rvalue_visit(ir_if *ir) rvalue_visit() argument 160 rvalue_visit(ir_emit_vertex *ir) rvalue_visit() argument 167 rvalue_visit(ir_end_primitive *ir) rvalue_visit() argument 174 visit_leave(ir_expression *ir) visit_leave() argument 180 visit_leave(ir_texture *ir) visit_leave() argument 186 visit_leave(ir_swizzle *ir) visit_leave() argument 192 visit_leave(ir_dereference_array *ir) visit_leave() argument 198 visit_leave(ir_dereference_record *ir) visit_leave() argument 204 visit_leave(ir_assignment *ir) visit_leave() argument 210 visit_leave(ir_call *ir) visit_leave() argument 216 visit_leave(ir_discard *ir) visit_leave() argument 222 visit_leave(ir_return *ir) visit_leave() argument 228 visit_leave(ir_if *ir) visit_leave() argument 234 visit_leave(ir_emit_vertex *ir) visit_leave() argument 240 visit_leave(ir_end_primitive *ir) visit_leave() argument 246 visit_enter(ir_expression *ir) visit_enter() argument 252 visit_enter(ir_texture *ir) visit_enter() argument 258 visit_enter(ir_swizzle *ir) visit_enter() argument 264 visit_enter(ir_dereference_array *ir) visit_enter() argument 270 visit_enter(ir_dereference_record *ir) visit_enter() argument 276 visit_enter(ir_assignment *ir) visit_enter() argument 282 visit_enter(ir_call *ir) visit_enter() argument 288 visit_enter(ir_discard *ir) visit_enter() argument 294 visit_enter(ir_return *ir) visit_enter() argument 300 visit_enter(ir_if *ir) visit_enter() argument 306 visit_enter(ir_emit_vertex *ir) visit_enter() argument 312 visit_enter(ir_end_primitive *ir) visit_enter() argument [all...] |
H A D | lower_instructions.cpp | 73 #include "ir.h" 113 void reverse_to_shifts(ir_expression *ir); 114 void find_lsb_to_float_cast(ir_expression *ir); 115 void find_msb_to_float_cast(ir_expression *ir); 116 void imul_high_to_mul(ir_expression *ir); 117 void sqrt_to_abs_sqrt(ir_expression *ir); 144 lower_instructions_visitor::sub_to_add_neg(ir_expression *ir) in sub_to_add_neg() argument 146 ir->operation = ir_binop_add; in sub_to_add_neg() 147 ir->init_num_operands(); in sub_to_add_neg() 148 ir in sub_to_add_neg() 154 ldexp_to_arith(ir_expression *ir) ldexp_to_arith() argument 328 dldexp_to_arith(ir_expression *ir) dldexp_to_arith() argument 458 dfrexp_sig_to_arith(ir_expression *ir) dfrexp_sig_to_arith() argument 531 dfrexp_exp_to_arith(ir_expression *ir) dfrexp_exp_to_arith() argument 584 carry_to_arith(ir_expression *ir) carry_to_arith() argument 604 borrow_to_arith(ir_expression *ir) borrow_to_arith() argument 622 double_dot_to_fma(ir_expression *ir) double_dot_to_fma() argument 653 double_lrp(ir_expression *ir) double_lrp() argument 678 dceil_to_dfrac(ir_expression *ir) dceil_to_dfrac() argument 703 dfloor_to_dfrac(ir_expression *ir) dfloor_to_dfrac() argument 716 dround_even_to_dfrac(ir_expression *ir) dround_even_to_dfrac() argument 763 dtrunc_to_dfrac(ir_expression *ir) dtrunc_to_dfrac() argument 798 dsign_to_csel(ir_expression *ir) dsign_to_csel() argument 822 bit_count_to_math(ir_expression *ir) bit_count_to_math() argument 869 extract_to_shifts(ir_expression *ir) extract_to_shifts() argument 945 insert_to_shifts(ir_expression *ir) insert_to_shifts() argument 1012 reverse_to_shifts(ir_expression *ir) reverse_to_shifts() argument 1100 find_lsb_to_float_cast(ir_expression *ir) find_lsb_to_float_cast() argument 1181 find_msb_to_float_cast(ir_expression *ir) find_msb_to_float_cast() argument 1292 imul_high_to_mul(ir_expression *ir) imul_high_to_mul() argument 1437 sqrt_to_abs_sqrt(ir_expression *ir) sqrt_to_abs_sqrt() argument 1444 visit_leave(ir_expression *ir) visit_leave() argument [all...] |
H A D | ir_print_visitor.cpp | 71 foreach_in_list(ir_instruction, ir, instructions) { in _mesa_print_ir() 72 ir->fprint(f); in _mesa_print_ir() 73 if (ir->ir_type != ir_type_function) in _mesa_print_ir() 82 const ir_instruction *ir = (const ir_instruction *)instruction; in fprint_ir() local 83 ir->fprint(f); in fprint_ir() 149 void ir_print_visitor::visit(ir_variable *ir) in visit() argument 154 if (ir->data.binding) in visit() 155 snprintf(binding, sizeof(binding), "binding=%i ", ir->data.binding); in visit() 158 if (ir->data.location != -1) in visit() 159 snprintf(loc, sizeof(loc), "location=%i ", ir in visit() 228 visit(ir_function_signature *ir) visit() argument 269 visit(ir_function *ir) visit() argument 284 visit(ir_expression *ir) visit() argument 300 visit(ir_texture *ir) visit() argument 397 visit(ir_swizzle *ir) visit() argument 416 visit(ir_dereference_variable *ir) visit() argument 423 visit(ir_dereference_array *ir) visit() argument 432 visit(ir_dereference_record *ir) visit() argument 443 visit(ir_assignment *ir) visit() argument 482 visit(ir_constant *ir) visit() argument 540 visit(ir_call *ir) visit() argument 554 visit(ir_return *ir) visit() argument 569 visit(ir_discard *ir) visit() argument 583 visit(ir_demote *ir) visit() argument 590 visit(ir_if *ir) visit() argument 628 visit(ir_loop *ir) visit() argument 645 visit(ir_loop_jump *ir) visit() argument 651 visit(ir_emit_vertex *ir) visit() argument 659 visit(ir_end_primitive *ir) visit() argument [all...] |
H A D | ir_hierarchical_visitor.cpp | 24 #include "ir.h" 38 ir_hierarchical_visitor::visit(ir_rvalue *ir) in visit() argument 40 call_enter_leave_callbacks(ir); in visit() 46 ir_hierarchical_visitor::visit(ir_variable *ir) in visit() argument 48 call_enter_leave_callbacks(ir); in visit() 54 ir_hierarchical_visitor::visit(ir_constant *ir) in visit() argument 56 call_enter_leave_callbacks(ir); in visit() 62 ir_hierarchical_visitor::visit(ir_loop_jump *ir) in visit() argument 64 call_enter_leave_callbacks(ir); in visit() 70 ir_hierarchical_visitor::visit(ir_dereference_variable *ir) in visit() argument 78 visit(ir_barrier *ir) visit() argument 86 visit_enter(ir_loop *ir) visit_enter() argument 95 visit_leave(ir_loop *ir) visit_leave() argument 104 visit_enter(ir_function_signature *ir) visit_enter() argument 113 visit_leave(ir_function_signature *ir) visit_leave() argument 122 visit_enter(ir_function *ir) visit_enter() argument 131 visit_leave(ir_function *ir) visit_leave() argument 140 visit_enter(ir_expression *ir) visit_enter() argument 149 visit_leave(ir_expression *ir) visit_leave() argument 158 visit_enter(ir_texture *ir) visit_enter() argument 167 visit_leave(ir_texture *ir) visit_leave() argument 176 visit_enter(ir_swizzle *ir) visit_enter() argument 185 visit_leave(ir_swizzle *ir) visit_leave() argument 194 visit_enter(ir_dereference_array *ir) visit_enter() argument 203 visit_leave(ir_dereference_array *ir) visit_leave() argument 212 visit_enter(ir_dereference_record *ir) visit_enter() argument 221 visit_leave(ir_dereference_record *ir) visit_leave() argument 230 visit_enter(ir_assignment *ir) visit_enter() argument 239 visit_leave(ir_assignment *ir) visit_leave() argument 248 visit_enter(ir_call *ir) visit_enter() argument 257 visit_leave(ir_call *ir) visit_leave() argument 266 visit_enter(ir_return *ir) visit_enter() argument 275 visit_leave(ir_return *ir) visit_leave() argument 284 visit_enter(ir_discard *ir) visit_enter() argument 293 visit_leave(ir_discard *ir) visit_leave() argument 302 visit_enter(ir_demote *ir) visit_enter() argument 311 visit_leave(ir_demote *ir) visit_leave() argument 320 visit_enter(ir_if *ir) visit_enter() argument 329 visit_leave(ir_if *ir) visit_leave() argument 338 visit_enter(ir_emit_vertex *ir) visit_enter() argument 347 visit_leave(ir_emit_vertex *ir) visit_leave() argument 356 visit_enter(ir_end_primitive *ir) visit_enter() argument 365 visit_leave(ir_end_primitive *ir) visit_leave() argument 380 call_enter_leave_callbacks(class ir_instruction *ir) call_enter_leave_callbacks() argument 389 visit_tree(ir_instruction *ir, void (*callback_enter)(class ir_instruction *ir, void *data), void *data_enter, void (*callback_leave)(class ir_instruction *ir, void *data), void *data_leave) visit_tree() argument [all...] |
H A D | ir_builder_print_visitor.cpp | 25 #include "ir.h" 63 virtual ir_visitor_status visit_enter(ir_texture *ir); 69 void print_without_declaration(const ir_rvalue *ir); 70 void print_without_declaration(const ir_constant *ir); 71 void print_without_declaration(const ir_dereference_variable *ir); 72 void print_without_declaration(const ir_swizzle *ir); 73 void print_without_declaration(const ir_expression *ir); 91 is_simple_operand(const ir_rvalue *ir, unsigned depth = 1) in is_simple_operand() argument 96 switch (ir->ir_type) { in is_simple_operand() 101 if (ir in is_simple_operand() 183 print_without_declaration(const ir_rvalue *ir) print_without_declaration() argument 204 visit(ir_variable *ir) visit() argument 257 print_without_declaration(const ir_dereference_variable *ir) print_without_declaration() argument 266 visit(ir_dereference_variable *ir) visit() argument 278 visit_enter(ir_function_signature *ir) visit_enter() argument 302 visit_leave(ir_function_signature *ir) visit_leave() argument 314 print_without_declaration(const ir_constant *ir) print_without_declaration() argument 346 visit(ir_constant *ir) visit() argument 437 print_without_declaration(const ir_swizzle *ir) print_without_declaration() argument 470 visit_leave(ir_swizzle *ir) visit_leave() argument 484 visit_enter(ir_assignment *ir) visit_enter() argument 522 visit_leave(ir_assignment *ir) visit_leave() argument 541 print_without_declaration(const ir_expression *ir) print_without_declaration() argument 595 visit_enter(ir_expression *ir) visit_enter() argument 618 visit_enter(ir_if *ir) visit_enter() argument 676 visit_leave(ir_return *ir) visit_leave() argument 688 visit_enter(ir_texture *ir) visit_enter() argument 696 visit_leave(ir_call *ir) visit_leave() argument 733 visit_enter(ir_loop *ir) visit_enter() argument 753 visit_leave(ir_loop *ir) visit_leave() argument 770 visit(ir_loop_jump *ir) visit() argument [all...] |
H A D | opt_algebraic.cpp | 31 #include "ir.h" 62 virtual ir_visitor_status visit_enter(ir_assignment *ir); 64 ir_rvalue *handle_expression(ir_expression *ir); 87 ir_algebraic_visitor::visit_enter(ir_assignment *ir) in visit_enter() argument 89 ir_variable *var = ir->lhs->variable_referenced(); in visit_enter() 104 is_vec_zero(ir_constant *ir) in is_vec_zero() argument 106 return (ir == NULL) ? false : ir->is_zero(); in is_vec_zero() 110 is_vec_one(ir_constant *ir) in is_vec_one() argument 112 return (ir in is_vec_one() 116 is_vec_two(ir_constant *ir) is_vec_two() argument 122 is_vec_four(ir_constant *ir) is_vec_four() argument 128 is_vec_negative_one(ir_constant *ir) is_vec_negative_one() argument 134 is_valid_vec_const(ir_constant *ir) is_valid_vec_const() argument 146 is_less_than_one(ir_constant *ir) is_less_than_one() argument 163 is_greater_than_zero(ir_constant *ir) is_greater_than_zero() argument 180 update_type(ir_expression *ir) update_type() argument 315 handle_expression(ir_expression *ir) handle_expression() argument [all...] |
H A D | opt_dead_code_local.cpp | 36 #include "ir.h" 51 assignment_entry(ir_variable *lhs, ir_assignment *ir) in assignment_entry() argument 54 assert(ir); in assignment_entry() 56 this->ir = ir; in assignment_entry() 57 this->unused = ir->write_mask; in assignment_entry() 61 ir_assignment *ir; member in __anon7207::assignment_entry 96 virtual ir_visitor_status visit(ir_dereference_variable *ir) in visit() argument 98 use_channels(ir->var, ~0); in visit() 103 virtual ir_visitor_status visit(ir_swizzle *ir) in visit() argument 150 visit_enter(class ir_dereference_array *ir) visit_enter() argument 156 run(ir_instruction *ir, ir_hierarchical_visitor *v) run() argument 172 process_assignment(void *lin_ctx, ir_assignment *ir, exec_list *assignments) process_assignment() argument 306 ir_instruction *ir, *ir_next; dead_code_local_basic_block() local [all...] |
H A D | lower_jumps.cpp | 61 #include "ir.h" 280 void truncate_after_instruction(exec_node *ir) in truncate_after_instruction() 282 if (!ir) in truncate_after_instruction() 285 while (!ir->get_next()->is_tail_sentinel()) { in truncate_after_instruction() 286 ((ir_instruction *)ir->get_next())->remove(); in truncate_after_instruction() 291 void move_outer_block_inside(ir_instruction *ir, exec_list *inner_block) in move_outer_block_inside() 293 while (!ir->get_next()->is_tail_sentinel()) { in move_outer_block_inside() 294 ir_instruction *move_ir = (ir_instruction *)ir->get_next(); in move_outer_block_inside() 305 void insert_lowered_return(ir_return *ir) in insert_lowered_return() 310 ir in insert_lowered_return() [all...] |
H A D | lower_precision.cpp | 31 #include "ir.h" 48 virtual ir_visitor_status visit_enter(ir_call *ir); 109 static void stack_enter(class ir_instruction *ir, void *data); 110 static void stack_leave(class ir_instruction *ir, void *data); 112 virtual ir_visitor_status visit(ir_constant *ir); 113 virtual ir_visitor_status visit(ir_dereference_variable *ir); 115 virtual ir_visitor_status visit_enter(ir_dereference_record *ir); 116 virtual ir_visitor_status visit_enter(ir_dereference_array *ir); 117 virtual ir_visitor_status visit_enter(ir_texture *ir); 118 virtual ir_visitor_status visit_enter(ir_expression *ir); 191 stack_enter(class ir_instruction *ir, void *data) stack_enter() argument 278 stack_leave(class ir_instruction *ir, void *data) stack_leave() argument 329 visit(ir_constant *ir) visit() argument 342 visit(ir_dereference_variable *ir) visit() argument 355 visit_enter(ir_dereference_record *ir) visit_enter() argument 366 visit_enter(ir_dereference_array *ir) visit_enter() argument 377 visit_enter(ir_texture *ir) visit_enter() argument 390 visit_enter(ir_expression *ir) visit_enter() argument 423 handle_call(ir_call *ir, const struct set *lowerable_rvalues) handle_call() argument 566 visit_leave(ir_call *ir) visit_leave() argument 603 visit_leave(ir_assignment *ir) visit_leave() argument 699 convert_precision(bool up, ir_rvalue *ir) convert_precision() argument 743 ir_rvalue *ir = *rvalue; handle_rvalue() local 778 visit_enter(ir_dereference_record *ir) visit_enter() argument 785 visit_enter(ir_dereference_array *ir) visit_enter() argument 794 visit_enter(ir_call *ir) visit_enter() argument 802 visit_enter(ir_texture *ir) visit_enter() argument 810 visit_leave(ir_expression *ir) visit_leave() argument 876 visit_enter(ir_call *ir) visit_enter() argument 1002 lower_constant(ir_constant *ir) lower_constant() argument 1073 fix_types_in_deref_chain(ir_dereference *ir) fix_types_in_deref_chain() argument 1124 visit_enter(ir_assignment *ir) visit_enter() argument 1205 visit_enter(ir_return *ir) visit_enter() argument 1237 ir_rvalue *ir = *rvalue; handle_rvalue() local 1293 visit_enter(ir_call *ir) visit_enter() argument [all...] |
H A D | lower_tess_level.cpp | 50 #include "ir.h" 66 bool is_tess_level_array(ir_rvalue *ir); 67 ir_rvalue *lower_tess_level_array(ir_rvalue *ir); 69 void visit_new_assignment(ir_assignment *ir); 103 lower_tess_level_visitor::visit(ir_variable *ir) in visit() argument 105 if ((!ir->name) || in visit() 106 ((strcmp(ir->name, "gl_TessLevelInner") != 0) && in visit() 107 (strcmp(ir->name, "gl_TessLevelOuter") != 0))) in visit() 110 assert (ir->type->is_array()); in visit() 112 if (strcmp(ir in visit() 165 is_tess_level_array(ir_rvalue *ir) is_tess_level_array() argument 194 lower_tess_level_array(ir_rvalue *ir) lower_tess_level_array() argument 250 fix_lhs(ir_assignment *ir) fix_lhs() argument 296 visit_leave(ir_assignment *ir) visit_leave() argument 366 visit_new_assignment(ir_assignment *ir) visit_new_assignment() argument 383 visit_leave(ir_call *ir) visit_leave() argument [all...] |
H A D | opt_tree_grafting.cpp | 50 #include "ir.h" 81 ir_visitor_status check_graft(ir_instruction *ir, ir_variable *var); 96 dereferences_variable_callback(ir_instruction *ir, void *data) in dereferences_variable_callback() argument 99 ir_dereference_variable *deref = ir->as_dereference_variable(); in dereferences_variable_callback() 106 dereferences_variable(ir_instruction *ir, ir_variable *var) in dereferences_variable() argument 113 visit_tree(ir, dereferences_variable_callback, &info); in dereferences_variable() 146 ir_tree_grafting_visitor::visit_enter(ir_loop *ir) in visit_enter() argument 148 (void)ir; in visit_enter() 159 * \param ir An instruction that writes to a variable. 163 ir_tree_grafting_visitor::check_graft(ir_instruction *ir, ir_variabl argument 178 visit_leave(ir_assignment *ir) visit_leave() argument 190 visit_enter(ir_function *ir) visit_enter() argument 197 visit_enter(ir_function_signature *ir) visit_enter() argument 204 visit_enter(ir_call *ir) visit_enter() argument 209 ir_rvalue *ir = (ir_rvalue *) actual_node; visit_enter() local 232 visit_enter(ir_expression *ir) visit_enter() argument 243 visit_enter(ir_if *ir) visit_enter() argument 255 visit_enter(ir_swizzle *ir) visit_enter() argument 264 visit_enter(ir_texture *ir) visit_enter() argument 350 ir_instruction *ir, *next; tree_grafting_basic_block() local [all...] |
H A D | glsl_to_nir.cpp | 32 #include "ir.h" 83 void create_function(ir_function_signature *ir); 90 nir_ssa_def *evaluate_rvalue(ir_rvalue *ir); 106 nir_deref_instr *evaluate_deref(ir_instruction *ir); 108 nir_constant *constant_copy(ir_constant *ir, void *mem_ctx); 160 virtual ir_visitor_status visit_enter(ir_function_signature *ir) in visit_enter() argument 163 if (ir->is_intrinsic()) in visit_enter() 166 foreach_in_list(ir_variable, param, &ir->parameters) { in visit_enter() 178 if (!glsl_type_is_vector_or_scalar(ir->return_type) && in visit_enter() 179 !ir in visit_enter() 194 has_unsupported_function_param(exec_list *ir) has_unsupported_function_param() argument 310 evaluate_deref(ir_instruction *ir) evaluate_deref() argument 317 constant_copy(ir_constant *ir, void *mem_ctx) constant_copy() argument 492 visit(ir_variable *ir) visit() argument 724 visit_enter(ir_function *ir) visit_enter() argument 733 create_function(ir_function_signature *ir) create_function() argument 774 visit(ir_function *ir) visit() argument 781 visit(ir_function_signature *ir) visit() argument 826 visit(ir_loop *ir) visit() argument 834 visit(ir_if *ir) visit() argument 844 visit(ir_discard *ir) visit() argument 860 visit(ir_demote *ir) visit() argument 866 visit(ir_emit_vertex *ir) visit() argument 872 visit(ir_end_primitive *ir) visit() argument 878 visit(ir_loop_jump *ir) visit() argument 897 visit(ir_return *ir) visit() argument 960 visit(ir_call *ir) visit() argument 1723 visit(ir_assignment *ir) visit() argument 1835 evaluate_rvalue(ir_rvalue* ir) evaluate_rvalue() argument 1869 visit(ir_expression *ir) visit() argument 2391 visit(ir_swizzle *ir) visit() argument 2399 visit(ir_texture *ir) visit() argument 2620 visit(ir_constant *ir) visit() argument 2637 visit(ir_dereference_variable *ir) visit() argument 2665 visit(ir_dereference_record *ir) visit() argument 2702 visit(ir_dereference_array *ir) visit() argument [all...] |
H A D | lower_distance.cpp | 51 #include "ir.h" 89 bool is_distance_vec8(ir_rvalue *ir); 90 ir_rvalue *lower_distance_vec8(ir_rvalue *ir); 92 void visit_new_assignment(ir_assignment *ir); 138 lower_distance_visitor::visit(ir_variable *ir) in visit() argument 143 if (!ir->name || strcmp(ir->name, in_name) != 0) in visit() 145 assert (ir->type->is_array()); in visit() 147 if (ir->data.mode == ir_var_shader_out) { in visit() 152 } else if (ir in visit() 291 is_distance_vec8(ir_rvalue *ir) is_distance_vec8() argument 331 lower_distance_vec8(ir_rvalue *ir) lower_distance_vec8() argument 399 fix_lhs(ir_assignment *ir) fix_lhs() argument 437 visit_leave(ir_assignment *ir) visit_leave() argument 507 visit_new_assignment(ir_assignment *ir) visit_new_assignment() argument 530 visit_leave(ir_call *ir) visit_leave() argument 613 visit(ir_variable *ir) visit() argument [all...] |
H A D | lower_vec_index_to_cond_assign.cpp | 39 #include "ir.h" 62 ir_rvalue *convert_vector_extract_to_cond_assign(ir_rvalue *ir); 77 ir_vec_index_to_cond_assign_visitor::convert_vector_extract_to_cond_assign(ir_rvalue *ir) in convert_vector_extract_to_cond_assign() argument 79 ir_expression *const expr = ir->as_expression(); in convert_vector_extract_to_cond_assign() 82 return ir; in convert_vector_extract_to_cond_assign() 97 return ir; in convert_vector_extract_to_cond_assign() 105 return new(base_ir) ir_expression(ir_binop_vector_extract, ir->type, in convert_vector_extract_to_cond_assign() 110 return ir; in convert_vector_extract_to_cond_assign() 114 ir_vec_index_to_cond_assign_visitor::visit_enter(ir_expression *ir) in visit_enter() argument 116 for (unsigned i = 0; i < ir in visit_enter() 123 visit_enter(ir_swizzle *ir) visit_enter() argument 135 visit_leave(ir_assignment *ir) visit_leave() argument 143 visit_enter(ir_call *ir) visit_enter() argument 157 visit_enter(ir_return *ir) visit_enter() argument 166 visit_enter(ir_if *ir) visit_enter() argument [all...] |
H A D | opt_if_simplification.cpp | 32 #include "ir.h" 55 ir_if_simplification_visitor::visit_enter(ir_assignment *ir) in visit_enter() argument 57 (void) ir; in visit_enter() 72 ir_if_simplification_visitor::visit_leave(ir_if *ir) in visit_leave() argument 75 if (ir->then_instructions.is_empty() && in visit_leave() 76 ir->else_instructions.is_empty()) { in visit_leave() 77 ir->remove(); in visit_leave() 88 ir->condition->constant_expression_value(ralloc_parent(ir)); in visit_leave() 94 ir in visit_leave() [all...] |
H A D | test_optpass.cpp | 57 do_optimization(struct exec_list *ir, const char *optimization, in do_optimization() argument 66 return do_common_optimization(ir, int_0 != 0, options, true); in do_optimization() 68 return do_algebraic(ir, true, options); in do_optimization() 70 return do_constant_folding(ir); in do_optimization() 72 return do_constant_variable(ir); in do_optimization() 74 return do_constant_variable_unlinked(ir); in do_optimization() 76 return do_copy_propagation_elements(ir); in do_optimization() 78 return do_constant_propagation(ir); in do_optimization() 80 return do_dead_code(ir); in do_optimization() 82 return do_dead_code_local(ir); in do_optimization() 119 do_optimization_passes(struct exec_list *ir, char **optimizations, int num_optimizations, bool quiet, const struct gl_shader_compiler_options *options) do_optimization_passes() argument [all...] |
H A D | lower_vector_derefs.cpp | 23 #include "ir.h" 46 virtual ir_visitor_status visit_enter(ir_assignment *ir); 57 vector_deref_visitor::visit_enter(ir_assignment *ir) in visit_enter() argument 59 if (!ir->lhs || ir->lhs->ir_type != ir_type_dereference_array) in visit_enter() 60 return ir_rvalue_enter_visitor::visit_enter(ir); in visit_enter() 62 ir_dereference_array *const deref = (ir_dereference_array *) ir->lhs; in visit_enter() 64 return ir_rvalue_enter_visitor::visit_enter(ir); in visit_enter() 74 return ir_rvalue_enter_visitor::visit_enter(ir); in visit_enter() 78 void *mem_ctx = ralloc_parent(ir); in visit_enter() [all...] |
H A D | opt_constant_folding.cpp | 29 #include "ir.h" 53 virtual ir_visitor_status visit_enter(ir_discard *ir); 54 virtual ir_visitor_status visit_enter(ir_assignment *ir); 55 virtual ir_visitor_status visit_enter(ir_call *ir); 120 ir_constant_folding_visitor::visit_enter(ir_discard *ir) in visit_enter() argument 122 if (ir->condition) { in visit_enter() 123 ir->condition->accept(this); in visit_enter() 124 handle_rvalue(&ir->condition); in visit_enter() 126 ir_constant *const_val = ir->condition->as_constant(); in visit_enter() 132 ir in visit_enter() 143 visit_enter(ir_assignment *ir) visit_enter() argument 156 visit_enter(ir_call *ir) visit_enter() argument [all...] |
H A D | lower_discard_flow.cpp | 48 #include "ir.h" 64 ir_visitor_status visit(ir_loop_jump *ir); 65 ir_visitor_status visit_enter(ir_discard *ir); 66 ir_visitor_status visit_enter(ir_loop *ir); 67 ir_visitor_status visit_enter(ir_function_signature *ir); 78 lower_discard_flow_visitor::visit(ir_loop_jump *ir) in visit() argument 80 if (ir->mode != ir_loop_jump::jump_continue) in visit() 83 ir->insert_before(generate_discard_break()); in visit() 89 lower_discard_flow_visitor::visit_enter(ir_discard *ir) in visit_enter() argument 93 if (ir in visit_enter() 107 visit_enter(ir_loop *ir) visit_enter() argument 115 visit_enter(ir_function_signature *ir) visit_enter() argument 141 lower_discard_flow(exec_list *ir) lower_discard_flow() argument [all...] |
H A D | opt_flip_matrices.cpp | 35 #include "ir.h" 48 foreach_in_list(ir_instruction, ir, instructions) { in matrix_flipper() 49 ir_variable *var = ir->as_variable(); in matrix_flipper() 59 ir_visitor_status visit_enter(ir_expression *ir); 70 matrix_flipper::visit_enter(ir_expression *ir) in visit_enter() argument 72 if (ir->operation != ir_binop_mul || in visit_enter() 73 !ir->operands[0]->type->is_matrix() || in visit_enter() 74 !ir->operands[1]->type->is_vector()) in visit_enter() 77 ir_variable *mat_var = ir->operands[0]->variable_referenced(); in visit_enter() 84 ir_dereference_variable *deref = ir in visit_enter() [all...] |
H A D | lower_output_reads.cpp | 25 #include "ir.h" 91 output_read_remover::visit(ir_dereference_variable *ir) in visit() argument 93 if (ir->var->data.mode != ir_var_shader_out || ir->var->data.fb_fetch_output) in visit() 96 hash_entry *entry = _mesa_hash_table_search(replacements, ir->var); in visit() 101 void *var_ctx = ralloc_parent(ir->var); in visit() 102 temp = new(var_ctx) ir_variable(ir->var->type, ir->var->name, in visit() 105 temp->data.invariant = ir->var->data.invariant; in visit() 106 temp->data.precise = ir in visit() 135 ir_return *ir = (ir_return *) closure; emit_return_copy() local 148 visit_leave(ir_return *ir) visit_leave() argument 155 visit_leave(ir_emit_vertex *ir) visit_leave() argument [all...] |
H A D | opt_function_inlining.cpp | 30 #include "ir.h" 83 replace_return_with_assignment(ir_instruction *ir, void *data) in replace_return_with_assignment() argument 85 void *ctx = ralloc_parent(ir); in replace_return_with_assignment() 87 ir_return *ret = ir->as_return(); in replace_return_with_assignment() 238 foreach_in_list(ir_instruction, ir, &callee->body) { in generate_inline() 239 ir_instruction *new_ir = ir->clone(ctx, ht); in generate_inline() 292 ir_function_inlining_visitor::visit_enter(ir_expression *ir) in visit_enter() argument 294 (void) ir; in visit_enter() 300 ir_function_inlining_visitor::visit_enter(ir_return *ir) in visit_enter() argument 302 (void) ir; in visit_enter() 308 visit_enter(ir_texture *ir) visit_enter() argument 316 visit_enter(ir_swizzle *ir) visit_enter() argument 324 visit_enter(ir_call *ir) visit_enter() argument 397 visit_leave(ir_texture *ir) visit_leave() argument 405 visit_leave(ir_assignment *ir) visit_leave() argument 414 visit_leave(ir_expression *ir) visit_leave() argument 423 visit_leave(ir_return *ir) visit_leave() argument 431 visit_leave(ir_dereference_array *ir) visit_leave() argument 438 visit_leave(ir_dereference_record *ir) visit_leave() argument 445 visit_leave(ir_call *ir) visit_leave() argument [all...] |
/third_party/mesa3d/src/gallium/drivers/r600/sfn/ |
H A D | sfn_instr_alu.cpp | 1431 AluInstr *ir = nullptr; in emit_alu_op1_64bit() local 1441 ir = new AluInstr(opcode, in emit_alu_op1_64bit() 1445 group->add_instruction(ir); in emit_alu_op1_64bit() 1447 if (alu.src[0].abs) ir->set_alu_flag(alu_src0_abs); in emit_alu_op1_64bit() 1448 if (alu.src[0].negate) ir->set_alu_flag(alu_src0_neg); in emit_alu_op1_64bit() 1450 if (ir) in emit_alu_op1_64bit() 1451 ir->set_alu_flag(alu_last_instr); in emit_alu_op1_64bit() 1460 AluInstr *ir = nullptr; in emit_alu_mov_64bit() local 1464 ir = new AluInstr(op1_mov, in emit_alu_mov_64bit() 1468 shader.emit_instruction(ir); in emit_alu_mov_64bit() 1484 AluInstr *ir = nullptr; emit_alu_neg() local 1512 auto ir = new AluInstr(op1_mov, value_factory.dest(alu.dest, 1, pin_chan), emit_alu_abs64() local 1524 AluInstr *ir = nullptr; emit_alu_op2_64bit() local 1580 AluInstr *ir = nullptr; emit_alu_op2_64bit_one_dst() local 1616 AluInstr *ir = nullptr; emit_alu_op1_64bit_trans() local 1641 AluInstr *ir = nullptr; emit_alu_fma_64bit() local 1674 AluInstr *ir = nullptr; emit_alu_b2f64() local 1702 AluInstr *ir = nullptr; emit_alu_i2f64() local 1768 AluInstr *ir = nullptr; emit_alu_f2f64() local 1788 AluInstr *ir = nullptr; emit_alu_f2f32() local 1806 AluInstr *ir = nullptr; emit_alu_b2x() local 1830 AluInstr *ir = nullptr; emit_alu_op1() local 1872 AluInstr *ir = nullptr; emit_alu_op2() local 1914 AluInstr *ir = nullptr; emit_alu_op3() local 1939 AluInstr *ir = nullptr; emit_any_all_fcomp2() local 1977 AluInstr *ir = nullptr; emit_any_all_fcomp() local 2044 AluInstr *ir = nullptr; emit_any_all_icomp() local 2111 AluInstr *ir = new AluInstr(op, dest, srcs, AluInstr::last_write, 4); emit_dot() local 2144 AluInstr *ir = new AluInstr(op, dest, srcs, AluInstr::last_write, 4); emit_fdph() local 2160 AluInstr *ir = nullptr; emit_create_vec() local 2184 AluInstr *ir = nullptr; emit_alu_i2orf2_b1() local 2205 AluInstr *ir = nullptr; emit_alu_comb_with_zero() local 2226 AluInstr *ir = nullptr; emit_pack_64_2x32_split() local 2239 AluInstr *ir = nullptr; emit_pack_64_2x32() local 2253 AluInstr *ir = nullptr; emit_unpack_64_2x32() local 2266 AluInstr *ir = nullptr; emit_alu_vec2_64() local 2340 AluInstr *ir = nullptr; emit_alu_trans_op1_eg() local 2363 AluInstr *ir = nullptr; emit_alu_f2i32_or_u32_eg() local 2409 auto ir = new AluInstr(opcode, dest, srcs, AluInstr::last_write, 4); emit_alu_trans_op1_cayman() local 2431 AluInstr *ir = nullptr; emit_alu_trans_op2_eg() local 2470 auto ir = new AluInstr(opcode, emit_alu_trans_op2_cayman() local 2530 AluInstr *ir = nullptr; emit_alu_cube() local [all...] |
/third_party/mesa3d/src/freedreno/ir3/ |
H A D | ir3_dce.c | 102 find_and_remove_unused(struct ir3 *ir, struct ir3_shader_variant *so) in find_and_remove_unused() argument 107 ir3_clear_mark(ir); in find_and_remove_unused() 112 foreach_block (block, &ir->block_list) { in find_and_remove_unused() 131 foreach_array (arr, &ir->array_list) in find_and_remove_unused() 134 foreach_block (block, &ir->block_list) { in find_and_remove_unused() 144 foreach_block (block, &ir->block_list) { in find_and_remove_unused() 149 foreach_array_safe (arr, &ir->array_list) { in find_and_remove_unused() 157 foreach_block (block, &ir->block_list) { in find_and_remove_unused() 170 for (i = 0; i < ir->a0_users_count; i++) { in find_and_remove_unused() 171 struct ir3_instruction *instr = ir in find_and_remove_unused() 197 ir3_dce(struct ir3 *ir, struct ir3_shader_variant *so) ir3_dce() argument [all...] |