36 #include "params/WeightedLRURP.hh"
43 namespace replacement_policy
56 std::static_pointer_cast<WeightedLRUReplData>(replacement_data)->
57 last_occ_ptr = occupancy;
63 assert(candidates.size() > 0);
69 for (
const auto& candidate : candidates) {
71 std::shared_ptr<WeightedLRUReplData> candidate_replacement_data =
72 std::static_pointer_cast<WeightedLRUReplData>(
73 candidate->replacementData);
75 std::shared_ptr<WeightedLRUReplData> victim_replacement_data =
76 std::static_pointer_cast<WeightedLRUReplData>(
79 if (candidate_replacement_data->last_occ_ptr <
80 victim_replacement_data->last_occ_ptr) {
82 }
else if (candidate_replacement_data->last_occ_ptr ==
83 victim_replacement_data->last_occ_ptr) {
85 Tick time = candidate_replacement_data->lastTouchTick;
86 if (time < victim_replacement_data->lastTouchTick) {
94 std::shared_ptr<ReplacementData>