/external/mesa3d/src/freedreno/ir3/ |
D | ir3_context.h | 64 struct ir3_instruction **inputs; 65 struct ir3_instruction **outputs; 80 struct ir3_instruction *ij[IJ_COUNT]; 83 struct ir3_instruction *frag_face, *frag_coord; 86 …struct ir3_instruction *vertex_id, *basevertex, *instance_id, *base_instance, *draw_id, *view_inde… 89 struct ir3_instruction *samp_id, *samp_mask_in; 92 struct ir3_instruction *primitive_id; 93 struct ir3_instruction *gs_header; 96 struct ir3_instruction *patch_vertices_in; 97 struct ir3_instruction *tcs_header; [all …]
|
D | ir3.h | 43 struct ir3_instruction; 153 struct ir3_instruction *instr; 171 struct ir3_instruction { struct 353 struct ir3_instruction *left, *right; argument 362 struct ir3_instruction *address; argument 367 DECLARE_ARRAY(struct ir3_instruction *, deps); 409 static inline struct ir3_instruction * argument 410 ir3_neighbor_first(struct ir3_instruction *instr) in ir3_neighbor_first() 423 static inline int ir3_neighbor_count(struct ir3_instruction *instr) in ir3_neighbor_count() 445 DECLARE_ARRAY(struct ir3_instruction *, inputs); [all …]
|
D | ir3_context.c | 177 struct ir3_instruction ** 180 struct ir3_instruction **value = in ir3_get_dst_ssa() 181 ralloc_array(ctx->def_ht, struct ir3_instruction *, n); in ir3_get_dst_ssa() 186 struct ir3_instruction ** 189 struct ir3_instruction **value; in ir3_get_dst() 194 value = ralloc_array(ctx, struct ir3_instruction *, n); in ir3_get_dst() 207 struct ir3_instruction * const * 219 struct ir3_instruction *addr = NULL; in ir3_get_src() 220 struct ir3_instruction **value = in ir3_get_src() 221 ralloc_array(ctx, struct ir3_instruction *, num_components); in ir3_get_src() [all …]
|
D | ir3_sched.c | 90 struct ir3_instruction *scheduled; /* last scheduled instr */ 91 struct ir3_instruction *addr0; /* current a0.x user, if any */ 92 struct ir3_instruction *addr1; /* current a1.x user, if any */ 93 struct ir3_instruction *pred; /* current p0.x user, if any */ 106 struct ir3_instruction *instr; 124 struct ir3_instruction *collect; 148 static void sched_node_init(struct ir3_sched_ctx *ctx, struct ir3_instruction *instr); 149 static void sched_node_add_dep(struct ir3_instruction *instr, struct ir3_instruction *src, int i); 151 static bool is_scheduled(struct ir3_instruction *instr) in is_scheduled() 157 schedule(struct ir3_sched_ctx *ctx, struct ir3_instruction *instr) in schedule() [all …]
|
D | ir3_group.c | 34 insert_mov(struct ir3_instruction *collect, int idx) in insert_mov() 36 struct ir3_instruction *src = ssa(collect->regs[idx+1]); in insert_mov() 37 struct ir3_instruction *mov = ir3_MOV(src->block, src, in insert_mov() 53 in_neighbor_list(struct ir3_instruction *instr, struct ir3_instruction *cur, int pos) in in_neighbor_list() 71 group_collect(struct ir3_instruction *collect) in group_collect() 85 struct ir3_instruction *instr = ssa(regs[i]); in group_collect() 87 struct ir3_instruction *left = (i > 0) ? ssa(regs[i - 1]) : NULL; in group_collect() 88 struct ir3_instruction *right = (i < (n-1)) ? ssa(regs[i + 1]) : NULL; in group_collect() 123 struct ir3_instruction *instr = ssa(regs[i]); in group_collect() 125 struct ir3_instruction *left = (i > 0) ? ssa(regs[i - 1]) : NULL; in group_collect() [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() 68 struct ir3_instruction *stib, *val, *offset; in emit_intrinsic_store_ssbo() 107 static struct ir3_instruction * 111 struct ir3_instruction *atomic, *ibo, *src0, *src1, *data, *dummy; in emit_intrinsic_atomic_ssbo() 136 struct ir3_instruction *compare = ir3_get_src(ctx, &intr->src[3])[0]; in emit_intrinsic_atomic_ssbo() 137 src1 = ir3_create_collect(ctx, (struct ir3_instruction*[]){ in emit_intrinsic_atomic_ssbo() 142 src1 = ir3_create_collect(ctx, (struct ir3_instruction*[]){ in emit_intrinsic_atomic_ssbo() 200 struct ir3_instruction **dst) in emit_intrinsic_load_image() [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() 51 src0 = ir3_create_collect(ctx, (struct ir3_instruction*[]){ in emit_intrinsic_load_ssbo() 74 struct ir3_instruction *stgb, *src0, *src1, *src2, *byte_offset, *offset; in emit_intrinsic_store_ssbo() 80 struct ir3_instruction *ssbo = ir3_ssbo_to_ibo(ctx, intr->src[1]); in emit_intrinsic_store_ssbo() 90 src2 = ir3_create_collect(ctx, (struct ir3_instruction*[]){ in emit_intrinsic_store_ssbo() 122 static struct ir3_instruction * 126 struct ir3_instruction *atomic, *ssbo, *src0, *src1, *src2, *byte_offset, in emit_intrinsic_atomic_ssbo() 143 src2 = ir3_create_collect(ctx, (struct ir3_instruction*[]){ in emit_intrinsic_atomic_ssbo() [all …]
|
D | ir3_cp_postsched.c | 49 has_conflicting_write(struct ir3_instruction *src, in has_conflicting_write() 50 struct ir3_instruction *use, in has_conflicting_write() 103 valid_flags(struct ir3_instruction *use, struct ir3_instruction *mov) in valid_flags() 119 instr_cp_postsched(struct ir3_instruction *mov) in instr_cp_postsched() 175 util_dynarray_append(&newdeps, struct ir3_instruction *, use); in instr_cp_postsched() 188 util_dynarray_foreach(&newdeps, struct ir3_instruction *, instrp) { in instr_cp_postsched() 189 struct ir3_instruction *newdep = *instrp; in instr_cp_postsched() 194 return util_dynarray_num_elements(&newdeps, struct ir3_instruction **) > 0; in instr_cp_postsched()
|
D | ir3_delay.c | 44 ignore_dep(struct ir3_instruction *assigner, in ignore_dep() 45 struct ir3_instruction *consumer, unsigned n) in ignore_dep() 70 ir3_delayslots(struct ir3_instruction *assigner, in ir3_delayslots() 71 struct ir3_instruction *consumer, unsigned n, bool soft) in ir3_delayslots() 119 count_instruction(struct ir3_instruction *n) in count_instruction() 143 distance(struct ir3_block *block, struct ir3_instruction *instr, in distance() 193 struct ir3_instruction *assigner, in delay_calc_srcn() 194 struct ir3_instruction *consumer, in delay_calc_srcn() 239 static struct ir3_instruction * 281 struct ir3_instruction *consumer, unsigned srcn, in delay_calc_array() [all …]
|
D | ir3_cp.c | 56 static bool is_eligible_mov(struct ir3_instruction *instr, in is_eligible_mov() 57 struct ir3_instruction *dst_instr, bool allow_flags) in is_eligible_mov() 62 struct ir3_instruction *src_instr = ssa(src); in is_eligible_mov() 106 static void combine_flags(unsigned *dstflags, struct ir3_instruction *src) in combine_flags() 142 struct ir3_instruction *srcsrc = ssa(src->regs[1]); in combine_flags() 152 lower_immed(struct ir3_cp_ctx *ctx, struct ir3_instruction *instr, unsigned n, in lower_immed() 241 unuse(struct ir3_instruction *instr) in unuse() 266 try_swap_mad_two_srcs(struct ir3_instruction *instr, unsigned new_flags) in try_swap_mad_two_srcs() 306 reg_cp(struct ir3_cp_ctx *ctx, struct ir3_instruction *instr, in reg_cp() 309 struct ir3_instruction *src = ssa(reg); in reg_cp() [all …]
|
D | ir3_compiler_nir.c | 43 ir3_handle_bindless_cat6(struct ir3_instruction *instr, nir_src rsrc) in ir3_handle_bindless_cat6() 53 static struct ir3_instruction * 56 struct ir3_instruction *in; in create_input() 67 static struct ir3_instruction * 68 create_frag_input(struct ir3_context *ctx, struct ir3_instruction *coord, unsigned n) in create_frag_input() 71 struct ir3_instruction *instr; in create_frag_input() 73 struct ir3_instruction *inloc = create_immed(block, n); in create_frag_input() 89 static struct ir3_instruction * 112 static struct ir3_instruction * 113 create_cov(struct ir3_context *ctx, struct ir3_instruction *src, in create_cov() [all …]
|
D | ir3_legalize.c | 89 struct ir3_instruction *last_input = NULL; in legalize_block() 90 struct ir3_instruction *last_rel = NULL; in legalize_block() 91 struct ir3_instruction *last_n = NULL; in legalize_block() 210 struct ir3_instruction *nop; in legalize_block() 222 struct ir3_instruction *samgp; in legalize_block() 297 struct ir3_instruction *baryf; in legalize_block() 323 struct ir3_instruction *baryf; in legalize_block() 382 struct ir3_instruction *op_p = ir3_instr_clone(n); in apply_fine_deriv_macro() 445 struct ir3_instruction *instr = list_first_entry( in resolve_dest_block() 446 &block->instr_list, struct ir3_instruction, node); in resolve_dest_block() [all …]
|
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() 76 struct ir3_instruction *src = ssa(instr->regs[1]); in remove_unused_by_block() 88 struct ir3_instruction *n = instr; in remove_unused_by_block() 171 struct ir3_instruction *src = ssa(instr->regs[1]); in find_and_remove_unused() 183 struct ir3_instruction *instr = ir->a0_users[i]; in find_and_remove_unused() 189 struct ir3_instruction *instr = ir->a1_users[i]; in find_and_remove_unused()
|
D | ir3_cf.c | 29 is_fp16_conv(struct ir3_instruction *instr) in is_fp16_conv() 60 all_uses_fp16_conv(struct ir3_instruction *conv_src) in all_uses_fp16_conv() 74 rewrite_src_uses(struct ir3_instruction *src) in rewrite_src_uses() 90 try_conversion_folding(struct ir3_instruction *conv) in try_conversion_folding() 92 struct ir3_instruction *src; in try_conversion_folding()
|
D | ir3_ra.c | 106 static struct ir3_instruction * name_to_instr(struct ir3_ra_ctx *ctx, unsigned name); 119 instr_before(struct ir3_instruction *a, struct ir3_instruction *b) in instr_before() 126 static struct ir3_instruction * 127 get_definer(struct ir3_ra_ctx *ctx, struct ir3_instruction *instr, in get_definer() 131 struct ir3_instruction *d = NULL; in get_definer() 156 struct ir3_instruction *dd; in get_definer() 173 struct ir3_instruction *f = ir3_neighbor_first(instr); in get_definer() 224 struct ir3_instruction *dd; in get_definer() 470 struct ir3_instruction *instr = name_to_instr(ctx, n); in ra_select_reg_merged() 598 static struct ir3_instruction * [all …]
|
D | ir3_ra.h | 138 struct ir3_instruction *defn; 211 scalar_name(struct ir3_ra_ctx *ctx, struct ir3_instruction *instr, unsigned n) in scalar_name() 216 struct ir3_instruction *src = instr->regs[1]->instr; in scalar_name() 220 struct ir3_instruction *src = instr->regs[n + 1]->instr; in scalar_name() 237 __ra_name_cnt(struct ir3_ra_ctx *ctx, struct ir3_instruction *instr) in __ra_name_cnt() 279 __ra_init_def_itr(struct ir3_ra_ctx *ctx, struct ir3_instruction *instr) in __ra_init_def_itr() 326 __ra_init_use_itr(struct ir3_ra_ctx *ctx, struct ir3_instruction *instr) in __ra_init_use_itr()
|
D | ir3.c | 132 static int emit_cat0(struct ir3_instruction *instr, void *ptr, in emit_cat0() 158 static int emit_cat1(struct ir3_instruction *instr, void *ptr, in emit_cat1() 203 static int emit_cat2(struct ir3_instruction *instr, void *ptr, in emit_cat2() 296 static int emit_cat3(struct ir3_instruction *instr, void *ptr, in emit_cat3() 398 static int emit_cat4(struct ir3_instruction *instr, void *ptr, in emit_cat4() 447 static int emit_cat5(struct ir3_instruction *instr, void *ptr, in emit_cat5() 537 static int emit_cat6_a6xx(struct ir3_instruction *instr, void *ptr, in emit_cat6_a6xx() 630 static int emit_cat6(struct ir3_instruction *instr, void *ptr, in emit_cat6() 895 static int emit_cat7(struct ir3_instruction *instr, void *ptr, in emit_cat7() 913 static int (*emit[])(struct ir3_instruction *instr, void *ptr, [all …]
|
D | ir3_postsched.c | 70 struct ir3_instruction *instr; 84 schedule(struct ir3_postsched_ctx *ctx, struct ir3_instruction *instr) in schedule() 143 would_sync(struct ir3_postsched_ctx *ctx, struct ir3_instruction *instr) in would_sync() 159 static struct ir3_instruction * 488 sched_node_init(struct ir3_postsched_ctx *ctx, struct ir3_instruction *instr) in sched_node_init() 560 util_dynarray_append(&kills, struct ir3_instruction *, instr); in sched_dag_init() 562 util_dynarray_foreach(&kills, struct ir3_instruction *, instrp) { in sched_dag_init() 563 struct ir3_instruction *kill = *instrp; in sched_dag_init() 631 struct ir3_instruction *instr = choose_instr(ctx); in sched_block() 653 is_self_mov(struct ir3_instruction *instr) in is_self_mov()
|
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 | 34 struct ir3_instruction *current_instr; 65 struct ir3_instruction *src = ssa(reg); in validate_src() 76 validate_instr(struct ir3_validate_ctx *ctx, struct ir3_instruction *instr) in validate_instr()
|
D | ir3_image.c | 42 struct ir3_instruction * 66 struct ir3_instruction *
|
D | ir3_print.c | 66 static void print_instr_name(struct ir3_instruction *instr, bool flags) in print_instr_name() 224 print_instr(struct ir3_instruction *instr, int lvl) in print_instr() 312 void ir3_print_instr(struct ir3_instruction *instr) in ir3_print_instr()
|
D | ir3_parser.y | 64 static struct ir3_instruction *instr; /* current instruction */ 79 static struct ir3_instruction * new_instr(opc_t opc) in new_instr() 129 static struct ir3_instruction * parse_type_type(struct ir3_instruction *instr, in parse_type_type()
|
/external/mesa3d/src/freedreno/ir3/tests/ |
D | delay.c | 120 struct ir3_instruction *regfile[2 * MAX_REG] = {}; in regs_to_ssa() 129 struct ir3_instruction *src = regfile[regn(reg)]; in regs_to_ssa() 137 struct ir3_instruction *collect = in regs_to_ssa() 157 struct ir3_instruction *split = in regs_to_ssa() 193 struct ir3_instruction *last = NULL; in main()
|
/external/mesa3d/docs/drivers/freedreno/ |
D | ir3-notes.rst | 106 ``ir3_instruction`` 127 Iterate each instruction's SSA source ``ir3_instruction``\s. This skips
|