Lines Matching defs:block
92 /** Assign registers to SSA values in a block. */
95 agx_ra_assign_local(agx_block *block, uint8_t *ssa_to_reg, uint8_t *ncomps)
99 agx_foreach_predecessor(block, pred) {
110 agx_foreach_instr_in_block(block, I) {
174 STATIC_ASSERT(sizeof(block->regs_out) == sizeof(used_regs));
175 memcpy(block->regs_out, used_regs, sizeof(used_regs));
194 * Lower phis to parallel copies at the logical end of a given block. If a block
195 * needs parallel copies inserted, a successor of the block has a phi node. To
196 * have a (nontrivial) phi node, a block must have multiple predecessors. So the
197 * edge from the block to the successor (with phi) is not the only edge entering
199 * edge must therefore be the only edge leaving the block, so the block must
203 agx_insert_parallel_copies(agx_context *ctx, agx_block *block)
210 agx_builder b = agx_init_builder(ctx, agx_after_block_logical(block));
212 agx_foreach_successor(block, succ) {
215 /* Phi nodes can only come at the start of the block */
229 unsigned pred_index = agx_predecessor_index(succ, block);
281 agx_foreach_block(ctx, block) {
282 agx_ra_assign_local(block, ssa_to_reg, ncomps);
370 agx_foreach_block(ctx, block) {
371 agx_insert_parallel_copies(ctx, block);