mem-cache,mem-ruby: Move WeightedLRU RP

Move the WeightedLRUReplacementPolicy to the replacement policies folder.

Change-Id: I9902faefb6de33343bb65f994be70bd9e1dd4e14
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/22445
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: John Alsop <johnathan.alsop@amd.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
diff --git a/src/mem/cache/replacement_policies/ReplacementPolicies.py b/src/mem/cache/replacement_policies/ReplacementPolicies.py
index 8a67dea..739b400 100644
--- a/src/mem/cache/replacement_policies/ReplacementPolicies.py
+++ b/src/mem/cache/replacement_policies/ReplacementPolicies.py
@@ -96,3 +96,8 @@
     cxx_class = 'TreePLRURP'
     cxx_header = "mem/cache/replacement_policies/tree_plru_rp.hh"
     num_leaves = Param.Int(Parent.assoc, "Number of leaves in each tree")
+
+class WeightedLRURP(BaseReplacementPolicy):
+    type = "WeightedLRURP"
+    cxx_class = "WeightedLRUPolicy"
+    cxx_header = "mem/cache/replacement_policies/weighted_lru_rp.hh"
diff --git a/src/mem/cache/replacement_policies/SConscript b/src/mem/cache/replacement_policies/SConscript
index 468cf7d..a1fd443 100644
--- a/src/mem/cache/replacement_policies/SConscript
+++ b/src/mem/cache/replacement_policies/SConscript
@@ -41,3 +41,4 @@
 Source('random_rp.cc')
 Source('second_chance_rp.cc')
 Source('tree_plru_rp.cc')
+Source('weighted_lru_rp.cc')
diff --git a/src/mem/ruby/system/WeightedLRUPolicy.cc b/src/mem/cache/replacement_policies/weighted_lru_rp.cc
similarity index 96%
rename from src/mem/ruby/system/WeightedLRUPolicy.cc
rename to src/mem/cache/replacement_policies/weighted_lru_rp.cc
index 8f330d9..f7bcd40 100644
--- a/src/mem/ruby/system/WeightedLRUPolicy.cc
+++ b/src/mem/cache/replacement_policies/weighted_lru_rp.cc
@@ -33,10 +33,11 @@
  * Authors: Derek Hower
  */
 
-#include "mem/ruby/system/WeightedLRUPolicy.hh"
+#include "mem/cache/replacement_policies/weighted_lru_rp.hh"
 
 #include <cassert>
-#include <memory>
+
+#include "params/WeightedLRURP.hh"
 
 WeightedLRUPolicy::WeightedLRUPolicy(const Params* p)
     : BaseReplacementPolicy(p)
@@ -44,7 +45,7 @@
 }
 
 WeightedLRUPolicy *
-WeightedLRUReplacementPolicyParams::create()
+WeightedLRURPParams::create()
 {
     return new WeightedLRUPolicy(this);
 }
diff --git a/src/mem/ruby/system/WeightedLRUPolicy.hh b/src/mem/cache/replacement_policies/weighted_lru_rp.hh
similarity index 91%
rename from src/mem/ruby/system/WeightedLRUPolicy.hh
rename to src/mem/cache/replacement_policies/weighted_lru_rp.hh
index a117845..f339605 100644
--- a/src/mem/ruby/system/WeightedLRUPolicy.hh
+++ b/src/mem/cache/replacement_policies/weighted_lru_rp.hh
@@ -33,14 +33,15 @@
  * Authors: Sooraj Puthoor
  */
 
-#ifndef __MEM_RUBY_SYSTEM_WEIGHTEDLRUPOLICY_HH__
-#define __MEM_RUBY_SYSTEM_WEIGHTEDLRUPOLICY_HH__
+#ifndef __MEM_CACHE_REPLACEMENT_POLICIES_WEIGHTED_LRU_RP_HH__
+#define __MEM_CACHE_REPLACEMENT_POLICIES_WEIGHTED_LRU_RP_HH__
 
