Lines Matching defs:block
64 /* Branch targets: the start of a block, the start of a loop (continue), the end of a loop (break). Value is one of TARGET_ */
81 * Notably, it allows registers to be specified as block local SSA, for code
94 /* Instruction arguments represented as block-local SSA
201 /* Indicates this is a fixed-function fragment epilogue block */
204 /* Are helper invocations required by this block? */
272 /* List of midgard_instructions emitted for the current block */
275 /* If there is a preset after block, use this, otherwise emit_block will create one if NULL */
314 /* Per-block live_in/live_out */
319 /* Append instruction to end of current block */
371 #define mir_foreach_instr_in_block(block, v) \
372 list_for_each_entry(struct midgard_instruction, v, &block->base.instructions, link)
373 #define mir_foreach_instr_in_block_rev(block, v) \
374 list_for_each_entry_rev(struct midgard_instruction, v, &block->base.instructions, link)
376 #define mir_foreach_instr_in_block_safe(block, v) \
377 list_for_each_entry_safe(struct midgard_instruction, v, &block->base.instructions, link)
379 #define mir_foreach_instr_in_block_safe_rev(block, v) \
380 list_for_each_entry_safe_rev(struct midgard_instruction, v, &block->base.instructions, link)
382 #define mir_foreach_instr_in_block_from(block, v, from) \
383 list_for_each_entry_from(struct midgard_instruction, v, from, &block->base.instructions, link)
385 #define mir_foreach_instr_in_block_from_rev(block, v, from) \
386 list_for_each_entry_from_rev(struct midgard_instruction, v, from, &block->base.instructions, link)
388 #define mir_foreach_bundle_in_block(block, v) \
389 util_dynarray_foreach(&block->bundles, midgard_bundle, v)
391 #define mir_foreach_bundle_in_block_rev(block, v) \
392 util_dynarray_foreach_reverse(&block->bundles, midgard_bundle, v)
394 #define mir_foreach_instr_in_block_scheduled_rev(block, v) \
397 mir_foreach_bundle_in_block_rev(block, _bundle) \
425 mir_last_in_block(struct midgard_block *block)
427 return list_last_entry(&block->base.instructions, struct midgard_instruction, link);
514 void mir_print_block(midgard_block *block);
519 midgard_instruction *mir_insert_instruction_before_scheduled(compiler_context *ctx, midgard_block *block, midgard_instruction *tag, midgard_instruction ins);
520 midgard_instruction *mir_insert_instruction_after_scheduled(compiler_context *ctx, midgard_block *block, midgard_instruction *tag, midgard_instruction ins);
635 bool mir_is_live_after(compiler_context *ctx, midgard_block *block, midgard_instruction *start, int src);
644 midgard_lower_derivatives(compiler_context *ctx, midgard_block *block);
655 midgard_block *block,
668 bool midgard_opt_copy_prop(compiler_context *ctx, midgard_block *block);
669 bool midgard_opt_combine_projection(compiler_context *ctx, midgard_block *block);
670 bool midgard_opt_varying_projection(compiler_context *ctx, midgard_block *block);
672 bool midgard_opt_dead_move_eliminate(compiler_context *ctx, midgard_block *block);