Lines Matching defs:state

124 src_is_invariant(nir_src *src, void *state)
127 return def_is_invariant(src->ssa, (nir_loop *)state);
195 lcssa_state *state = void_state;
199 if (state->skip_invariants &&
200 (def->bit_size != 1 || state->skip_bool_invariants)) {
208 use->parent_instr->block == state->block_after_loop) {
212 if (!is_use_inside_loop(use, state->loop)) {
218 if (!is_if_use_inside_loop(use, state->loop)) {
228 nir_phi_instr *phi = nir_phi_instr_create(state->shader);
235 uint32_t num_exits = state->block_after_loop->predecessors->entries;
237 nir_phi_instr_add_src(phi, state->exit_blocks[i], nir_src_for_ssa(def));
240 nir_instr_insert_before_block(state->block_after_loop, &phi->instr);
246 nir_deref_instr_create(state->shader, nir_deref_type_cast);
257 nir_instr_insert(nir_after_phis(state->block_after_loop), &cast->instr);
266 state->block_after_loop == use->parent_instr->block) {
270 if (!is_use_inside_loop(use, state->loop)) {
276 if (!is_if_use_inside_loop(use, state->loop)) {
281 state->progress = true;
286 setup_loop_state(lcssa_state *state, nir_loop *loop)
288 state->loop = loop;
289 state->block_after_loop =
292 ralloc_free(state->exit_blocks);
293 state->exit_blocks = nir_block_get_predecessors_sorted(state->block_after_loop, state);
297 convert_to_lcssa(nir_cf_node *cf_node, lcssa_state *state)
305 convert_to_lcssa(nested_node, state);
307 convert_to_lcssa(nested_node, state);
311 if (state->skip_invariants) {
321 convert_to_lcssa(nested_node, state);
323 setup_loop_state(state, loop);
326 if (state->skip_invariants) {
345 nir_foreach_ssa_def(instr, convert_loop_exit_for_ssa, state);
348 if (state->skip_invariants && instr->pass_flags == invariant)
355 if (state->skip_invariants) {
356 nir_foreach_instr(instr, state->block_after_loop) {
377 lcssa_state *state = rzalloc(NULL, lcssa_state);
378 setup_loop_state(state, loop);
379 state->shader = impl->function->shader;
380 state->skip_invariants = false;
381 state->skip_bool_invariants = false;
385 nir_foreach_ssa_def(instr, convert_loop_exit_for_ssa, state);
388 ralloc_free(state);
395 lcssa_state *state = rzalloc(NULL, lcssa_state);
396 state->shader = shader;
397 state->skip_invariants = skip_invariants;
398 state->skip_bool_invariants = skip_bool_invariants;
404 state->progress = false;
408 convert_to_lcssa(node, state);
410 if (state->progress) {
419 ralloc_free(state);