Home | History | Annotate | Download | only in nir

Lines Matching refs:block

35  * blocks so that the destinations of a phi are in the livein of the block
37 * corresponding block. By formulating the liveness information in this
42 * block but not in the live-in of the block containing the phi node.
65 /* Initialize the liveness data to zero and add the given block to the
69 init_liveness_block(nir_block *block,
72 block->live_in = reralloc(block, block->live_in, BITSET_WORD,
74 memset(block->live_in, 0, state->bitset_words * sizeof(BITSET_WORD));
76 block->live_out = reralloc(block, block->live_out, BITSET_WORD,
78 memset(block->live_out, 0, state->bitset_words * sizeof(BITSET_WORD));
80 nir_block_worklist_push_head(&state->worklist, block);
114 * block act "in parallel". When we propagate from the live_in of one
115 * block to the live out of the other, we have to kill any writes from phis
167 nir_foreach_block(block, impl) {
168 nir_foreach_instr(instr, block)
179 nir_foreach_block(block, impl) {
180 init_liveness_block(block, &state);
186 * block in the function implementation has been pushed onto the
195 nir_block *block = nir_block_worklist_pop_head(&state.worklist);
197 memcpy(block->live_in, block->live_out,
200 nir_if *following_if = nir_block_get_following_if(block);
202 set_src_live(&following_if->condition, block->live_in);
204 nir_foreach_instr_reverse(instr, block) {
212 nir_foreach_ssa_def(instr, set_ssa_def_dead, block->live_in);
213 nir_foreach_src(instr, set_src_live, block->live_in);
216 /* Walk over all of the predecessors of the current block updating
222 set_foreach(block->predecessors, entry) {
224 if (propagate_across_edge(pred, block, &state))
258 if (BITSET_TEST(instr->block->live_out, def->live_index)) {
259 /* Since def dominates instr, if def is in the liveout of the block,
264 if (BITSET_TEST(instr->block->live_in, def->live_index) ||
265 def->parent_instr->block == instr->block) {
266 /* In this case it is either live coming into instr's block or it
267 * is defined in the same block. In this case, we simply need to