| /xsrc/external/mit/MesaLib/dist/src/amd/compiler/ |
| H A D | aco_lower_to_cssa.cpp | 140 set.emplace(std::next(set.begin()), def.getTemp()); 142 set.emplace(set.begin(), def.getTemp()); 144 set.emplace_back(def.getTemp()); 145 ctx.merge_node_table[def.tempId()] = {Operand(def.getTemp()), index, block.index}; 208 if (cp.def.getTemp() == var) 210 if (cp.op.isTemp() && cp.op.getTemp() == parent) 228 if (def.getTemp() == var) 236 if (op.getTemp() == parent) 364 merge_set op_set = merge_set{copy.op.getTemp()}; 365 return try_merge_merge_set(ctx, copy.def.getTemp(), op_se [all...] |
| H A D | aco_validate.cpp | 313 check(instr->definitions[0].getTemp().type() == RegType::sgpr, 316 check(instr->definitions[0].getTemp().type() == RegType::vgpr, 374 check(instr->definitions[0].getTemp().type() == RegType::sgpr, 393 if (instr->definitions[0].getTemp().type() == RegType::sgpr) { 405 check(instr->definitions[0].getTemp().type() == RegType::vgpr || 420 if (instr->operands[0].getTemp().type() == RegType::vgpr) { 436 check((instr->definitions[i].getTemp().type() == 438 (instr->definitions[i].getTemp().type() == RegType::vgpr && 453 check(instr->definitions[0].getTemp().type() == RegType::vgpr, 460 check(!op.isTemp() || op.getTemp() [all...] |
| H A D | aco_live_var_analysis.cpp | 41 changes += def.getTemp(); 47 changes -= op.getTemp(); 62 temp_registers += def.getTemp(); 67 temp_registers += op.getTemp(); 124 const Temp temp = definition.getTemp(); 152 const Temp temp = operand.getTemp(); 194 const Temp temp = definition.getTemp(); 203 assert(definition.getTemp().type() == RegType::sgpr); 249 if (insn->opcode == aco_opcode::p_phi && operand.getTemp().type() == RegType::sgpr) { 252 assert(operand.getTemp() [all...] |
| H A D | aco_spill.cpp | 193 next_use_distances_start.erase(def.getTemp()); 203 next_use_distances_start[op.getTemp()] = {block_idx, idx}; 216 auto it = instr->definitions[0].isTemp() ? next_use_distances_start.find(instr->definitions[0].getTemp()) 219 phi_defs.insert(instr->definitions[0].getTemp()).second) { 228 std::make_pair(instr->operands[i].getTemp(), distance)); 341 if (ctx.remat.count(instr->operands[i].getTemp())) 342 ctx.unused_remats.erase(ctx.remat[instr->operands[i].getTemp()].instr); 370 ctx.remat[def.getTemp()] = remat_info{instr.get()}; 414 [op](auto& pair) { return pair.first == op.getTemp(); }); 416 local_next_uses[idx].push_back(std::make_pair<Temp, uint32_t>(op.getTemp(), id [all...] |
| H A D | aco_register_allocation.cpp | 743 if (def.isTemp() && def.getTemp() == it->first.getTemp()) { 760 if (it->first.getTemp() == other.second.getTemp()) { 810 op.setTemp(copy.second.getTemp()); 1171 killed_ops += op.getTemp().size(); 1271 if (op.isTemp() && op.isFirstKillBeforeDef() && op.getTemp().type() == rc.type()) { 1491 if (op.isTemp() && op.tempId() != temp.id() && op.getTemp().type() == temp.type() && 1650 instr->operands[i].getTemp().type() != rc.type()) 1711 instr->operands[j].getTemp() [all...] |
| H A D | aco_optimizer.cpp | 604 return op.isTemp() && op.getTemp().type() == RegType::vgpr; 716 Temp tmp = op.getTemp(); 752 *base = add_instr->operands[!i].getTemp(); 824 Temp tmp = info.instr->operands[0].getTemp(); 853 Temp tmp = info.instr->operands[0].getTemp(); 899 if (info.is_extract() && (info.instr->operands[0].getTemp().type() == RegType::vgpr || 900 op.getTemp().type() == RegType::sgpr)) { 988 while (info.is_temp() && info.temp.regClass() == instr->operands[i].getTemp().regClass()) { 1029 instr->opcode != aco_opcode::v_cndmask_b32 || instr->operands[i].getTemp().bytes() == 4; 1267 ctx.info[instr->definitions[0].tempId()].set_temp(instr->operands[0].getTemp()); [all...] |
| H A D | aco_insert_exec_mask.cpp | 180 set_needs_wqm(ctx, op.getTemp()); 729 .getTemp(); 735 ctx.info[block->index].exec[i].first = Operand(andn2->definitions[0].getTemp()); 736 exit_cond = andn2->definitions[1].getTemp(); 794 cond = instr->operands[0].getTemp(); 807 ctx.info[block->index].exec[i].first = Operand(andn2->definitions[0].getTemp()); 808 exit_cond = andn2->definitions[1].getTemp(); 949 bld.pseudo(aco_opcode::p_exit_early_if, bld.scc(andn2->definitions[1].getTemp())); 950 ctx.info[block->index].exec[i].first = Operand(andn2->definitions[0].getTemp()); 1005 Temp cond = block->instructions.back()->operands[0].getTemp(); [all...] |
| H A D | aco_lower_phis.cpp | 114 phi->definitions[0] = Definition(op.getTemp()); 141 Definition dst = Definition(state->outputs[block_idx].getTemp()); 323 Temp phi_src = phi->operands[i].getTemp();
|
| H A D | aco_opt_value_numbering.cpp | 386 ctx.renames[instr->definitions[0].tempId()] = instr->operands[0].getTemp(); 403 ctx.renames[instr->definitions[i].tempId()] = orig_instr->definitions[i].getTemp();
|
| H A D | aco_ir.cpp | 284 if (instr->definitions[0].getTemp().type() == RegType::sgpr && chip == GFX8) 551 if (def.getTemp().type() == RegType::vgpr) 680 (instr->operands[0].isTemp() && instr->operands[0].getTemp().type() == RegType::sgpr))
|
| H A D | aco_instruction_selection.cpp | 154 mask_lo = Operand(mask_split.def(0).getTemp()); 155 mask_hi = Operand(mask_split.def(1).getTemp()); 213 index_is_lo_split.def(1).getTemp()); 215 index_is_lo_split.def(0).getTemp(), index_is_lo_n1); 439 elems[i] = vec->operands[i].getTemp(); 1291 return add->definitions[0].getTemp(); 1299 return bld.vop2_e64(aco_opcode::v_cndmask_b32, dst, add.def(0).getTemp(), Operand::c32(-1), 1300 add.def(1).getTemp()); 1310 return dst.getTemp(); 1472 .getTemp(); [all...] |
| H A D | aco_ir.h | 724 constexpr Temp getTemp() const noexcept { return data_.temp; } function in class:aco::Operand 848 return other.isTemp() && other.getTemp() == getTemp(); 909 constexpr Temp getTemp() const noexcept { return temp; } function in class:aco::Definition
|
| H A D | aco_optimizer_postRA.cpp | 318 instr->operands[0] = Operand(wr_instr->definitions[1].getTemp(), scc);
|
| H A D | aco_lower_to_hw_instr.cpp | 1767 if (preserve_scc && it->second.def.getTemp().type() == RegType::sgpr) 1938 : RegClass(instr->operands[0].getTemp().type(), def.size()); 1951 reg, instr->definitions[0].getTemp().regClass().resize(op.bytes())); 1965 : instr->definitions[0].getTemp().regClass().resize(op.bytes()); 1980 : instr->operands[0].getTemp().regClass().resize(def.bytes());
|
| H A D | aco_insert_NOPs.cpp | 612 { return def.getTemp().type() == RegType::sgpr; });
|
| H A D | aco_insert_waitcnt.cpp | 265 for (unsigned j = 0; j < def.getTemp().size(); j++) {
|
| /xsrc/external/mit/MesaLib/dist/src/amd/compiler/tests/ |
| H A 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 Temp hi = bld.pseudo(aco_opcode::p_split_vector, bld.def(v2b), bld.def(v2b), inputs[0]).def(1).getTemp();
|
| H A 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()));
|
| H A D | test_sdwa.cpp | 391 writeout(0, mul->definitions[0].getTemp()); 401 writeout(1, mul->definitions[0].getTemp());
|
| H A 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());
|