Lines Matching defs:src
345 physreg_t src;
700 .src = interval->physreg_start,
1399 /* For ALU and SFU instructions, if the src reg is avail to pick, use it.
1406 struct ir3_register *src = reg->instr->srcs[i];
1407 if (!ra_reg_is_src(src))
1409 if (ra_get_file(ctx, src) == file && reg_size(src) >= size) {
1410 struct ra_interval *src_interval = &ctx->intervals[src->def->name];
1468 mark_src_killed(struct ra_ctx *ctx, struct ir3_register *src)
1470 struct ra_interval *interval = &ctx->intervals[src->def->name];
1472 if (!(src->flags & IR3_REG_FIRST_KILL) || interval->is_killed ||
1477 ra_file_mark_killed(ra_get_file(ctx, src), interval);
1535 .src = tied_physreg,
1564 struct ir3_register *src)
1566 struct ra_interval *interval = &ctx->intervals[src->def->name];
1567 struct ra_file *file = ra_get_file(ctx, src);
1569 struct ir3_register *tied = src->tied;
1578 assign_reg(instr, src, ra_physreg_to_num(physreg, src->flags));
1580 if (src->flags & IR3_REG_FIRST_KILL)
1616 assign_reg(pcopy, reg, ra_physreg_to_num(entry->src, reg->flags));
1628 ra_foreach_src (src, instr) {
1629 mark_src_killed(ctx, src);
1646 ra_foreach_src_rev (src, instr) {
1647 assign_src(ctx, instr, src);
1662 struct ir3_register *src = instr->srcs[0];
1664 if (dst->merge_set == NULL || src->def->merge_set != dst->merge_set) {
1669 struct ra_interval *src_interval = &ctx->intervals[src->def->name];
1672 assign_src(ctx, instr, src);
1675 ctx, dst, physreg - src->def->merge_set_offset + dst->merge_set_offset);
1707 ra_foreach_src (src, instr) {
1708 if (src->flags & IR3_REG_FIRST_KILL) {
1709 mark_src_killed(ctx, src);
1712 struct ra_interval *interval = &ctx->intervals[src->def->name];
1714 if (src->def->merge_set != dst_set || interval->is_killed)
1729 ra_file_mark_killed(ra_get_file(ctx, src), interval);
1739 ra_foreach_src (src, instr) {
1740 struct ra_interval *interval = &ctx->intervals[src->def->name];
1746 if (interval != &ctx->intervals[src->def->name] ||
1747 !(src->flags & IR3_REG_KILL)) {
1748 ra_file_unmark_killed(ra_get_file(ctx, src), interval);
1752 ra_foreach_src_rev (src, instr) {
1753 assign_src(ctx, instr, src);
1783 ra_foreach_src_rev (src, instr) {
1784 assign_src(ctx, instr, src);
1840 ra_foreach_src_rev (src, instr)
1841 assign_src(ctx, instr, src);
1861 handle_precolored_source(struct ra_ctx *ctx, struct ir3_register *src)
1863 struct ra_file *file = ra_get_file(ctx, src);
1864 struct ra_interval *interval = &ctx->intervals[src->def->name];
1865 physreg_t physreg = ra_reg_get_physreg(src);
1867 if (ra_interval_get_num(interval) == src->num)
1874 if (!get_reg_specified(ctx, file, src, physreg, true)) {
1876 if (!try_evict_regs(ctx, file, src, physreg, &eviction_count, true,
1894 ra_foreach_src (src, instr) {
1895 assert(src->num != INVALID_REG);
1896 handle_precolored_source(ctx, src);
1899 ra_foreach_src (src, instr) {
1900 struct ra_file *file = ra_get_file(ctx, src);
1901 struct ra_interval *interval = &ctx->intervals[src->def->name];
1902 if (src->flags & IR3_REG_FIRST_KILL)
2039 insert_liveout_copy(struct ir3_block *block, physreg_t dst, physreg_t src,
2073 assign_reg(pcopy, src_reg, ra_physreg_to_num(src, reg->flags));
2454 ra_foreach_src_rev (src, instr) {
2462 struct ir3_reg_interval *interval = &intervals[src->def->name];
2467 if (src->flags & IR3_REG_FIRST_KILL)
2468 ir3_reg_interval_remove(ctx, &intervals[src->def->name]);