Lines Matching defs:block
33 /* # of instructions in the block */
36 /* Instructions in the block */
39 /* Bitset of instructions in the block ready for scheduling */
421 bi_flatten_block(bi_block *block, unsigned *len)
423 if (list_is_empty(&block->instructions))
426 *len = list_length(&block->instructions);
431 bi_foreach_instr_in_block(block, ins)
442 bi_initialize_worklist(bi_block *block, bool inorder, bool is_blend)
445 st.instructions = bi_flatten_block(block, &st.count);
727 * block encodes a write, so effectively there is no passthrough */
1028 * the block can legally be scheduled? and of those which is the best? That is,
1664 bi_schedule_clause(bi_context *ctx, bi_block *block, struct bi_worklist st, uint64_t *live)
1874 clause->block = block;
1895 bi_schedule_block(bi_context *ctx, bi_block *block)
1897 list_inithead(&block->clauses);
1900 struct bi_worklist st = bi_initialize_worklist(block,
1910 uint64_t live = block->reg_live_out;
1912 /* Schedule as many clauses as needed to fill the block */
1914 while((u = bi_schedule_clause(ctx, block, st, &live)))
1915 list_add(&u->link, &block->clauses);
1917 /* Back-to-back bit affects only the last clause of a block,
1919 if (!list_is_empty(&block->clauses)) {
1920 bi_clause *last_clause = list_last_entry(&block->clauses, bi_clause, link);
1921 if (bi_reconverge_branches(block))
1928 bi_foreach_instr_in_block_safe(block, ins) {
1932 bi_foreach_clause_in_block(block, clause) {
1935 list_addtail(&ins->link, &block->instructions);
1940 block->scheduled = true;
2049 bi_block *block = list_first_entry(&ctx->blocks, bi_block, link);
2050 bi_clause *clause = bi_next_clause(ctx, block, NULL);
2067 .block = clause->block,
2073 list_add(&new_clause->link, &clause->block->clauses);
2082 bi_foreach_block(ctx, block) {
2083 bi_schedule_block(ctx, block);