Home
last modified time | relevance | path

Searched refs:ir3_instruction (Results 1 – 25 of 26) sorted by relevance

12

/external/mesa3d/src/freedreno/ir3/
Dir3_context.h64 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 …]
Dir3.h43 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 …]
Dir3_context.c177 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 …]
Dir3_sched.c90 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 …]
Dir3_group.c34 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 …]
Dir3_a6xx.c43 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 …]
Dir3_a4xx.c40 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 …]
Dir3_cp_postsched.c49 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()
Dir3_delay.c44 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 …]
Dir3_cp.c56 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 …]
Dir3_compiler_nir.c43 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 …]
Dir3_legalize.c89 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 …]
Dir3_dce.c37 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()
Dir3_cf.c29 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()
Dir3_ra.c106 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 …]
Dir3_ra.h138 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()
Dir3.c132 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 …]
Dir3_postsched.c70 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()
Dir3_image.h34 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);
Dir3_validate.c34 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()
Dir3_image.c42 struct ir3_instruction *
66 struct ir3_instruction *
Dir3_print.c66 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()
Dir3_parser.y64 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/
Ddelay.c120 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/
Dir3-notes.rst106 ``ir3_instruction``
127 Iterate each instruction's SSA source ``ir3_instruction``\s. This skips

12