Lines Matching refs:ins

45                 bi_foreach_instr_in_block_safe_rev(block, ins) {
48 bi_foreach_dest(ins, d) {
49 unsigned index = bi_get_node(ins->dest[d]);
52 if (ins->op == BI_OPCODE_AXCHG_I32 ||
53 ins->op == BI_OPCODE_ACMPXCHG_I32 ||
54 ins->op == BI_OPCODE_ATOM_RETURN_I32 ||
55 ins->op == BI_OPCODE_ATOM1_RETURN_I32 ||
56 ins->op == BI_OPCODE_BLEND ||
57 ins->op == BI_OPCODE_ATEST ||
58 ins->op == BI_OPCODE_ZS_EMIT)
61 if (index < temp_count && !(live[index] & bi_writemask(ins, d)))
62 ins->dest[d] = bi_null();
64 all_null &= bi_is_null(ins->dest[d]);
67 if (all_null && !bi_side_effects(ins))
68 bi_remove_instruction(ins);
70 bi_liveness_ins_update(live, ins, temp_count);
81 bi_postra_liveness_ins(uint64_t live, bi_instr *ins)
83 bi_foreach_dest(ins, d) {
84 if (ins->dest[d].type == BI_INDEX_REGISTER) {
85 unsigned nr = bi_count_write_registers(ins, d);
86 unsigned reg = ins->dest[d].value;
91 bi_foreach_src(ins, s) {
92 if (ins->src[s].type == BI_INDEX_REGISTER) {
93 unsigned nr = bi_count_read_registers(ins, s);
94 unsigned reg = ins->src[s].value;
110 bi_foreach_instr_in_block_rev(blk, ins)
111 live = bi_postra_liveness_ins(live, ins);
160 bi_foreach_instr_in_block_rev(block, ins) {
161 if (ins->op == BI_OPCODE_DTSEL_IMM)
162 ins->dest[0] = bi_null();
164 bi_foreach_dest(ins, d) {
165 if (ins->dest[d].type != BI_INDEX_REGISTER)
168 unsigned nr = bi_count_write_registers(ins, d);
169 unsigned reg = ins->dest[d].value;
171 bool cullable = (ins->op != BI_OPCODE_BLEND);
172 cullable &= !bi_opcode_props[ins->op].sr_write;
175 ins->dest[d] = bi_null();
178 live = bi_postra_liveness_ins(live, ins);