Home | History | Annotate | Download | only in nir

Lines Matching refs:block

41    /* Number of loops this block is inside */
44 /* The last instruction inserted into this block. This is used as we
81 nir_block *block = nir_cf_node_as_block(node);
82 state->blocks[block->index].loop_depth = loop_depth;
109 gcm_pin_instructions_block(nir_block *block, struct gcm_state *state)
111 nir_foreach_instr_safe(instr, block) {
200 * scheduled and then update this instruction's block if the source
220 if (instr->block->index < src->ssa->parent_instr->block->index)
221 instr->block = src->ssa->parent_instr->block;
238 * The instructions are "scheduled" by updating their instr->block field.
258 instr->block = nir_start_block(state->impl);
288 * have to dominate the predecessor block corresponding to the phi
301 lca = nir_dominance_lca(lca, use_instr->block);
308 /* For if statements, we consider the block to be the one immediately
324 * this is dominated by the block that we chose when scheduling early.
325 * We now walk up the dominance tree and pick the lowest block that is
329 for (nir_block *block = lca; block != NULL; block = block->imm_dom) {
330 if (state->blocks[block->index].loop_depth <
332 best = block;
334 if (block == def->parent_instr->block)
337 def->parent_instr->block = best;
347 * are "scheduled" by updating their instr->block field.
395 * instruction per-block in the state structure's block_info array. When
396 * we insert an instruction in a block we insert it before the last
397 * instruction inserted in that block rather than the last instruction
421 * instructions that come after them in the block. Since the pinned
435 struct gcm_block_info *block_info = &state->blocks[instr->block->index];
443 /* Schedule it at the end of the block */
444 nir_instr *jump_instr = nir_block_last_instr(instr->block);
448 exec_list_push_tail(&instr->block->instr_list, &instr->node);
471 nir_foreach_block(block, impl) {
472 gcm_pin_instructions_block(block, &state);