Lines Matching refs:clause
322 struct bi_clause_state *clause, struct bi_tuple_state *tuple) in bi_lower_cubeface() argument
344 bi_lower_atom_c(bi_context *ctx, struct bi_clause_state *clause, struct in bi_lower_atom_c() argument
363 bi_lower_atom_c1(bi_context *ctx, struct bi_clause_state *clause, struct in bi_lower_atom_c1() argument
385 struct bi_clause_state *clause, struct bi_tuple_state *tuple) in bi_lower_seg_add() argument
405 struct bi_clause_state *clause, struct bi_tuple_state *tuple) in bi_lower_dtsel() argument
762 bi_nconstants(struct bi_clause_state *clause) in bi_nconstants() argument
766 for (unsigned i = 0; i < ARRAY_SIZE(clause->consts); ++i) in bi_nconstants()
767 count_32 += clause->consts[i].constant_count; in bi_nconstants()
775 bi_space_for_more_constants(struct bi_clause_state *clause) in bi_space_for_more_constants() argument
777 return (bi_nconstants(clause) < 13 - (clause->tuple_count + 1)); in bi_space_for_more_constants()
786 bi_update_fau(struct bi_clause_state *clause, in bi_update_fau() argument
857 bi_space_for_more_constants(clause); in bi_update_fau()
1021 bi_numerically_incompatible(struct bi_clause_state *clause, bi_instr *instr) in bi_numerically_incompatible() argument
1023 return (clause->ftz != BI_FTZ_STATE_NONE) && in bi_numerically_incompatible()
1024 ((clause->ftz == BI_FTZ_STATE_ENABLE) != bi_needs_ftz(instr)); in bi_numerically_incompatible()
1036 struct bi_clause_state *clause, in bi_instr_schedulable() argument
1046 if (bi_must_message(instr) && clause->message) in bi_instr_schedulable()
1057 if (bi_numerically_incompatible(clause, instr)) in bi_instr_schedulable()
1073 for (unsigned i = 0; i < clause->access_count; ++i) { in bi_instr_schedulable()
1074 bi_index idx = clause->accesses[i]; in bi_instr_schedulable()
1088 for (unsigned i = 0; i < clause->access_count; ++i) { in bi_instr_schedulable()
1089 bi_index idx = clause->accesses[i]; in bi_instr_schedulable()
1099 if (!bi_update_fau(clause, tuple, instr, fma, false)) in bi_instr_schedulable()
1131 can_spill_to_moves &= (bi_nconstants(clause) < 13 - (clause->tuple_count + 2)); in bi_instr_schedulable()
1132 can_spill_to_moves &= (clause->tuple_count < 7); in bi_instr_schedulable()
1176 struct bi_clause_state *clause, in bi_choose_index() argument
1187 if (!bi_instr_schedulable(instr, clause, tuple, live_after_temp, fma)) in bi_choose_index()
1207 bi_pop_instr(struct bi_clause_state *clause, struct bi_tuple_state *tuple, in bi_pop_instr() argument
1210 bi_update_fau(clause, tuple, instr, fma, true); in bi_pop_instr()
1213 assert(clause->access_count + BI_MAX_SRCS + BI_MAX_DESTS <= ARRAY_SIZE(clause->accesses)); in bi_pop_instr()
1214 memcpy(clause->accesses + clause->access_count, instr->src, sizeof(instr->src)); in bi_pop_instr()
1215 clause->access_count += BI_MAX_SRCS; in bi_pop_instr()
1216 memcpy(clause->accesses + clause->access_count, instr->dest, sizeof(instr->dest)); in bi_pop_instr()
1217 clause->access_count += BI_MAX_DESTS; in bi_pop_instr()
1229 clause->ftz = bi_needs_ftz(instr) ? BI_FTZ_STATE_ENABLE : in bi_pop_instr()
1238 struct bi_clause_state *clause, in bi_take_instr() argument
1244 return bi_lower_cubeface(ctx, clause, tuple); in bi_take_instr()
1246 return bi_lower_atom_c(ctx, clause, tuple); in bi_take_instr()
1248 return bi_lower_atom_c1(ctx, clause, tuple); in bi_take_instr()
1250 return bi_lower_seg_add(ctx, clause, tuple); in bi_take_instr()
1252 return bi_lower_dtsel(ctx, clause, tuple); in bi_take_instr()
1265 bi_pop_instr(clause, tuple, mov, live_after_temp, fma); in bi_take_instr()
1275 unsigned idx = bi_choose_index(st, clause, tuple, live_after_temp, fma); in bi_take_instr()
1285 bi_pop_instr(clause, tuple, instr, live_after_temp, fma); in bi_take_instr()
1667 bi_clause *clause = rzalloc(ctx, bi_clause); in bi_schedule_clause() local
1670 const unsigned max_tuples = ARRAY_SIZE(clause->tuples); in bi_schedule_clause()
1673 clause->flow_control = BIFROST_FLOW_NBTB; in bi_schedule_clause()
1691 .last = (clause->tuple_count == 0), in bi_schedule_clause()
1701 unsigned idx = max_tuples - clause->tuple_count - 1; in bi_schedule_clause()
1703 tuple = &clause->tuples[idx]; in bi_schedule_clause()
1705 …if (clause->message && bi_opcode_props[clause->message->op].sr_read && !bi_is_null(clause->message… in bi_schedule_clause()
1706 unsigned nr = bi_count_read_registers(clause->message, 0); in bi_schedule_clause()
1707 live_after_temp |= (BITFIELD64_MASK(nr) << clause->message->src[0].value); in bi_schedule_clause()
1731 clause->message_type = in bi_schedule_clause()
1733 clause->message = tuple->add; in bi_schedule_clause()
1741 clause->dependencies |= (1 << BIFROST_SLOT_ELDEST_DEPTH); in bi_schedule_clause()
1745 clause->dependencies |= (1 << BIFROST_SLOT_ELDEST_COLOUR); in bi_schedule_clause()
1748 clause->dependencies |= (1 << BIFROST_SLOT_ELDEST_DEPTH); in bi_schedule_clause()
1749 clause->dependencies |= (1 << BIFROST_SLOT_ELDEST_COLOUR); in bi_schedule_clause()
1794 clause->tuple_count++; in bi_schedule_clause()
1811 } while(clause->tuple_count < 8); in bi_schedule_clause()
1814 if (!clause->tuple_count) in bi_schedule_clause()
1818 for (unsigned i = max_tuples - clause->tuple_count; i < max_tuples; ++i) { in bi_schedule_clause()
1819 bi_tuple *tuple = &clause->tuples[i]; in bi_schedule_clause()
1841 constant_pairs, &pcrel_idx, clause->tuple_count, in bi_schedule_clause()
1844 clause->pcrel_idx = pcrel_idx; in bi_schedule_clause()
1846 for (unsigned i = max_tuples - clause->tuple_count; i < max_tuples; ++i) { in bi_schedule_clause()
1847 bi_tuple *tuple = &clause->tuples[i]; in bi_schedule_clause()
1868 clause->constant_count = constant_words; in bi_schedule_clause()
1869 memcpy(clause->constants, constant_pairs, sizeof(constant_pairs)); in bi_schedule_clause()
1872 bi_instr *last = clause->tuples[max_tuples - 1].add; in bi_schedule_clause()
1873 clause->next_clause_prefetch = !last || (last->op != BI_OPCODE_JUMP); in bi_schedule_clause()
1874 clause->block = block; in bi_schedule_clause()
1876 clause->ftz = (clause_state.ftz == BI_FTZ_STATE_ENABLE); in bi_schedule_clause()
1880 memmove(clause->tuples, in bi_schedule_clause()
1881 clause->tuples + (max_tuples - clause->tuple_count), in bi_schedule_clause()
1882 clause->tuple_count * sizeof(clause->tuples[0])); in bi_schedule_clause()
1888 for (unsigned t = 1; t < clause->tuple_count; ++t) in bi_schedule_clause()
1889 bi_rewrite_passthrough(clause->tuples[t - 1], clause->tuples[t]); in bi_schedule_clause()
1891 return clause; in bi_schedule_clause()
1932 bi_foreach_clause_in_block(block, clause) { in bi_schedule_block()
1933 for (unsigned i = 0; i < clause->tuple_count; ++i) { in bi_schedule_block()
1934 bi_foreach_instr_in_tuple(&clause->tuples[i], ins) { in bi_schedule_block()
2050 bi_clause *clause = bi_next_clause(ctx, block, NULL); in bi_add_nop_for_atest() local
2052 if (!clause || !(clause->dependencies & ((1 << BIFROST_SLOT_ELDEST_DEPTH) | in bi_add_nop_for_atest()
2067 .block = clause->block, in bi_add_nop_for_atest()
2073 list_add(&new_clause->link, &clause->block->clauses); in bi_add_nop_for_atest()