/third_party/mesa3d/src/freedreno/ir3/ |
D | ir3_context.h | 65 struct ir3_instruction **inputs; 66 struct ir3_instruction **outputs; 81 struct ir3_instruction *ij[IJ_COUNT]; 84 struct ir3_instruction *frag_face, *frag_coord; 87 struct ir3_instruction *vertex_id, *basevertex, *instance_id, *base_instance, 91 struct ir3_instruction *samp_id, *samp_mask_in; 94 struct ir3_instruction *primitive_id; 95 struct ir3_instruction *gs_header; 98 struct ir3_instruction *patch_vertices_in; 99 struct ir3_instruction *tcs_header; [all …]
|
D | ir3.h | 43 struct ir3_instruction; 192 struct ir3_instruction *instr; 232 struct ir3_instruction { struct 416 DECLARE_ARRAY(struct ir3_instruction *, deps); argument 463 DECLARE_ARRAY(struct ir3_instruction *, inputs); argument 471 DECLARE_ARRAY(struct ir3_instruction *, baryfs); 483 DECLARE_ARRAY(struct ir3_instruction *, a0_users); 486 DECLARE_ARRAY(struct ir3_instruction *, a1_users); 489 DECLARE_ARRAY(struct ir3_instruction *, predicates); 494 DECLARE_ARRAY(struct ir3_instruction *, astc_srgb); [all …]
|
D | ir3_sched.c | 97 struct ir3_instruction *scheduled; /* last scheduled instr */ 98 struct ir3_instruction *addr0; /* current a0.x user, if any */ 99 struct ir3_instruction *addr1; /* current a1.x user, if any */ 100 struct ir3_instruction *pred; /* current p0.x user, if any */ 102 struct ir3_instruction *split; /* most-recently-split a0/a1/p0 producer */ 123 struct ir3_instruction *instr; 144 struct ir3_instruction *collect; 169 struct ir3_instruction *instr); 170 static void sched_node_add_dep(struct ir3_instruction *instr, 171 struct ir3_instruction *src, int i); [all …]
|
D | ir3_a4xx.c | 40 struct ir3_instruction **dst) in emit_intrinsic_load_ssbo() 43 struct ir3_instruction *ldgb, *src0, *src1, *byte_offset, *offset; in emit_intrinsic_load_ssbo() 45 struct ir3_instruction *ssbo = ir3_ssbo_to_ibo(ctx, intr->src[0]); in emit_intrinsic_load_ssbo() 70 struct ir3_instruction *stgb, *src0, *src1, *src2, *byte_offset, *offset; in emit_intrinsic_store_ssbo() 76 struct ir3_instruction *ssbo = ir3_ssbo_to_ibo(ctx, intr->src[1]); in emit_intrinsic_store_ssbo() 120 static struct ir3_instruction * 124 struct ir3_instruction *atomic; in emit_intrinsic_atomic_ssbo() 127 struct ir3_instruction *ssbo = ir3_ssbo_to_ibo(ctx, intr->src[0]); in emit_intrinsic_atomic_ssbo() 129 struct ir3_instruction *data = ir3_get_src(ctx, &intr->src[2])[0]; in emit_intrinsic_atomic_ssbo() 131 struct ir3_instruction *byte_offset = in emit_intrinsic_atomic_ssbo() [all …]
|
D | ir3_context.c | 178 struct ir3_instruction ** 181 struct ir3_instruction **value = in ir3_get_dst_ssa() 182 ralloc_array(ctx->def_ht, struct ir3_instruction *, n); in ir3_get_dst_ssa() 187 struct ir3_instruction ** 190 struct ir3_instruction **value; in ir3_get_dst() 195 value = ralloc_array(ctx, struct ir3_instruction *, n); in ir3_get_dst() 208 struct ir3_instruction *const * 220 struct ir3_instruction *addr = NULL; in ir3_get_src() 221 struct ir3_instruction **value = in ir3_get_src() 222 ralloc_array(ctx, struct ir3_instruction *, num_components); in ir3_get_src() [all …]
|
D | ir3_a6xx.c | 43 struct ir3_instruction **dst) in emit_intrinsic_load_ssbo() 46 struct ir3_instruction *offset; in emit_intrinsic_load_ssbo() 47 struct ir3_instruction *ldib; in emit_intrinsic_load_ssbo() 69 struct ir3_instruction *stib, *val, *offset; in emit_intrinsic_store_ssbo() 109 static struct ir3_instruction * 113 struct ir3_instruction *atomic, *ibo, *src0, *src1, *data, *dummy; in emit_intrinsic_atomic_ssbo() 138 struct ir3_instruction *compare = ir3_get_src(ctx, &intr->src[3])[0]; in emit_intrinsic_atomic_ssbo() 194 struct ir3_instruction *split; in emit_intrinsic_atomic_ssbo() 202 struct ir3_instruction **dst) in emit_intrinsic_load_image() 205 struct ir3_instruction *ldib; in emit_intrinsic_load_image() [all …]
|
D | ir3_cp_postsched.c | 50 has_conflicting_write(struct ir3_instruction *src, struct ir3_instruction *use, in has_conflicting_write() 109 valid_flags(struct ir3_instruction *use, struct ir3_instruction *mov) in valid_flags() 125 instr_cp_postsched(struct ir3_instruction *mov) in instr_cp_postsched() 190 util_dynarray_append(&newdeps, struct ir3_instruction *, use); in instr_cp_postsched() 203 util_dynarray_foreach (&newdeps, struct ir3_instruction *, instrp) { in instr_cp_postsched() 204 struct ir3_instruction *newdep = *instrp; in instr_cp_postsched() 209 return util_dynarray_num_elements(&newdeps, struct ir3_instruction **) > 0; in instr_cp_postsched()
|
D | ir3_delay.c | 59 ir3_delayslots(struct ir3_instruction *assigner, in ir3_delayslots() 60 struct ir3_instruction *consumer, unsigned n, bool soft) in ir3_delayslots() 112 count_instruction(struct ir3_instruction *n) in count_instruction() 123 distance(struct ir3_block *block, struct ir3_instruction *instr, unsigned maxd) in distance() 142 delay_calc_srcn_prera(struct ir3_block *block, struct ir3_instruction *assigner, in delay_calc_srcn_prera() 143 struct ir3_instruction *consumer, unsigned srcn) in delay_calc_srcn_prera() 173 ir3_delay_calc_prera(struct ir3_block *block, struct ir3_instruction *instr) in ir3_delay_calc_prera() 211 delay_calc_srcn_postra(struct ir3_instruction *assigner, in delay_calc_srcn_postra() 212 struct ir3_instruction *consumer, unsigned assigner_n, in delay_calc_srcn_postra() 306 delay_calc_postra(struct ir3_block *block, struct ir3_instruction *start, in delay_calc_postra() [all …]
|
D | ir3_compiler_nir.c | 43 ir3_handle_nonuniform(struct ir3_instruction *instr, in ir3_handle_nonuniform() 53 ir3_handle_bindless_cat6(struct ir3_instruction *instr, nir_src rsrc) in ir3_handle_bindless_cat6() 63 static struct ir3_instruction * 66 struct ir3_instruction *in; in create_input() 77 static struct ir3_instruction * 78 create_frag_input(struct ir3_context *ctx, struct ir3_instruction *coord, in create_frag_input() 82 struct ir3_instruction *instr; in create_frag_input() 84 struct ir3_instruction *inloc = create_immed(block, n); in create_frag_input() 100 static struct ir3_instruction * 123 static struct ir3_instruction * [all …]
|
D | ir3_cp.c | 61 is_eligible_mov(struct ir3_instruction *instr, in is_eligible_mov() 62 struct ir3_instruction *dst_instr, bool allow_flags) in is_eligible_mov() 67 struct ir3_instruction *src_instr = ssa(src); in is_eligible_mov() 100 is_foldable_double_cmp(struct ir3_instruction *cmp) in is_foldable_double_cmp() 102 struct ir3_instruction *cond = ssa(cmp->srcs[0]); in is_foldable_double_cmp() 114 combine_flags(unsigned *dstflags, struct ir3_instruction *src) in combine_flags() 150 struct ir3_instruction *srcsrc = ssa(src->srcs[0]); in combine_flags() 160 lower_immed(struct ir3_cp_ctx *ctx, struct ir3_instruction *instr, unsigned n, in lower_immed() 249 unuse(struct ir3_instruction *instr) in unuse() 274 try_swap_mad_two_srcs(struct ir3_instruction *instr, unsigned new_flags) in try_swap_mad_two_srcs() [all …]
|
D | ir3_legalize.c | 90 struct ir3_instruction *last_rel = NULL; in legalize_block() 91 struct ir3_instruction *last_n = NULL; in legalize_block() 227 struct ir3_instruction *nop; in legalize_block() 240 struct ir3_instruction *samgp; in legalize_block() 313 struct ir3_instruction *last_input = n; in legalize_block() 315 struct ir3_instruction *baryf; in legalize_block() 345 struct ir3_instruction *baryf; in legalize_block() 404 struct ir3_instruction *op_p = ir3_instr_clone(n); in apply_fine_deriv_macro() 467 struct ir3_instruction *instr = in resolve_dest_block() 468 list_first_entry(&block->instr_list, struct ir3_instruction, node); in resolve_dest_block() [all …]
|
D | ir3_cse.c | 40 const struct ir3_instruction *instr = data; in hash_instr() 45 foreach_src (src, (struct ir3_instruction *)instr) { in hash_instr() 58 instrs_equal(const struct ir3_instruction *i1, const struct ir3_instruction *i2) in instrs_equal() 94 instr_can_cse(const struct ir3_instruction *instr) in instr_can_cse() 136 struct ir3_instruction *instr = src->def->instr->data; in ir3_cse()
|
D | ir3_dce.c | 37 mark_array_use(struct ir3_instruction *instr, struct ir3_register *reg) in mark_array_use() 47 instr_dce(struct ir3_instruction *instr, bool falsedep) in instr_dce() 77 struct ir3_instruction *src = ssa(instr->srcs[0]); in remove_unused_by_block() 153 struct ir3_instruction *src = ssa(instr->srcs[0]); in find_and_remove_unused() 162 struct ir3_instruction *instr = ir->a0_users[i]; in find_and_remove_unused() 168 struct ir3_instruction *instr = ir->a1_users[i]; in find_and_remove_unused() 174 struct ir3_instruction *instr = ir->predicates[i]; in find_and_remove_unused()
|
D | ir3.c | 71 collect_reg_info(struct ir3_instruction *instr, struct ir3_register *reg, in collect_reg_info() 346 insert_instr(struct ir3_block *block, struct ir3_instruction *instr) in insert_instr() 428 static struct ir3_instruction * 434 struct ir3_instruction *instr; in instr_create() 439 instr = (struct ir3_instruction *)ptr; in instr_create() 452 struct ir3_instruction * 455 struct ir3_instruction *instr = instr_create(block, opc, ndst, nsrc); in ir3_instr_create() 462 struct ir3_instruction * 463 ir3_instr_clone(struct ir3_instruction *instr) in ir3_instr_clone() 465 struct ir3_instruction *new_instr = instr_create( in ir3_instr_clone() [all …]
|
D | ir3_postsched.c | 77 struct ir3_instruction *instr; 90 has_tex_src(struct ir3_instruction *instr) in has_tex_src() 97 has_sfu_src(struct ir3_instruction *instr) in has_sfu_src() 104 schedule(struct ir3_postsched_ctx *ctx, struct ir3_instruction *instr) in schedule() 163 would_sync(struct ir3_postsched_ctx *ctx, struct ir3_instruction *instr) in would_sync() 179 static struct ir3_instruction * 519 sched_node_init(struct ir3_postsched_ctx *ctx, struct ir3_instruction *instr) in sched_node_init() 600 util_dynarray_append(&inputs, struct ir3_instruction *, instr); in sched_dag_init() 602 util_dynarray_foreach (&inputs, struct ir3_instruction *, instrp) { in sched_dag_init() 603 struct ir3_instruction *input = *instrp; in sched_dag_init() [all …]
|
D | ir3_cf.c | 29 is_safe_conv(struct ir3_instruction *instr, type_t src_type, opc_t *src_opc) in is_safe_conv() 87 all_uses_safe_conv(struct ir3_instruction *conv_src, type_t src_type) in all_uses_safe_conv() 112 rewrite_src_uses(struct ir3_instruction *src) in rewrite_src_uses() 128 try_conversion_folding(struct ir3_instruction *conv) in try_conversion_folding() 130 struct ir3_instruction *src; in try_conversion_folding()
|
D | ir3_lower_spill.c | 42 split_spill(struct ir3_instruction *spill) in split_spill() 60 struct ir3_instruction *clone = ir3_instr_clone(spill); in split_spill() 78 split_reload(struct ir3_instruction *reload) in split_reload() 95 struct ir3_instruction *clone = ir3_instr_clone(reload); in split_reload() 115 struct ir3_instruction *last_spill = NULL; in add_spill_reload_deps()
|
D | ir3_ra_validate.c | 93 struct ir3_instruction *current_instr; 138 validate_simple(struct ra_val_ctx *ctx, struct ir3_instruction *instr) in validate_simple() 219 propagate_normal_instr(struct ra_val_ctx *ctx, struct ir3_instruction *instr) in propagate_normal_instr() 234 propagate_split(struct ra_val_ctx *ctx, struct ir3_instruction *split) in propagate_split() 249 propagate_collect(struct ra_val_ctx *ctx, struct ir3_instruction *collect) in propagate_collect() 279 propagate_parallelcopy(struct ra_val_ctx *ctx, struct ir3_instruction *pcopy) in propagate_parallelcopy() 325 propagate_instr(struct ra_val_ctx *ctx, struct ir3_instruction *instr) in propagate_instr() 368 struct ir3_instruction *instr = state->def->instr; in chase_definition() 439 check_reaching_src(struct ra_val_ctx *ctx, struct ir3_instruction *instr, in check_reaching_src() 472 check_reaching_instr(struct ra_val_ctx *ctx, struct ir3_instruction *instr) in check_reaching_instr()
|
D | ir3_lower_parallelcopy.c | 72 do_xor(struct ir3_instruction *instr, unsigned dst_num, unsigned src1_num, in do_xor() 75 struct ir3_instruction * xor in do_xor() 85 do_swap(struct ir3_compiler *compiler, struct ir3_instruction *instr, in do_swap() 173 struct ir3_instruction *swz = ir3_instr_create(instr->block, opc, 2, 2); in do_swap() 186 do_copy(struct ir3_compiler *compiler, struct ir3_instruction *instr, in do_copy() 232 struct ir3_instruction *cov = in do_copy() 241 struct ir3_instruction *shr = in do_copy() 258 struct ir3_instruction *mov = ir3_instr_create(instr->block, opc, 1, 1); in do_copy() 313 _handle_copies(struct ir3_compiler *compiler, struct ir3_instruction *instr, in _handle_copies() 474 handle_copies(struct ir3_shader_variant *v, struct ir3_instruction *instr, in handle_copies()
|
D | ir3_spill.c | 147 struct ir3_instruction *after = NULL; in add_base_reg() 156 struct ir3_instruction *mov = create_immed(start, 0); in add_base_reg() 175 instr_cycles(struct ir3_instruction *instr) in instr_cycles() 534 remove_src_early(struct ra_spill_ctx *ctx, struct ir3_instruction *instr, in remove_src_early() 547 remove_src(struct ra_spill_ctx *ctx, struct ir3_instruction *instr, in remove_src() 639 struct ir3_instruction *instr, in materialize_pcopy_src() 642 struct ir3_instruction *mov = ir3_instr_create(block, OPC_MOV, 1, 1); in materialize_pcopy_src() 657 unsigned spill_slot, struct ir3_instruction *instr, struct ir3_block *block) in spill() 674 struct ir3_instruction *spill = in spill() 700 struct ir3_instruction *instr, struct ir3_block *block) in spill_interval() [all …]
|
D | ir3_lower_subgroups.c | 63 struct ir3_instruction *mov = ir3_instr_create(block, OPC_MOV, 1, 1); in mov_immed() 76 struct ir3_instruction *instr, struct ir3_block **then) in split_block() 206 struct ir3_instruction *movmsk = in lower_block() 215 struct ir3_instruction *mov = in lower_block() 228 struct ir3_instruction *swz = in lower_block()
|
D | ir3_image.h | 34 struct ir3_instruction *ir3_ssbo_to_ibo(struct ir3_context *ctx, nir_src src); 36 struct ir3_instruction *ir3_image_to_ibo(struct ir3_context *ctx, nir_src src);
|
D | ir3_validate.c | 37 struct ir3_instruction *current_instr; 72 validate_src(struct ir3_validate_ctx *ctx, struct ir3_instruction *instr, in validate_src() 122 validate_phi(struct ir3_validate_ctx *ctx, struct ir3_instruction *phi) in validate_phi() 130 validate_dst(struct ir3_validate_ctx *ctx, struct ir3_instruction *instr, in validate_dst() 164 validate_instr(struct ir3_validate_ctx *ctx, struct ir3_instruction *instr) in validate_instr() 386 struct ir3_instruction *prev = NULL; in ir3_validate()
|
D | ir3_merge_regs.c | 118 struct ir3_instruction *instr = value.reg->instr; in chase_copies() 357 coalesce_phi(struct ir3_liveness *live, struct ir3_instruction *phi) in coalesce_phi() 367 struct ir3_instruction *pcopy) in aggressive_coalesce_parallel_copy() 378 struct ir3_instruction *split) in aggressive_coalesce_split() 386 struct ir3_instruction *collect) in aggressive_coalesce_collect() 440 struct ir3_instruction *pcopy = in create_parallel_copy()
|
/third_party/mesa3d/src/freedreno/isa/ |
D | encode.c | 40 struct ir3_instruction *instr; 49 extract_SRC1_R(struct ir3_instruction *instr) in extract_SRC1_R() 59 extract_SRC2_R(struct ir3_instruction *instr) in extract_SRC2_R() 72 __instruction_case(struct encode_state *s, struct ir3_instruction *instr) in __instruction_case() 155 extract_cat5_SRC(struct ir3_instruction *instr, unsigned n) in extract_cat5_SRC() 166 extract_cat5_FULL(struct ir3_instruction *instr) in extract_cat5_FULL() 176 extract_cat5_DESC_MODE(struct ir3_instruction *instr) in extract_cat5_DESC_MODE() 212 extract_cat6_DESC_MODE(struct ir3_instruction *instr) in extract_cat6_DESC_MODE() 232 extract_cat6_SRC(struct ir3_instruction *instr, unsigned n) in extract_cat6_SRC()
|