Lines Matching defs:block

281  * ra_interval and ra_file, which are used for intra-block tracking and use
316 /* State for inter-block tracking. When we split a live range to make space
317 * for a vector, we may need to insert fixup code when a block has multiple
324 * of the block.
328 /* For loops, we need to process a block before all its predecessors have
333 * before this block is visited then we don't need to fill this out. This
338 /* True if the block has been visited and "renames" is complete.
364 struct ir3_block *block;
1594 ir3_instr_create(instr->block, OPC_META_PARALLEL_COPY,
1776 /* Parallel copies before RA should only be at the end of the block, for
1778 * the destinations in the successor block.
1910 read_register(struct ra_ctx *ctx, struct ir3_block *block,
1913 struct ra_block_state *state = &ctx->blocks[block->index];
1928 for (unsigned i = 0; i < ctx->block->predecessors_count; i++) {
1929 struct ir3_block *pred = ctx->block->predecessors[i];
1959 struct ra_block_state *state = &ctx->blocks[ctx->block->index];
2017 * of a block. For example, something like:
2039 insert_liveout_copy(struct ir3_block *block, physreg_t dst, physreg_t src,
2043 if (!list_is_empty(&block->instr_list)) {
2045 list_entry(block->instr_list.prev, struct ir3_instruction, node);
2052 block, OPC_META_PARALLEL_COPY, old_pcopy_srcs + 1, old_pcopy_srcs + 1);
2086 shared ? ctx->block->physical_predecessors : ctx->block->predecessors;
2088 ? ctx->block->physical_predecessors_count
2089 : ctx->block->predecessors_count;
2104 * header block) and both have multiple successors. We pick the
2109 * predecessor (i.e. the last block of the if) and that has
2110 * another successor (the block after the if) so we need to update
2129 BITSET_WORD *live_in = ctx->live->live_in[ctx->block->index];
2162 for (unsigned i = 0; i < ctx->block->predecessors_count; i++) {
2163 if (!ctx->blocks[ctx->block->predecessors[i]->index].visited) {
2170 struct ra_block_state *state = &ctx->blocks[ctx->block->index];
2183 if (!ctx->block->successors[i])
2186 struct ir3_block *succ = ctx->block->successors[i];
2199 insert_liveout_copy(ctx->block, new_reg, interval->physreg_start,
2223 handle_block(struct ra_ctx *ctx, struct ir3_block *block)
2225 ctx->block = block;
2227 /* Reset the register files from the last block */
2233 * live at the beginning of the block, and interfere with each other
2240 * and inputs at the same time, because the first block doesn't have
2245 foreach_instr (instr, &block->instr_list) {
2253 BITSET_FOREACH_SET (name, ctx->live->live_in[block->index],
2259 foreach_instr (instr, &block->instr_list) {
2279 d("after live-in block %u:\n", block->index);
2284 * block.
2286 foreach_instr (instr, &block->instr_list) {
2311 BITSET_FOREACH_SET (name, ctx->live->live_out[block->index],
2317 ctx->blocks[block->index].visited = true;
2422 foreach_block (block, &v->ir->block_list) {
2426 BITSET_FOREACH_SET (name, live->live_in[block->index],
2433 foreach_instr (instr, &block->instr_list) {
2625 foreach_block (block, &v->ir->block_list)
2626 handle_block(ctx, block);
2635 foreach_block (block, &v->ir->block_list) {
2636 foreach_instr (instr, &block->instr_list) {