Lines Matching defs:uses
474 std::vector<uint16_t> uses;
1611 /* Remove superfluous s_and when the VOPC instruction uses the same exec and thus
1726 if (!--ctx.uses[instr->definitions[0].tempId()]) {
1729 ctx.uses[op.tempId()]--;
1739 if (!ignore_uses && ctx.uses[op.tempId()] > 1)
1746 if (instr->definitions[1].isTemp() && ctx.uses[instr->definitions[1].tempId()])
1760 if (instr->definitions[1].isTemp() && ctx.uses[instr->definitions[1].tempId()])
1814 ctx.uses[op[0].id()]++;
1815 ctx.uses[op[1].id()]++;
1858 if (instr->definitions[1].isTemp() && ctx.uses[instr->definitions[1].tempId()])
1893 ctx.uses[cmp->operands[0].tempId()]++;
1894 ctx.uses[cmp->operands[1].tempId()]++;
1960 if (instr->definitions[1].isTemp() && ctx.uses[instr->definitions[1].tempId()])
2018 ctx.uses[cmp->operands[0].tempId()]++;
2020 ctx.uses[cmp->operands[1].tempId()]++;
2058 if (ctx.uses[instr->definitions[1].tempId()])
2070 ctx.uses[cmp->operands[0].tempId()]++;
2072 ctx.uses[cmp->operands[1].tempId()]++;
2236 ctx.uses[instr->operands[swap].tempId()]--;
2306 ctx.uses[instr->operands[i].tempId()]--;
2331 ctx.uses[instr->operands[swap].tempId()]--;
2353 if (instr->definitions[1].isTemp() && ctx.uses[instr->definitions[1].tempId()])
2372 ctx.uses[instr->operands[0].tempId()]--;
2403 if (ctx.uses[op2_instr->definitions[1].tempId()] || fixed_to_exec(op2_instr->operands[0]))
2410 ctx.uses[instr->operands[i].tempId()]--;
2432 if (instr->opcode == aco_opcode::s_add_i32 && ctx.uses[instr->definitions[1].tempId()])
2438 ctx.uses[op2_instr->definitions[1].tempId()])
2451 ctx.uses[instr->operands[i].tempId()]--;
2475 ctx.uses[instr->operands[i].tempId()] == 1) {
2488 ctx.uses[instr->operands[i].tempId()]--;
2495 /* Make sure the uses vector is large enough and the number of
2496 * uses properly initialized to 0.
2498 ctx.uses.push_back(0);
2527 ctx.uses[instr->operands[i].tempId()]--;
2684 ctx.uses[instr->operands[swap].tempId()]--;
2736 uint16_t uses = ctx.uses[instr->operands[i].tempId()];
2737 if (sgpr_info_id == 0 || uses < ctx.uses[sgpr_info_id]) {
2749 if (!info.is_extract() && num_sgprs && ctx.uses[sgpr_info_id] > 1 && !instr->isVOP3() &&
2784 ctx.uses[sgpr_info_id]--;
2785 ctx.uses[sgpr.id()]++;
2817 if (instr->definitions.empty() || ctx.uses[instr->definitions[0].tempId()] != 1 ||
2841 if (!ctx.uses[def_info.instr->definitions[0].tempId()])
2858 ctx.uses[def_info.instr->definitions[0].tempId()]--;
2869 if (instr->definitions.empty() || ctx.uses[instr->definitions[0].tempId()] != 1)
2877 if (!ctx.uses[def_info.instr->definitions[0].tempId()])
2904 ctx.uses[def_info.instr->definitions[0].tempId()]--;
2917 ctx.uses[extract->operands[0].tempId()] > 1)
2955 ctx.uses[extract->definitions[0].tempId()] = 0;
2986 ctx.uses[instr->operands[i].tempId()]--;
2987 if (ctx.uses[instr->operands[i].tempId()])
2988 ctx.uses[op_instr->operands[2].tempId()]++;
3052 ctx.uses[instr->operands[i].tempId()]--;
3099 vop3p->clamp && instr->operands[0].isTemp() && ctx.uses[instr->operands[0].tempId()] == 1) {
3108 ctx.uses[instr->definitions[0].tempId()]--;
3147 if (--ctx.uses[fneg->definitions[0].tempId()])
3148 ctx.uses[fneg->operands[0].tempId()]++;
3161 uint32_t uses = UINT32_MAX;
3178 if (ctx.uses[instr->operands[i].tempId()] >= uses || !check_vop3_operands(ctx, 3, op))
3189 uses = ctx.uses[instr->operands[i].tempId()];
3197 ctx.uses[mul_instr->definitions[0].tempId()]--;
3198 if (ctx.uses[mul_instr->definitions[0].tempId()]) {
3200 ctx.uses[op[0].tempId()]++;
3202 ctx.uses[op[1].tempId()]++;
3235 // this would mean that we'd have to fix the instruction uses while value propagation
3240 if (instr->definitions.empty() || is_dead(ctx.uses, instr.get()))
3253 /* if there are that many uses, there are likely better combinations */
3255 if (ctx.uses[op.tempId()] > 4) {
3264 ctx.uses[instr->operands[i].tempId()]--;
3301 ctx.uses[instr->operands[1].tempId()] == 1) {
3317 ctx.uses[mul_instr->definitions[0].tempId()]--;
3363 uint32_t uses = UINT32_MAX;
3379 ctx.uses[instr->operands[i].tempId()] >= uses)
3384 uses = ctx.uses[instr->operands[i].tempId()];
3391 ctx.uses[mul_instr->definitions[0].tempId()]--;
3392 if (ctx.uses[mul_instr->definitions[0].tempId()]) {
3394 ctx.uses[op[0].tempId()]++;
3396 ctx.uses[op[1].tempId()]++;
3465 ctx.uses[instr->operands[i].tempId()] == 1 && instr->operands[!i].isTemp() &&
3467 ctx.uses[instr->operands[i].tempId()]--;
3468 ctx.uses[ctx.info[instr->operands[i].tempId()].temp.id()]++;
3523 bool carry_out = ctx.uses[instr->definitions[1].tempId()] > 0;
3533 instr->opcode != aco_opcode::v_sub_u32 && ctx.uses[instr->definitions[1].tempId()] > 0;
3600 ctx.uses[op.tempId()]--;
3620 ctx.uses[op.tempId()]++;
3634 if (is_dead(ctx.uses, instr.get())) {
3646 if (ctx.uses[instr->definitions[i].tempId()]) {
3654 ctx.uses[instr->operands[0].tempId()] == 1) {
3667 ctx.uses[instr->operands[0].tempId()]--;
3670 ctx.uses[vec_op.tempId()]--;
3673 ctx.uses[op.tempId()]++;
3702 if (ctx.uses[mad_info->mul_temp_id] && mad_info->add_instr) {
3703 ctx.uses[mad_info->mul_temp_id]++;
3705 ctx.uses[instr->operands[0].tempId()]--;
3707 ctx.uses[instr->operands[1].tempId()]--;
3739 literal_uses = ctx.uses[instr->operands[i].tempId()];
3747 ctx.uses[instr->operands[i].tempId()] < literal_uses) {
3748 literal_uses = ctx.uses[instr->operands[i].tempId()];
3758 * uses below threshold
3761 ctx.uses[instr->operands[literal_idx].tempId()]--;
3792 /* Transform uniform bitwise boolean operations to 32-bit when there are no divergent uses. */
3793 if (instr->definitions.size() && ctx.uses[instr->definitions[0].tempId()] == 0 &&
3828 if (--ctx.uses[info.instr->definitions[0].tempId()])
3829 ctx.uses[info.instr->operands[0].tempId()]++;
3881 if (ctx.uses[op.tempId()] < literal_uses) {
3885 literal_uses = ctx.uses[op.tempId()];
3912 ctx.uses[instr->operands[i].tempId()]--;
3928 (ctx.uses[instr->operands[info->literal_idx].tempId()] == 0 || info->literal_idx == 2)) {
3962 if (op.isTemp() && ctx.info[op.tempId()].is_literal(bits) && ctx.uses[op.tempId()] == 0) {
3990 ctx.uses = dead_code_analysis(program);