Lines Matching defs:block
31 * predecessor block, so the live_out for that block contains phi sources.
33 * of the block, so that live_in does *not* contain phi destinations. This
35 * treated very differently by RA at the beginning of a block.
39 compute_block_liveness(struct ir3_liveness *live, struct ir3_block *block,
42 memcpy(tmp_live, live->live_out[block->index],
46 foreach_instr_rev (instr, &block->instr_list) {
55 /* Phi node uses occur after the predecessor block */
74 memcpy(live->live_in[block->index], tmp_live,
78 for (unsigned i = 0; i < block->predecessors_count; i++) {
79 const struct ir3_block *pred = block->predecessors[i];
87 foreach_instr (phi, &block->instr_list) {
100 for (unsigned i = 0; i < block->physical_predecessors_count; i++) {
101 const struct ir3_block *pred = block->physical_predecessors[i];
129 foreach_block (block, &ir->block_list) {
130 block->index = block_count++;
131 foreach_instr (instr, &block->instr_list) {
146 foreach_block (block, &ir->block_list) {
147 block->index = i++;
148 live->live_in[block->index] =
150 live->live_out[block->index] =
157 foreach_block_rev (block, &ir->block_list) {
159 compute_block_liveness(live, block, tmp_live, bitset_words);
174 if (BITSET_TEST(live->live_out[instr->block->index], def->name))
177 /* If it's not live in and not defined in the same block then the live
180 if (def->instr->block != instr->block &&
181 !BITSET_TEST(live->live_in[instr->block->index], def->name))
185 * "instr"'s block and we have to check if it's before or after.
187 foreach_instr_rev (test_instr, &instr->block->instr_list) {