}
static inline nir_cursor
-nir_before_src(nir_src *src, bool is_if_condition)
+nir_before_src(nir_src *src)
{
- if (is_if_condition) {
+ if (src->is_if) {
nir_block *prev_block =
nir_cf_node_as_block(nir_cf_node_prev(&src->parent_if->cf_node));
assert(!nir_block_ends_in_jump(prev_block));
nir_foreach_phi_src(src, phi) {
assert(num_components == src->src.ssa->num_components);
- b->cursor = nir_before_src(&src->src, false);
+ b->cursor = nir_before_src(&src->src);
nir_ssa_def *x = nir_unpack_64_2x32_split_x(b, src->src.ssa);
nir_ssa_def *y = nir_unpack_64_2x32_split_y(b, src->src.ssa);
dst_bit_size = src_bit_size;
} else if (src_bit_size != dst_bit_size) {
assert(phi_src->src.is_ssa);
- b->cursor = nir_before_src(&phi_src->src, false);
+ b->cursor = nir_before_src(&phi_src->src);
nir_op convert_op = get_bool_convert_opcode(dst_bit_size);
nir_ssa_def *new_src =
nir_build_alu(b, convert_op, phi_src->src.ssa, NULL, NULL, NULL);
nir_src *alu_use, nir_alu_instr *alu)
{
bool bool_value;
- b->cursor = nir_before_src(alu_use, alu_use->is_if);
+ b->cursor = nir_before_src(alu_use);
if (!evaluate_if_condition(nif, b->cursor, &bool_value))
return false;
{
bool progress = false;
- b->cursor = nir_before_src(use_src, use_src->is_if);
+ b->cursor = nir_before_src(use_src);
bool bool_value;
if (evaluate_if_condition(nif, b->cursor, &bool_value)) {
nir_instr_rewrite_src(src->parent_instr, src, nir_src_for_ssa(def));
continue;
}
- b->cursor = nir_before_src(src, false);
+ b->cursor = nir_before_src(src);
nir_ssa_def *new = clone_intrinsic(b, intrin);
nir_instr_rewrite_src(src->parent_instr, src, nir_src_for_ssa(new));
_mesa_hash_table_insert(visited_instrs, src->parent_instr, new);
}
nir_foreach_if_use_safe(src, &intrin->dest.ssa) {
- b->cursor = nir_before_src(src, true);
+ b->cursor = nir_before_src(src);
nir_if_rewrite_condition(src->parent_if,
nir_src_for_ssa(clone_intrinsic(b, intrin)));
}
nir_instr_rewrite_src(src->parent_instr, src, nir_src_for_ssa(def));
continue;
}
- b->cursor = nir_before_src(src, false);
+ b->cursor = nir_before_src(src);
nir_ssa_def *new = nir_build_imm(b, load_const->def.num_components,
load_const->def.bit_size,
load_const->value);
list_length(&intr->dest.ssa.uses) <= 1)
continue;
nir_foreach_use_including_if_safe(src, &intr->dest.ssa) {
- b.cursor = nir_before_src(src, src->is_if);
+ b.cursor = nir_before_src(src);
nir_ssa_def *id = nir_load_invocation_id(&b);
if (src->is_if)