Lines Matching defs:cursor
356 /* Splits a basic block at the point specified by the cursor. The "before" and
364 split_block_cursor(nir_cursor cursor,
368 switch (cursor.option) {
370 after = cursor.block;
371 before = split_block_beginning(cursor.block);
375 before = cursor.block;
376 after = split_block_end(cursor.block);
380 after = cursor.instr->block;
381 before = split_block_before_instr(cursor.instr);
388 if (nir_instr_is_last(cursor.instr)) {
389 before = cursor.instr->block;
390 after = split_block_end(cursor.instr->block);
392 after = cursor.instr->block;
393 before = split_block_before_instr(nir_instr_next(cursor.instr));
551 * Returns a cursor pointing at the end of the before block (i.e.m between the
593 nir_cf_node_insert(nir_cursor cursor, nir_cf_node *node)
597 split_block_cursor(cursor, &before, &after);
682 * Extracts everything between two cursors. Returns the cursor which is
700 * point to the same block. One is if the second cursor is an block-based
701 * cursor and, thanks to the split above, it ends up pointing to the wrong
702 * block. If it's a before_block cursor and it's in the same block as
703 * begin, then begin must also be a before_block cursor and it should be
705 * it's an after_block cursor, we need to re-adjust to ensure that it
795 * Inserts a list at a given cursor. Returns the cursor at the end of the
799 nir_cf_reinsert(nir_cf_list *cf_list, nir_cursor cursor)
804 return cursor;
807 nir_cf_node_get_function(&nir_cursor_current_block(cursor)->cf_node);
813 split_block_cursor(cursor, &before, &after);