/third_party/mesa3d/src/amd/compiler/ |
D | aco_optimizer.cpp | 626 ssa_info& info = ctx.info[instr->definitions[i].tempId()]; in to_VOP3() 651 ssa_info& info = ctx.info[instr->definitions[i].tempId()]; in to_SDWA() 710 if (op.tempId() != sgpr[0] && op.tempId() != sgpr[1]) { in check_vop3_operands() 712 sgpr[num_sgprs++] = op.tempId(); in check_vop3_operands() 793 ctx.info[add_instr->operands[i].tempId()].is_constant_or_literal(32)) { in parse_base_offset() 794 *offset = ctx.info[add_instr->operands[i].tempId()].val * (uint32_t)(is_sub ? -1 : 1); in parse_base_offset() 824 if (!op.isTemp() || !ctx.info[op.tempId()].is_bitwise()) in skip_smem_offset_align() 827 Instruction* bitwise_instr = ctx.info[op.tempId()].instr; in skip_smem_offset_align() 849 ssa_info info = ctx.info[instr->operands[1].tempId()]; in smem_combine() 864 if (ctx.info[smem.operands.back().tempId()].is_constant_or_literal(32) && in smem_combine() [all …]
|
D | aco_optimizer_postRA.cpp | 253 assert(last_vcc_wr->definitions[0].tempId() == op0_instr->operands[0].tempId()); in try_apply_branch_vcc() 256 ctx.uses[instr->operands[0].tempId()]--; in try_apply_branch_vcc() 290 if (ctx.uses[instr->operands[0].tempId()] > 1) in try_optimize_scc_nocompare() 340 ctx.uses[instr->operands[0].tempId()]--; in try_optimize_scc_nocompare() 342 ctx.uses[instr->operands[0].tempId()]++; in try_optimize_scc_nocompare() 377 if (ctx.uses[instr->operands[scc_op_idx].tempId()] > 1) in try_optimize_scc_nocompare() 393 ctx.uses[instr->operands[scc_op_idx].tempId()]--; in try_optimize_scc_nocompare() 431 (!mov->definitions[0].tempId() || ctx.uses[mov->definitions[0].tempId()] > 1)) in try_combine_dpp() 444 if (--ctx.uses[mov->definitions[0].tempId()]) in try_combine_dpp() 445 ctx.uses[mov->operands[0].tempId()]++; in try_combine_dpp()
|
D | aco_register_allocation.cpp | 328 fill_subdword(op.physReg(), op.bytes(), op.tempId()); in fill() 330 fill(op.physReg(), op.size(), op.tempId()); in fill() 338 fill_subdword(def.physReg(), def.bytes(), def.tempId()); in fill() 340 fill(def.physReg(), def.size(), def.tempId()); in fill() 793 ctx.assignments[def.tempId()].reg = def.physReg(); in update_renames() 808 ctx.assignments[other.second.tempId()].reg = other.second.physReg(); in update_renames() 814 if (op.isTemp() && op.tempId() == other.second.tempId()) { in update_renames() 840 if (op.tempId() == copy.first.tempId()) { in update_renames() 1048 if (instr->operands[i].isTemp() && instr->operands[i].tempId() == id && in get_reg_for_create_vector_copy() 1073 assignment& op = ctx.assignments[instr->operands[i].tempId()]; in get_reg_for_create_vector_copy() [all …]
|
D | aco_lower_to_cssa.cpp | 128 ctx.live_out[preds[i]].erase(op.tempId()); in collect_parallelcopies() 145 ctx.merge_node_table[def.tempId()] = {Operand(def.getTemp()), index, block.index}; in collect_parallelcopies() 345 merge_node& op_node = ctx.merge_node_table[copy.op.tempId()]; in try_coalesce_copy() 353 } while (block_idx != pred && ctx.live_out[pred].count(copy.op.tempId())); in try_coalesce_copy() 369 assert(ctx.merge_node_table.count(copy.def.tempId())); in try_coalesce_copy() 370 if (op_node.index == ctx.merge_node_table[copy.def.tempId()].index) in try_coalesce_copy() 454 renames.emplace(cp.def.tempId(), cp.op); in emit_parallelcopies() 456 ctx.live_out[i].erase(cp.def.tempId()); in emit_parallelcopies() 457 ctx.live_out[i].insert(cp.op.tempId()); in emit_parallelcopies() 461 read_idx = ctx.merge_node_table[cp.op.tempId()].index; in emit_parallelcopies() [all …]
|
D | aco_dead_code_analysis.cpp | 66 if (ctx.uses[op.tempId()] == 0) in process_block() 68 ctx.uses[op.tempId()]++; in process_block() 90 [&uses](const Definition& def) { return !def.isTemp() || uses[def.tempId()]; })) in is_dead() 109 ctx.uses[startpgm->definitions.back().tempId()]++; in dead_code_analysis()
|
D | aco_validate.cpp | 369 if (op.tempId() != sgpr[0] && op.tempId() != sgpr[1]) { in validate_ir() 371 sgpr[num_sgprs++] = op.tempId(); in validate_ir() 967 if (regs[written_reg] && regs[written_reg] != def.tempId()) in validate_instr_defs() 1022 if (assignments[op.tempId()].valid && assignments[op.tempId()].reg != op.physReg()) in validate_ra() 1024 ra_fail(program, loc, assignments[op.tempId()].firstloc, in validate_ra() 1031 err |= ra_fail(program, loc, assignments[op.tempId()].firstloc, in validate_ra() 1039 if (!assignments[op.tempId()].firstloc.block) in validate_ra() 1040 assignments[op.tempId()].firstloc = loc; in validate_ra() 1041 if (!assignments[op.tempId()].defloc.block) { in validate_ra() 1042 assignments[op.tempId()].reg = op.physReg(); in validate_ra() [all …]
|
D | aco_scheduler.cpp | 193 depends_on[op.tempId()] = true; in downwards_init() 195 RAR_dependencies[op.tempId()] = true; in downwards_init() 213 if (def.isTemp() && depends_on[def.tempId()]) in downwards_move() 220 if (op.isTemp() && RAR_deps[op.tempId()]) { in downwards_move() 229 depends_on[op.tempId()] = true; in downwards_move() 231 RAR_dependencies[op.tempId()] = true; in downwards_move() 288 depends_on[op.tempId()] = true; in downwards_skip() 290 RAR_dependencies[op.tempId()] = true; in downwards_skip() 291 RAR_dependencies_clause[op.tempId()] = true; in downwards_skip() 328 depends_on[def.tempId()] = true; in upwards_init() [all …]
|
D | aco_reindex_ssa.cpp | 45 ctx.renames[def.tempId()] = new_id; in reindex_defs() 57 uint32_t new_id = ctx.renames[op.tempId()]; in reindex_ops()
|
D | aco_opt_value_numbering.cpp | 136 if (a->operands[i].tempId() != b->operands[i].tempId()) in operator ()() 375 auto it = ctx.renames.find(op.tempId()); in process_block() 395 ctx.renames[instr->definitions[0].tempId()] = instr->operands[0].getTemp(); in process_block() 412 ctx.renames[instr->definitions[i].tempId()] = orig_instr->definitions[i].getTemp(); in process_block() 445 auto it = renames.find(op.tempId()); in rename_phi_operands()
|
D | aco_live_var_analysis.cpp | 174 insn->operands[j].tempId() == operand.tempId()) { in process_live_temps_per_block() 262 const bool inserted = lives.live_out[preds[i]].insert(operand.tempId()).second; in process_live_temps_per_block() 274 operand.setKill(!live.count(operand.tempId())); in process_live_temps_per_block()
|
D | aco_ir.cpp | 907 return a->operands[0].tempId() == b->operands[0].tempId(); in should_form_clause()
|
D | aco_print_ir.cpp | 182 fprintf(output, "%%%d%s", operand->tempId(), operand->isFixed() ? ":" : ""); in aco_print_operand() 203 fprintf(output, "%%%d%s", definition->tempId(), definition->isFixed() ? ":" : ""); in print_definition()
|
D | aco_ir.h | 740 constexpr uint32_t tempId() const noexcept { return data_.temp.id(); } in tempId() function 933 constexpr bool isTemp() const noexcept { return tempId() > 0; } in isTemp() 937 constexpr uint32_t tempId() const noexcept { return temp.id(); } in tempId() function
|
D | aco_lower_to_hw_instr.cpp | 998 *def = Definition(src.def.tempId(), def_reg, src.def.regClass().resize(bytes)); in split_copy() 1006 op->setTemp(Temp(src.op.tempId(), op_cls)); in split_copy() 1732 other->second.def.setTemp(Temp(other->second.def.tempId(), in handle_operands() 1734 other->second.op.setTemp(Temp(other->second.op.tempId(), in handle_operands() 2194 unsigned id = instr->definitions[0].tempId(); in lower_to_hw_instr()
|
D | aco_instruction_selection.cpp | 10298 assert(instr->operands[i].tempId() == instr->operands.back().tempId()); in end_loop()
|