Lines Matching defs:block
280 foreach_block (block, &shader->block_list) {
281 foreach_instr (instr, &block->instr_list) {
297 foreach_block (block, &shader->block_list) {
300 foreach_instr (instr, &block->instr_list) {
418 insert_instr(struct ir3_block *block, struct ir3_instruction *instr)
420 struct ir3 *shader = block->shader;
424 list_addtail(&instr->node, &block->instr_list);
433 struct ir3_block *block = ir3_alloc(shader, sizeof(*block));
435 block->serialno = ++shader->block_count;
437 block->shader = shader;
438 list_inithead(&block->node);
439 list_inithead(&block->instr_list);
440 return block;
444 ir3_block_add_predecessor(struct ir3_block *block, struct ir3_block *pred)
446 array_insert(block, block->predecessors, pred);
450 ir3_block_add_physical_predecessor(struct ir3_block *block,
453 array_insert(block, block->physical_predecessors, pred);
457 ir3_block_remove_predecessor(struct ir3_block *block, struct ir3_block *pred)
459 for (unsigned i = 0; i < block->predecessors_count; i++) {
460 if (block->predecessors[i] == pred) {
461 if (i < block->predecessors_count - 1) {
462 block->predecessors[i] =
463 block->predecessors[block->predecessors_count - 1];
466 block->predecessors_count--;
473 ir3_block_remove_physical_predecessor(struct ir3_block *block, struct ir3_block *pred)
475 for (unsigned i = 0; i < block->physical_predecessors_count; i++) {
476 if (block->physical_predecessors[i] == pred) {
477 if (i < block->physical_predecessors_count - 1) {
478 block->physical_predecessors[i] =
479 block->physical_predecessors[block->physical_predecessors_count - 1];
482 block->physical_predecessors_count--;
489 ir3_block_get_pred_index(struct ir3_block *block, struct ir3_block *pred)
491 for (unsigned i = 0; i < block->predecessors_count; i++) {
492 if (block->predecessors[i] == pred) {
501 instr_create(struct ir3_block *block, opc_t opc, int ndst, int nsrc)
509 char *ptr = ir3_alloc(block->shader, sz);
525 ir3_instr_create(struct ir3_block *block, opc_t opc, int ndst, int nsrc)
527 struct ir3_instruction *instr = instr_create(block, opc, ndst, nsrc);
528 instr->block = block;
530 insert_instr(block, instr);
538 instr->block, instr->opc, instr->dsts_count, instr->srcs_count);
547 insert_instr(instr->block, new_instr);
588 struct ir3 *shader = instr->block->shader;
600 struct ir3 *shader = instr->block->shader;
633 struct ir3 *ir = instr->block->shader;
635 assert(instr->block == addr->block);
654 ir3_block_clear_mark(struct ir3_block *block)
656 foreach_instr (instr, &block->instr_list)
663 foreach_block (block, &ir->block_list) {
664 ir3_block_clear_mark(block);
672 foreach_block (block, &ir->block_list) {
673 block->start_ip = cnt;
674 foreach_instr (instr, &block->instr_list) {
677 block->end_ip = cnt;
683 * beginning of each block, where values become live, and at the end where
685 * live-out at the end of a block from being treated as if they were
695 foreach_block (block, &ir->block_list) {
696 block->start_ip = cnt++;
697 foreach_instr (instr, &block->instr_list) {
700 block->end_ip = cnt++;
721 foreach_block (block, &ir->block_list)
722 foreach_instr (instr, &block->instr_list)
725 foreach_block (block, &ir->block_list) {
726 foreach_instr (instr, &block->instr_list) {
863 struct ir3_compiler *compiler = instr->block->shader->compiler;
881 * same block (since we can't propagate address register values
893 if (src->address->def->instr->block != instr->block)