Lines Matching refs:second
98 void add_affinity(uint32_t first, uint32_t second)
107 else if (entry == second)
112 affinities.emplace_back(std::vector<uint32_t>({first, second}));
114 affinities[found_first].push_back(second);
118 /* merge second into first */
128 void add_interference(uint32_t first, uint32_t second)
130 if (interferences[first].first.type() != interferences[second].first.type())
133 bool inserted = interferences[first].second.insert(second).second;
135 interferences[second].second.insert(first);
187 it->second.second = it->second.second + block->instructions.size();
224 phi_defs.insert(instr->definitions[0].getTemp()).second) {
225 distance = it->second;
234 const bool inserted = insert_result.second;
235 std::pair<uint32_t, uint32_t>& entry_distance = insert_result.first->second;
250 uint32_t distance = pair.second.second;
251 uint32_t dom = pair.second.first;
258 const bool inserted = insert_result.second;
259 std::pair<uint32_t, uint32_t>& entry_distance = insert_result.first->second;
263 distance = std::min(entry_distance.second, distance);
319 Instruction* instr = remat->second.instr;
398 (Temp)pair.first, pair.second.second + block->instructions.size()));
423 it->second = idx;
521 if (it->second.first >= loop_end || ctx.remat.count(spilled.first)) {
522 ctx.spills_entry[block_idx][spilled.first] = spilled.second;
543 (pair.second.first >= loop_end ||
545 pair.second.second > distance && !ctx.spills_entry[block_idx].count(pair.first)) {
547 distance = pair.second.second;
585 if (pair.first.type() == type && pair.second.second > distance &&
588 distance = pair.second.second;
610 next_use_distance_it->second.first != block_idx) {
623 next_use_distance_it->second.first != block_idx) {
636 ctx.spills_entry[block_idx].insert(pair).second) {
646 ctx.spills_entry[block_idx].insert(pair).second) {
738 if (it->type() == type && next_use_distances.at(*it).second > distance) {
739 distance = next_use_distances.at(*it).second;
793 aco_ptr<Instruction> reload = do_reload(ctx, live.first, new_name, spills_exit_it->second);
829 do_reload(ctx, live.first, new_name, spills_exit_it->second);
891 if (spilled->second != def_spill_id)
892 ctx.add_affinity(def_spill_id, spilled->second);
898 spill_op.setTemp(rename_it->second);
907 ctx.add_interference(spill_id, pair.second);
943 if (spilled->second != pair.second)
944 ctx.add_affinity(pair.second, spilled->second);
956 ctx.add_interference(exit_spill.second, pair.second);
964 var = rename_it->second;
971 spill->operands[1] = Operand::c32(pair.second);
981 ctx.spills_exit[pred.index][pair.first] = pair.second;
1003 phi->operands[i].setTemp(it->second);
1008 ctx.unused_remats.erase(remat_it->second.instr);
1192 op.setTemp(rename_it->second);
1197 ctx.unused_remats.erase(remat_it->second.instr);
1232 if (((pair.second > distance && can_rematerialize == do_rematerialize) ||
1233 (can_rematerialize && !do_rematerialize && pair.second > idx)) &&
1236 distance = pair.second;
1246 ctx.add_interference(spill_id, pair.second);
1248 ctx.add_interference(spill_id, pair.second.second);
1270 do_reload(ctx, pair.second.first, pair.first, pair.second.second);
1292 ctx.add_interference(it->second, it2->second);
1356 op.setTemp(rename.second);
1377 op.setTemp(rename.second);
1573 for (unsigned other : ctx.interferences[id].second) {
1682 for (ASSERTED uint32_t id : ctx.interferences[i].second)
1751 if (ctx.interferences[pair.second].first.type() == RegType::sgpr &&
1752 slots[pair.second] / ctx.wave_size == i) {