glsl2: Replace insert_before/remove pairs with exec_node::replace_with.

This commit is contained in:
Kenneth Graunke 2010-07-19 21:44:03 -07:00
parent d5be2acae3
commit c7a18da690
6 changed files with 7 additions and 14 deletions

View File

@ -1081,8 +1081,7 @@ ast_function_expression::hir(exec_list *instructions,
all_parameters_are_constant = false;
if (result != ir) {
ir->insert_before(result);
ir->remove();
ir->replace_with(result);
}
}

View File

@ -171,8 +171,7 @@ ir_expression_flattening_visitor::visit_enter(ir_call *ir)
ir_rvalue *new_ir = operand_to_temp(ir);
if (new_ir != ir) {
ir->insert_before(new_ir);
ir->remove();
ir->replace_with(new_ir);
}
}

View File

@ -91,8 +91,7 @@ replace_return_with_assignment(ir_instruction *ir, void *data)
if (ret) {
if (ret->value) {
ir_rvalue *lhs = new(ctx) ir_dereference_variable(retval);
ret->insert_before(new(ctx) ir_assignment(lhs, ret->value, NULL));
ret->remove();
ret->replace_with(new(ctx) ir_assignment(lhs, ret->value, NULL));
} else {
/* un-valued return has to be the last return, or we shouldn't
* have reached here. (see can_inline()).

View File

@ -108,13 +108,11 @@ ir_if_return_visitor::visit_enter(ir_if *ir)
assign = new(ir) ir_assignment(new(ir) ir_dereference_variable(new_var),
then_return->value, NULL);
then_return->insert_before(assign);
then_return->remove();
then_return->replace_with(assign);
assign = new(ir) ir_assignment(new(ir) ir_dereference_variable(new_var),
else_return->value, NULL);
else_return->insert_before(assign);
else_return->remove();
else_return->replace_with(assign);
ir_dereference_variable *deref = new(ir) ir_dereference_variable(new_var);
ir->insert_after(new(ir) ir_return(deref));

View File

@ -218,8 +218,7 @@ ir_vec_index_to_cond_assign_visitor::visit_enter(ir_call *ir)
ir_rvalue *new_param = convert_vec_index_to_cond_assign(param);
if (new_param != param) {
param->insert_before(new_param);
param->remove();
param->replace_with(new_param);
}
}

View File

@ -121,8 +121,7 @@ ir_vec_index_to_swizzle_visitor::visit_enter(ir_call *ir)
ir_rvalue *new_param = convert_vec_index_to_swizzle(param);
if (new_param != param) {
param->insert_before(new_param);
param->remove();
param->replace_with(new_param);
}
}