38 #include "params/WeightedLRURP.hh"
45 namespace replacement_policy
58 std::static_pointer_cast<WeightedLRUReplData>(replacement_data)->
59 last_occ_ptr = occupancy;
65 assert(candidates.size() > 0);
71 for (
const auto& candidate : candidates) {
73 std::shared_ptr<WeightedLRUReplData> candidate_replacement_data =
74 std::static_pointer_cast<WeightedLRUReplData>(
75 candidate->replacementData);
77 std::shared_ptr<WeightedLRUReplData> victim_replacement_data =
78 std::static_pointer_cast<WeightedLRUReplData>(
81 if (candidate_replacement_data->last_occ_ptr <
82 victim_replacement_data->last_occ_ptr) {
84 }
else if (candidate_replacement_data->last_occ_ptr ==
85 victim_replacement_data->last_occ_ptr) {
87 Tick time = candidate_replacement_data->lastTouchTick;
88 if (time < victim_replacement_data->lastTouchTick) {
96 std::shared_ptr<ReplacementData>