Lines Matching defs:state

205 add_dep(nir_deps_state *state,
214 if (state->dir == F)
222 add_read_dep(nir_deps_state *state,
226 add_dep(state, before, after);
230 add_write_dep(nir_deps_state *state,
234 add_dep(state, *before, after);
241 nir_deps_state *state = in_state;
246 struct hash_entry *entry = _mesa_hash_table_search(state->reg_map,
253 nir_schedule_get_node(state->scoreboard->instr_map,
256 add_dep(state, dst_n, src_n);
264 nir_deps_state *state = in_state;
270 nir_schedule_get_node(state->scoreboard->instr_map,
273 struct hash_entry *entry = _mesa_hash_table_search(state->reg_map,
276 _mesa_hash_table_insert(state->reg_map, dest->reg.reg, dest_n);
281 add_write_dep(state, before, dest_n);
289 nir_deps_state *state = in_state;
290 struct hash_table *instr_map = state->scoreboard->instr_map;
297 add_read_dep(state, def_n, use_n);
304 nir_schedule_get_class_dep(nir_deps_state *state,
307 for (struct nir_schedule_class_dep *class_dep = state->class_deps;
315 ralloc(state->reg_map, struct nir_schedule_class_dep);
319 class_dep->next = state->class_deps;
321 state->class_deps = class_dep;
327 nir_schedule_intrinsic_deps(nir_deps_state *state,
330 nir_schedule_node *n = nir_schedule_get_node(state->scoreboard->instr_map,
332 const nir_schedule_options *options = state->scoreboard->options;
338 nir_schedule_get_class_dep(state, dep.klass);
342 add_read_dep(state, class_dep->node, n);
345 add_write_dep(state, &class_dep->node, n);
371 add_write_dep(state, &state->discard, n);
372 add_write_dep(state, &state->unknown_intrinsic, n);
379 if ((state->scoreboard->options->stages_with_shared_io_memory &
380 (1 << state->scoreboard->shader->info.stage)))
381 add_write_dep(state, &state->load_input, n);
384 add_read_dep(state, state->discard, n);
390 add_read_dep(state, state->load_input, n);
398 add_read_dep(state, state->store_shared, n);
403 add_write_dep(state, &state->store_shared, n);
413 add_write_dep(state, &state->store_shared, n);
416 add_write_dep(state, &state->unknown_intrinsic, n);
423 add_write_dep(state, &state->store_shared, n);
426 add_write_dep(state, &state->unknown_intrinsic, n);
436 add_write_dep(state, &state->unknown_intrinsic, n);
449 nir_schedule_calculate_deps(nir_deps_state *state, nir_schedule_node *n)
456 if (state->dir == F)
457 nir_foreach_ssa_def(instr, nir_schedule_ssa_deps, state);
459 /* For NIR regs, track the last writer in the scheduler state so that we
463 nir_foreach_src(instr, nir_schedule_reg_src_deps, state);
465 nir_foreach_dest(instr, nir_schedule_reg_dest_deps, state);
471 add_read_dep(state, state->jump, n);
484 add_read_dep(state, state->discard, n);
488 add_write_dep(state, &state->jump, n);
504 nir_schedule_intrinsic_deps(state, nir_instr_as_intrinsic(instr));
512 nir_deps_state state = {
521 nir_schedule_calculate_deps(&state, node);
524 ralloc_free(state.reg_map);
530 nir_deps_state state = {
539 nir_schedule_calculate_deps(&state, node);
542 ralloc_free(state.reg_map);
553 nir_schedule_regs_freed_state *state = in_state;
554 nir_schedule_scoreboard *scoreboard = state->scoreboard;
559 state->regs_freed += nir_schedule_src_pressure(src);
568 nir_schedule_regs_freed_state *state = in_state;
570 state->regs_freed -= nir_schedule_def_pressure(def);
578 nir_schedule_regs_freed_state *state = in_state;
579 nir_schedule_scoreboard *scoreboard = state->scoreboard;
588 state->regs_freed -= nir_schedule_dest_pressure(dest);
596 nir_schedule_regs_freed_state state = {
600 nir_foreach_src(n->instr, nir_schedule_regs_freed_src_cb, &state);
602 nir_foreach_ssa_def(n->instr, nir_schedule_regs_freed_def_cb, &state);
604 nir_foreach_dest(n->instr, nir_schedule_regs_freed_dest_cb, &state);
606 return state.regs_freed;
864 nir_schedule_mark_src_scheduled(nir_src *src, void *state)
866 nir_schedule_scoreboard *scoreboard = state;
912 nir_schedule_mark_def_scheduled(nir_ssa_def *def, void *state)
914 nir_schedule_scoreboard *scoreboard = state;
923 nir_schedule_mark_dest_scheduled(nir_dest *dest, void *state)
925 nir_schedule_scoreboard *scoreboard = state;
1049 nir_schedule_dag_max_delay_cb(struct dag_node *node, void *state)
1093 nir_schedule_ssa_def_init_scoreboard(nir_ssa_def *def, void *state)
1095 nir_schedule_scoreboard *scoreboard = state;