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 foreach_dst (dst, instr) {
58 mark_array_use(instr, dst);
61 foreach_src (reg, instr)
62 mark_array_use(instr, reg); /* src */
64 foreach_ssa_src_n (src, i, instr) {
65 instr_dce(src, __is_false_dep(instr, i));
73 foreach_instr_safe (instr, &block->instr_list) {
74 if (instr->opc == OPC_END || instr->opc == OPC_CHSH ||
75 instr->opc == OPC_CHMASK)
77 if (instr->flags & IR3_INSTR_UNUSED) {
78 if (instr->opc == OPC_META_SPLIT) {
79 struct ir3_instruction *src = ssa(instr->srcs[0]);
84 src->dsts[0]->wrmask &= ~(1 << instr->split.off);
89 foreach_ssa_use (use, instr)
91 if (*srcp == instr)
94 list_delinit(&instr->node);
113 foreach_instr (instr, &block->instr_list) {
114 if (instr->opc == OPC_META_INPUT) {
119 instr->input.sysval == SYSTEM_VALUE_BARYCENTRIC_PERSP_PIXEL)
123 if (instr->input.sysval == SYSTEM_VALUE_GS_HEADER_IR3)
127 instr->flags |= IR3_INSTR_UNUSED;
158 foreach_instr (instr, &block->instr_list) {
159 if (instr->opc != OPC_META_SPLIT)
162 struct ir3_instruction *src = ssa(instr->srcs[0]);
166 instr->srcs[0]->wrmask = src->dsts[0]->wrmask;
171 struct ir3_instruction *instr = ir->a0_users[i];
172 if (instr && (instr->flags & IR3_INSTR_UNUSED))
177 struct ir3_instruction *instr = ir->a1_users[i];
178 if (instr && (instr->flags & IR3_INSTR_UNUSED))
183 struct ir3_instruction *instr = ir->predicates[i];
184 if (instr && (instr->flags & IR3_INSTR_UNUSED))