Lines Matching refs:state

43    /** current control flow state */
60 visit_cf_list(struct exec_list *list, struct divergence_state *state);
755 visit_jump(nir_jump_instr *jump, struct divergence_state *state)
759 if (state->divergent_loop_continue)
761 if (state->divergent_loop_cf)
762 state->divergent_loop_continue = true;
763 return state->divergent_loop_continue;
765 if (state->divergent_loop_break)
767 if (state->divergent_loop_cf)
768 state->divergent_loop_break = true;
769 return state->divergent_loop_break;
817 visit_block(nir_block *block, struct divergence_state *state)
826 if (state->first_visit)
830 has_changed |= visit_jump(nir_instr_as_jump(instr), state);
832 has_changed |= update_instr_divergence(state->shader, instr);
940 visit_if(nir_if *if_stmt, struct divergence_state *state)
944 struct divergence_state then_state = *state;
948 struct divergence_state else_state = *state;
957 if (state->first_visit)
964 state->divergent_loop_continue |= then_state.divergent_loop_continue ||
966 state->divergent_loop_break |= then_state.divergent_loop_break ||
972 state->divergent_loop_cf |= state->divergent_loop_continue;
978 visit_loop(nir_loop *loop, struct divergence_state *state)
991 if (!state->first_visit && phi->dest.ssa.divergent)
1003 /* setup loop state */
1004 struct divergence_state loop_state = *state;
1034 if (state->first_visit)
1046 visit_cf_list(struct exec_list *list, struct divergence_state *state)
1053 has_changed |= visit_block(nir_cf_node_as_block(node), state);
1056 has_changed |= visit_if(nir_cf_node_as_if(node), state);
1059 has_changed |= visit_loop(nir_cf_node_as_loop(node), state);
1074 struct divergence_state state = {
1083 visit_cf_list(&nir_shader_get_entrypoint(shader)->body, &state);