diff options
author | Jason Ekstrand <[email protected]> | 2017-02-15 10:04:47 -0800 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2017-03-01 17:00:20 -0800 |
commit | c75f965ab7d15f77381c068c936c97002a17de76 (patch) | |
tree | e6c77cd092d245916405b00a17379a9eab2a0086 /src/compiler | |
parent | e27c716ad70c50597bcec5bfa71d8926460109ff (diff) |
glsl/nir: Use nir_builder's new control-flow helpers
Reviewed-by: Samuel Iglesias Gonsálvez <[email protected]>
Diffstat (limited to 'src/compiler')
-rw-r--r-- | src/compiler/glsl/glsl_to_nir.cpp | 38 |
1 files changed, 11 insertions, 27 deletions
diff --git a/src/compiler/glsl/glsl_to_nir.cpp b/src/compiler/glsl/glsl_to_nir.cpp index 00f20dabd66..fc2a2c4dbe0 100644 --- a/src/compiler/glsl/glsl_to_nir.cpp +++ b/src/compiler/glsl/glsl_to_nir.cpp @@ -520,31 +520,19 @@ nir_visitor::visit(ir_function_signature *ir) void nir_visitor::visit(ir_loop *ir) { - nir_loop *loop = nir_loop_create(this->shader); - nir_builder_cf_insert(&b, &loop->cf_node); - - b.cursor = nir_after_cf_list(&loop->body); + nir_push_loop(&b); visit_exec_list(&ir->body_instructions, this); - b.cursor = nir_after_cf_node(&loop->cf_node); + nir_pop_loop(&b, NULL); } void nir_visitor::visit(ir_if *ir) { - nir_src condition = - nir_src_for_ssa(evaluate_rvalue(ir->condition)); - - nir_if *if_stmt = nir_if_create(this->shader); - if_stmt->condition = condition; - nir_builder_cf_insert(&b, &if_stmt->cf_node); - - b.cursor = nir_after_cf_list(&if_stmt->then_list); + nir_push_if(&b, evaluate_rvalue(ir->condition)); visit_exec_list(&ir->then_instructions, this); - - b.cursor = nir_after_cf_list(&if_stmt->else_list); + nir_push_else(&b, NULL); visit_exec_list(&ir->else_instructions, this); - - b.cursor = nir_after_cf_node(&if_stmt->cf_node); + nir_pop_if(&b, NULL); } void @@ -1193,11 +1181,9 @@ nir_visitor::visit(ir_assignment *ir) copy->variables[1] = evaluate_deref(©->instr, ir->rhs); if (ir->condition) { - nir_if *if_stmt = nir_if_create(this->shader); - if_stmt->condition = nir_src_for_ssa(evaluate_rvalue(ir->condition)); - nir_builder_cf_insert(&b, &if_stmt->cf_node); - nir_instr_insert_after_cf_list(&if_stmt->then_list, ©->instr); - b.cursor = nir_after_cf_node(&if_stmt->cf_node); + nir_push_if(&b, evaluate_rvalue(ir->condition)); + nir_builder_instr_insert(&b, ©->instr); + nir_pop_if(&b, NULL); } else { nir_builder_instr_insert(&b, ©->instr); } @@ -1232,11 +1218,9 @@ nir_visitor::visit(ir_assignment *ir) store->src[0] = nir_src_for_ssa(src); if (ir->condition) { - nir_if *if_stmt = nir_if_create(this->shader); - if_stmt->condition = nir_src_for_ssa(evaluate_rvalue(ir->condition)); - nir_builder_cf_insert(&b, &if_stmt->cf_node); - nir_instr_insert_after_cf_list(&if_stmt->then_list, &store->instr); - b.cursor = nir_after_cf_node(&if_stmt->cf_node); + nir_push_if(&b, evaluate_rvalue(ir->condition)); + nir_builder_instr_insert(&b, &store->instr); + nir_pop_if(&b, NULL); } else { nir_builder_instr_insert(&b, &store->instr); } |