Lines Matching refs:instr

37 mark_array_use(struct ir3_instruction *instr, struct ir3_register *reg)
41 ir3_lookup_array(instr->block->shader, reg->array.id);
47 instr_dce(struct ir3_instruction *instr, bool falsedep)
51 instr->flags &= ~IR3_INSTR_UNUSED;
53 if (ir3_instr_check_mark(instr))
56 if (writes_gpr(instr))
57 mark_array_use(instr, instr->dsts[0]); /* dst */
59 foreach_src (reg, instr)
60 mark_array_use(instr, reg); /* src */
62 foreach_ssa_src_n (src, i, instr) {
63 instr_dce(src, __is_false_dep(instr, i));
71 foreach_instr_safe (instr, &block->instr_list) {
72 if (instr->opc == OPC_END || instr->opc == OPC_CHSH ||
73 instr->opc == OPC_CHMASK)
75 if (instr->flags & IR3_INSTR_UNUSED) {
76 if (instr->opc == OPC_META_SPLIT) {
77 struct ir3_instruction *src = ssa(instr->srcs[0]);
82 src->dsts[0]->wrmask &= ~(1 << instr->split.off);
87 foreach_ssa_use (use, instr)
89 if (*srcp == instr)
92 list_delinit(&instr->node);
111 foreach_instr (instr, &block->instr_list) {
115 if (so->num_sampler_prefetch && (instr->opc == OPC_META_INPUT) &&
116 (instr->input.sysval == SYSTEM_VALUE_BARYCENTRIC_PERSP_PIXEL))
118 instr->flags |= IR3_INSTR_UNUSED;
149 foreach_instr (instr, &block->instr_list) {
150 if (instr->opc != OPC_META_SPLIT)
153 struct ir3_instruction *src = ssa(instr->srcs[0]);
157 instr->srcs[0]->wrmask = src->dsts[0]->wrmask;
162 struct ir3_instruction *instr = ir->a0_users[i];
163 if (instr && (instr->flags & IR3_INSTR_UNUSED))
168 struct ir3_instruction *instr = ir->a1_users[i];
169 if (instr && (instr->flags & IR3_INSTR_UNUSED))
174 struct ir3_instruction *instr = ir->predicates[i];
175 if (instr && (instr->flags & IR3_INSTR_UNUSED))