/third_party/mesa3d/src/amd/compiler/ |
D | aco_validate.cpp | 303 check(instr->definitions[0].getTemp().type() == RegType::sgpr, in validate_ir() 306 check(instr->definitions[0].getTemp().type() == RegType::vgpr, in validate_ir() 364 check(instr->definitions[0].getTemp().type() == RegType::sgpr, in validate_ir() 383 if (instr->definitions[0].getTemp().type() == RegType::sgpr) { in validate_ir() 395 check(instr->definitions[0].getTemp().type() == RegType::vgpr || in validate_ir() 410 if (instr->operands[0].getTemp().type() == RegType::vgpr) { in validate_ir() 426 check((instr->definitions[i].getTemp().type() == in validate_ir() 428 (instr->definitions[i].getTemp().type() == RegType::vgpr && in validate_ir() 443 check(instr->definitions[0].getTemp().type() == RegType::vgpr, in validate_ir() 450 check(!op.isTemp() || op.getTemp().is_linear(), "Wrong Operand type", in validate_ir() [all …]
|
D | aco_live_var_analysis.cpp | 41 changes += def.getTemp(); in get_live_changes() 47 changes -= op.getTemp(); in get_live_changes() 62 temp_registers += def.getTemp(); in get_temp_registers() 67 temp_registers += op.getTemp(); in get_temp_registers() 124 const Temp temp = definition.getTemp(); in process_live_temps_per_block() 152 const Temp temp = operand.getTemp(); in process_live_temps_per_block() 194 const Temp temp = definition.getTemp(); in process_live_temps_per_block() 203 assert(definition.getTemp().type() == RegType::sgpr); in process_live_temps_per_block() 249 if (insn->opcode == aco_opcode::p_phi && operand.getTemp().type() == RegType::sgpr) { in process_live_temps_per_block() 252 assert(operand.getTemp().type() == RegType::sgpr); in process_live_temps_per_block()
|
D | aco_lower_to_cssa.cpp | 140 set.emplace(std::next(set.begin()), def.getTemp()); in collect_parallelcopies() 142 set.emplace(set.begin(), def.getTemp()); in collect_parallelcopies() 144 set.emplace_back(def.getTemp()); in collect_parallelcopies() 145 ctx.merge_node_table[def.tempId()] = {Operand(def.getTemp()), index, block.index}; in collect_parallelcopies() 208 if (cp.def.getTemp() == var) in intersects() 210 if (cp.op.isTemp() && cp.op.getTemp() == parent) in intersects() 228 if (def.getTemp() == var) in intersects() 236 if (op.getTemp() == parent) in intersects() 364 merge_set op_set = merge_set{copy.op.getTemp()}; in try_coalesce_copy() 365 return try_merge_merge_set(ctx, copy.def.getTemp(), op_set); in try_coalesce_copy() [all …]
|
D | aco_spill.cpp | 193 next_use_distances_start.erase(def.getTemp()); in next_uses_per_block() 203 next_use_distances_start[op.getTemp()] = {block_idx, idx}; in next_uses_per_block() 216 …t = instr->definitions[0].isTemp() ? next_use_distances_start.find(instr->definitions[0].getTemp()) in next_uses_per_block() 219 phi_defs.insert(instr->definitions[0].getTemp()).second) { in next_uses_per_block() 228 std::make_pair(instr->operands[i].getTemp(), distance)); in next_uses_per_block() 341 if (ctx.remat.count(instr->operands[i].getTemp())) in do_reload() 342 ctx.unused_remats.erase(ctx.remat[instr->operands[i].getTemp()].instr); in do_reload() 370 ctx.remat[def.getTemp()] = remat_info{instr.get()}; in get_rematerialize_info() 414 [op](auto& pair) { return pair.first == op.getTemp(); }); in update_local_next_uses() 416 local_next_uses[idx].push_back(std::make_pair<Temp, uint32_t>(op.getTemp(), idx)); in update_local_next_uses() [all …]
|
D | aco_register_allocation.cpp | 743 if (def.isTemp() && def.getTemp() == it->first.getTemp()) { in update_renames() 760 if (it->first.getTemp() == other.second.getTemp()) { in update_renames() 810 op.setTemp(copy.second.getTemp()); in update_renames() 1171 killed_ops += op.getTemp().size(); in get_reg_impl() 1271 if (op.isTemp() && op.isFirstKillBeforeDef() && op.getTemp().type() == rc.type()) { in get_reg_impl() 1491 if (op.isTemp() && op.tempId() != temp.id() && op.getTemp().type() == temp.type() && in get_reg_vector() 1650 instr->operands[i].getTemp().type() != rc.type()) in get_reg_create_vector() 1711 instr->operands[j].getTemp().type() != rc.type()) in get_reg_create_vector() 1744 instr->operands[i].getTemp().type() != rc.type()) in get_reg_create_vector() 1797 if (def.getTemp().regClass().is_linear()) in handle_pseudo() [all …]
|
D | aco_optimizer.cpp | 604 return op.isTemp() && op.getTemp().type() == RegType::vgpr; in is_operand_vgpr() 716 Temp tmp = op.getTemp(); in parse_base_offset() 752 *base = add_instr->operands[!i].getTemp(); in parse_base_offset() 824 Temp tmp = info.instr->operands[0].getTemp(); in can_apply_extract() 853 Temp tmp = info.instr->operands[0].getTemp(); in apply_extract() 899 if (info.is_extract() && (info.instr->operands[0].getTemp().type() == RegType::vgpr || in check_sdwa_extract() 900 op.getTemp().type() == RegType::sgpr)) { in check_sdwa_extract() 988 while (info.is_temp() && info.temp.regClass() == instr->operands[i].getTemp().regClass()) { in label_instruction() 1029 instr->opcode != aco_opcode::v_cndmask_b32 || instr->operands[i].getTemp().bytes() == 4; in label_instruction() 1267 ctx.info[instr->definitions[0].tempId()].set_temp(instr->operands[0].getTemp()); in label_instruction() [all …]
|
D | aco_insert_exec_mask.cpp | 180 set_needs_wqm(ctx, op.getTemp()); in get_block_needs() 729 .getTemp(); in process_instructions() 735 ctx.info[block->index].exec[i].first = Operand(andn2->definitions[0].getTemp()); in process_instructions() 736 exit_cond = andn2->definitions[1].getTemp(); in process_instructions() 794 cond = instr->operands[0].getTemp(); in process_instructions() 807 ctx.info[block->index].exec[i].first = Operand(andn2->definitions[0].getTemp()); in process_instructions() 808 exit_cond = andn2->definitions[1].getTemp(); in process_instructions() 949 bld.pseudo(aco_opcode::p_exit_early_if, bld.scc(andn2->definitions[1].getTemp())); in add_branch_code() 950 ctx.info[block->index].exec[i].first = Operand(andn2->definitions[0].getTemp()); in add_branch_code() 1005 Temp cond = block->instructions.back()->operands[0].getTemp(); in add_branch_code()
|
D | aco_lower_phis.cpp | 114 phi->definitions[0] = Definition(op.getTemp()); in get_ssa() 141 Definition dst = Definition(state->outputs[block_idx].getTemp()); in build_merge_code() 323 Temp phi_src = phi->operands[i].getTemp(); in lower_subdword_phis()
|
D | aco_instruction_selection.cpp | 154 mask_lo = Operand(mask_split.def(0).getTemp()); in emit_mbcnt() 155 mask_hi = Operand(mask_split.def(1).getTemp()); in emit_mbcnt() 213 index_is_lo_split.def(1).getTemp()); in emit_bpermute() 215 index_is_lo_split.def(0).getTemp(), index_is_lo_n1); in emit_bpermute() 439 elems[i] = vec->operands[i].getTemp(); in expand_vector() 1291 return add->definitions[0].getTemp(); in emit_floor_f64() 1299 return bld.vop2_e64(aco_opcode::v_cndmask_b32, dst, add.def(0).getTemp(), Operand::c32(-1), in uadd32_sat() 1300 add.def(1).getTemp()); in uadd32_sat() 1310 return dst.getTemp(); in uadd32_sat() 1472 .getTemp(); in visit_alu_instr() [all …]
|
D | aco_ir.cpp | 284 if (instr->definitions[0].getTemp().type() == RegType::sgpr && chip == GFX8) in convert_to_SDWA() 551 if (def.getTemp().type() == RegType::vgpr) in needs_exec_mask() 680 (instr->operands[0].isTemp() && instr->operands[0].getTemp().type() == RegType::sgpr)) in can_swap_operands()
|
D | aco_opt_value_numbering.cpp | 386 ctx.renames[instr->definitions[0].tempId()] = instr->operands[0].getTemp(); in process_block() 403 ctx.renames[instr->definitions[i].tempId()] = orig_instr->definitions[i].getTemp(); in process_block()
|
D | aco_ir.h | 724 constexpr Temp getTemp() const noexcept { return data_.temp; } in getTemp() function 848 return other.isTemp() && other.getTemp() == getTemp(); 909 constexpr Temp getTemp() const noexcept { return temp; } in getTemp() function
|
D | aco_optimizer_postRA.cpp | 318 instr->operands[0] = Operand(wr_instr->definitions[1].getTemp(), scc); in try_optimize_scc_nocompare()
|
D | aco_lower_to_hw_instr.cpp | 1767 if (preserve_scc && it->second.def.getTemp().type() == RegType::sgpr) in handle_operands() 1938 : RegClass(instr->operands[0].getTemp().type(), def.size()); in lower_to_hw_instr() 1951 reg, instr->definitions[0].getTemp().regClass().resize(op.bytes())); in lower_to_hw_instr() 1965 : instr->definitions[0].getTemp().regClass().resize(op.bytes()); in lower_to_hw_instr() 1980 : instr->operands[0].getTemp().regClass().resize(def.bytes()); in lower_to_hw_instr()
|
D | aco_insert_waitcnt.cpp | 265 for (unsigned j = 0; j < def.getTemp().size(); j++) { in check_instr()
|
D | aco_insert_NOPs.cpp | 612 { return def.getTemp().type() == RegType::sgpr; }); in instr_writes_sgpr()
|
/third_party/mesa3d/src/amd/compiler/tests/ |
D | test_regalloc.cpp | 52 auto result1 = bld.vop1(aco_opcode::v_cvt_f32_f16, bld.def(v1), tmp.def(1).getTemp()); 53 auto result2 = bld.vop1(aco_opcode::v_cvt_f32_f16, bld.def(v1), tmp.def(0).getTemp()); 69 …i = bld.pseudo(aco_opcode::p_split_vector, bld.def(v2b), bld.def(v2b), inputs[0]).def(1).getTemp();
|
D | test_optimizer_postRA.cpp | 54 …auto br = bld.branch(aco_opcode::p_cbranch_z, bld.def(s2, reg_s2), bld.scc(sand.def(1).getTemp())); 72 …auto br = bld.branch(aco_opcode::p_cbranch_z, bld.def(s2, reg_s2), bld.scc(sand.def(1).getTemp())); 88 …auto br = bld.branch(aco_opcode::p_cbranch_z, bld.def(s2, reg_s2), bld.scc(sand.def(1).getTemp())); 104 …auto br = bld.branch(aco_opcode::p_cbranch_z, bld.def(s2, reg_s2), bld.scc(sand.def(1).getTemp())); 122 …auto br = bld.branch(aco_opcode::p_cbranch_z, bld.def(s2, reg_s2), bld.scc(sand.def(1).getTemp()));
|
D | test_sdwa.cpp | 391 writeout(0, mul->definitions[0].getTemp()); 401 writeout(1, mul->definitions[0].getTemp());
|
D | test_optimizer.cpp | 370 Temp carry = bld.vadd32(bld.def(v1), lshl, Operand(inputs[1]), true).def(1).getTemp(); 433 Temp carry = bld.vadd32(bld.def(v1), bcnt, Operand(inputs[0]), true).def(1).getTemp(); 752 writeout(1, bld.vadd32(bld.def(v1), inputs[0], mul, true).def(1).getTemp());
|