+#include <memory>
+
+#include "base/types.hh"
 #include "mem/cache/replacement_policies/base.hh"
-#include "mem/ruby/structures/CacheMemory.hh"
-#include "params/WeightedLRUReplacementPolicy.hh"
 
-/* Simple true LRU replacement policy */
+struct WeightedLRURPParams;
 
 class WeightedLRUPolicy : public BaseReplacementPolicy
 {
@@ -61,7 +62,7 @@
                                 last_occ_ptr(0), last_touch_tick(0) {}
     };
   public:
-    typedef WeightedLRUReplacementPolicyParams Params;
+    typedef WeightedLRURPParams Params;
     WeightedLRUPolicy(const Params* p);
     ~WeightedLRUPolicy() {}
 
@@ -110,4 +111,4 @@
                                               candidates) const override;
 };
 
-#endif // __MEM_RUBY_SYSTEM_WeightedLRUPolicy_HH__
+#endif // __MEM_CACHE_REPLACEMENT_POLICIES_WEIGHTED_LRU_RP_HH__
diff --git a/src/mem/ruby/structures/CacheMemory.cc b/src/mem/ruby/structures/CacheMemory.cc
index a7aa637..b734308 100644
--- a/src/mem/ruby/structures/CacheMemory.cc
+++ b/src/mem/ruby/structures/CacheMemory.cc
@@ -35,9 +35,9 @@
 #include "debug/RubyCacheTrace.hh"
 #include "debug/RubyResourceStalls.hh"
 #include "debug/RubyStats.hh"
+#include "mem/cache/replacement_policies/weighted_lru_rp.hh"
 #include "mem/ruby/protocol/AccessPermission.hh"
 #include "mem/ruby/system/RubySystem.hh"
-#include "mem/ruby/system/WeightedLRUPolicy.hh"
 
 using namespace std;
 
diff --git a/src/mem/ruby/system/SConscript b/src/mem/ruby/system/SConscript
index b67311b..62d680e 100644
--- a/src/mem/ruby/system/SConscript
+++ b/src/mem/ruby/system/SConscript
@@ -37,7 +37,6 @@
     SimObject('GPUCoalescer.py')
 SimObject('RubySystem.py')
 SimObject('Sequencer.py')
-SimObject('WeightedLRUReplacementPolicy.py')
 if env['BUILD_GPU']:
     SimObject('VIPERCoalescer.py')
 
@@ -51,4 +50,3 @@
 Source('Sequencer.cc')
 if env['BUILD_GPU']:
     Source('VIPERCoalescer.cc')
-Source('WeightedLRUPolicy.cc')
diff --git a/src/mem/ruby/system/WeightedLRUReplacementPolicy.py b/src/mem/ruby/system/WeightedLRUReplacementPolicy.py
deleted file mode 100644
index 48143e5..0000000
--- a/src/mem/ruby/system/WeightedLRUReplacementPolicy.py
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright (c) 2013-2015 Advanced Micro Devices, Inc.
-# All rights reserved.
-#
-# For use for simulation and test purposes only
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# 1. Redistributions of source code must retain the above copyright notice,
-# this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above copyright notice,
-# this list of conditions and the following disclaimer in the documentation
-# and/or other materials provided with the distribution.
-#
-# 3. Neither the name of the copyright holder nor the names of its
-# contributors may be used to endorse or promote products derived from this
-# software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-#
-# Authors: Derek Hower
-
-from m5.params import *
-from m5.proxy import *
-from m5.objects.ReplacementPolicies import BaseReplacementPolicy
-
-class WeightedLRUReplacementPolicy(BaseReplacementPolicy):
-    type = "WeightedLRUReplacementPolicy"
-    cxx_class = "WeightedLRUPolicy"
-    cxx_header = "mem/ruby/system/WeightedLRUPolicy.hh"