Lines Matching refs:instr
55 is_live(BITSET_WORD *defs_live, nir_instr *instr)
57 switch (instr->type) {
62 nir_alu_instr *alu = nir_instr_as_alu(instr);
66 nir_deref_instr *deref = nir_instr_as_deref(instr);
70 nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
76 nir_tex_instr *tex = nir_instr_as_tex(instr);
80 nir_phi_instr *phi = nir_instr_as_phi(instr);
84 nir_load_const_instr *lc = nir_instr_as_load_const(instr);
88 nir_ssa_undef_instr *undef = nir_instr_as_ssa_undef(instr);
92 nir_parallel_copy_instr *pc = nir_instr_as_parallel_copy(instr);
100 unreachable("unexpected instr type");
114 nir_foreach_instr_reverse_safe(instr, block) {
115 bool live = is_live(defs_live, instr);
117 if (instr->type == nir_instr_type_phi) {
118 nir_foreach_phi_src(src, nir_instr_as_phi(instr)) {
123 nir_foreach_src(instr, mark_live_cb, defs_live);
131 instr->pass_flags = live;
133 nir_instr_remove(instr);
199 nir_foreach_instr_safe(instr, block) {
200 if (!instr->pass_flags) {
201 nir_instr_remove(instr);