mem-ruby: Remove index based functions in bloom filters

Most of the index based functions were not implemented, and a
user is more likely to be interested in checking the filter
contents based on an address than an index.

As a side effect, the Bulk's hash function became unused, and
according to the paper permute() was doing more than just
permuting, so it was renamed.

Change-Id: I6423a2565a082fee2e7f11fa489a11f253064d99
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/18732
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
diff --git a/src/mem/ruby/filters/AbstractBloomFilter.hh b/src/mem/ruby/filters/AbstractBloomFilter.hh
index bdf7c63..3e90cad 100644
--- a/src/mem/ruby/filters/AbstractBloomFilter.hh
+++ b/src/mem/ruby/filters/AbstractBloomFilter.hh
@@ -51,10 +51,6 @@
     virtual bool isSet(Addr addr) = 0;
     virtual int getCount(Addr addr) = 0;
     virtual int getTotalCount() = 0;
-
-    virtual int getIndex(Addr addr) = 0;
-    virtual int readBit(const int index) = 0;
-    virtual void writeBit(const int index, const int value) = 0;
 };
 
 #endif // __MEM_RUBY_FILTERS_ABSTRACTBLOOMFILTER_HH__
diff --git a/src/mem/ruby/filters/BlockBloomFilter.cc b/src/mem/ruby/filters/BlockBloomFilter.cc
index e990497..3516928 100644
--- a/src/mem/ruby/filters/BlockBloomFilter.cc
+++ b/src/mem/ruby/filters/BlockBloomFilter.cc
@@ -100,24 +100,6 @@
 }
 
 int
-BlockBloomFilter::getIndex(Addr addr)
-{
-    return get_index(addr);
-}
-
-int
-BlockBloomFilter::readBit(const int index)
-{
-    return m_filter[index];
-}
-
-void
-BlockBloomFilter::writeBit(const int index, const int value)
-{
-    m_filter[index] = value;
-}
-
-int
 BlockBloomFilter::get_index(Addr addr)
 {
     // Pull out some bit field ==> B1
diff --git a/src/mem/ruby/filters/BlockBloomFilter.hh b/src/mem/ruby/filters/BlockBloomFilter.hh
index 088759c..5eaf6ea 100644
--- a/src/mem/ruby/filters/BlockBloomFilter.hh
+++ b/src/mem/ruby/filters/BlockBloomFilter.hh
@@ -48,9 +48,6 @@
     bool isSet(Addr addr);
     int getCount(Addr addr);
     int getTotalCount();
-    int getIndex(Addr addr);
-    int readBit(const int index);
-    void writeBit(const int index, const int value);
 
   private:
     int get_index(Addr addr);
diff --git a/src/mem/ruby/filters/BulkBloomFilter.cc b/src/mem/ruby/filters/BulkBloomFilter.cc
index d7fa1a3..da873f9 100644
--- a/src/mem/ruby/filters/BulkBloomFilter.cc
+++ b/src/mem/ruby/filters/BulkBloomFilter.cc
@@ -164,25 +164,6 @@
 }
 
 int
-BulkBloomFilter::getIndex(Addr addr)
-{
-    return get_index(addr);
-}
-
-int
-BulkBloomFilter::readBit(const int index)
-{
-    return 0;
-    // TODO
-}
-
-void
-BulkBloomFilter::writeBit(const int index, const int value)
-{
-    // TODO
-}
-
-int
 BulkBloomFilter::get_index(Addr addr)
 {
     return bitSelect(addr, RubySystem::getBlockSizeBits(),
diff --git a/src/mem/ruby/filters/BulkBloomFilter.hh b/src/mem/ruby/filters/BulkBloomFilter.hh
index a3df105..39cd809 100644
--- a/src/mem/ruby/filters/BulkBloomFilter.hh
+++ b/src/mem/ruby/filters/BulkBloomFilter.hh
@@ -47,9 +47,6 @@
     bool isSet(Addr addr);
     int getCount(Addr addr);
     int getTotalCount();
-    int getIndex(Addr addr);
-    int readBit(const int index);
-    void writeBit(const int index, const int value);
 
   private:
     int get_index(Addr addr);
diff --git a/src/mem/ruby/filters/H3BloomFilter.cc b/src/mem/ruby/filters/H3BloomFilter.cc
index 90b3546..7f44a2b 100644
--- a/src/mem/ruby/filters/H3BloomFilter.cc
+++ b/src/mem/ruby/filters/H3BloomFilter.cc
@@ -439,23 +439,6 @@
 }
 
 int
-H3BloomFilter::getIndex(Addr addr)
-{
-    return 0;
-}
-
-int
-H3BloomFilter::readBit(const int index)
-{
-    return 0;
-}
-
-void
-H3BloomFilter::writeBit(const int index, const int value)
-{
-}
-
-int
 H3BloomFilter::getTotalCount()
 {
     int count = 0;
diff --git a/src/mem/ruby/filters/H3BloomFilter.hh b/src/mem/ruby/filters/H3BloomFilter.hh
index 93dc7d3..1df0d2a 100644
--- a/src/mem/ruby/filters/H3BloomFilter.hh
+++ b/src/mem/ruby/filters/H3BloomFilter.hh
@@ -48,10 +48,6 @@
     int getCount(Addr addr);
     int getTotalCount();
 
-    int getIndex(Addr addr);
-    int readBit(const int index);
-    void writeBit(const int index, const int value);
-
     int
     operator[](const int index) const
     {
diff --git a/src/mem/ruby/filters/LSB_CountingBloomFilter.cc b/src/mem/ruby/filters/LSB_CountingBloomFilter.cc
index 98c480b..5d9475b 100644
--- a/src/mem/ruby/filters/LSB_CountingBloomFilter.cc
+++ b/src/mem/ruby/filters/LSB_CountingBloomFilter.cc
@@ -102,25 +102,6 @@
 }
 
 int
-LSB_CountingBloomFilter::getIndex(Addr addr)
-{
-    return get_index(addr);
-}
-
-int
-LSB_CountingBloomFilter::readBit(const int index)
-{
-    return 0;
-    // TODO
-}
-
-void
-LSB_CountingBloomFilter::writeBit(const int index, const int value)
-{
-    // TODO
-}
-
-int
 LSB_CountingBloomFilter::get_index(Addr addr)
 {
     return bitSelect(addr, RubySystem::getBlockSizeBits(),
diff --git a/src/mem/ruby/filters/LSB_CountingBloomFilter.hh b/src/mem/ruby/filters/LSB_CountingBloomFilter.hh
index 11df169..7c02f77 100644
--- a/src/mem/ruby/filters/LSB_CountingBloomFilter.hh
+++ b/src/mem/ruby/filters/LSB_CountingBloomFilter.hh
@@ -48,9 +48,6 @@
     bool isSet(Addr addr);
     int getCount(Addr addr);
     int getTotalCount();
-    int getIndex(Addr addr);
-    int readBit(const int index);
-    void writeBit(const int index, const int value);
 
   private:
     int get_index(Addr addr);
diff --git a/src/mem/ruby/filters/MultiBitSelBloomFilter.cc b/src/mem/ruby/filters/MultiBitSelBloomFilter.cc
index 206e5b0..f64e14e 100644
--- a/src/mem/ruby/filters/MultiBitSelBloomFilter.cc
+++ b/src/mem/ruby/filters/MultiBitSelBloomFilter.cc
@@ -94,23 +94,6 @@
 }
 
 int
-MultiBitSelBloomFilter::getIndex(Addr addr)
-{
-    return 0;
-}
-
-int
-MultiBitSelBloomFilter::readBit(const int index)
-{
-    return 0;
-}
-
-void
-MultiBitSelBloomFilter::writeBit(const int index, const int value)
-{
-}
-
-int
 MultiBitSelBloomFilter::getTotalCount()
 {
     int count = 0;
diff --git a/src/mem/ruby/filters/MultiBitSelBloomFilter.hh b/src/mem/ruby/filters/MultiBitSelBloomFilter.hh
index 94ec38d..45952de 100644
--- a/src/mem/ruby/filters/MultiBitSelBloomFilter.hh
+++ b/src/mem/ruby/filters/MultiBitSelBloomFilter.hh
@@ -50,10 +50,6 @@
     int getCount(Addr addr);
     int getTotalCount();
 
-    int getIndex(Addr addr);
-    int readBit(const int index);
-    void writeBit(const int index, const int value);
-
     int
     operator[](const int index) const
     {
diff --git a/src/mem/ruby/filters/MultiGrainBloomFilter.cc b/src/mem/ruby/filters/MultiGrainBloomFilter.cc
index a4de7a7..29af6eb 100644
--- a/src/mem/ruby/filters/MultiGrainBloomFilter.cc
+++ b/src/mem/ruby/filters/MultiGrainBloomFilter.cc
@@ -112,26 +112,6 @@
 }
 
 int
-MultiGrainBloomFilter::getIndex(Addr addr)
-{
-    return 0;
-    // TODO
-}
-
-int
-MultiGrainBloomFilter::readBit(const int index)
-{
-    return 0;
-    // TODO
-}
-
-void
-MultiGrainBloomFilter::writeBit(const int index, const int value)
-{
-    // TODO
-}
-
-int
 MultiGrainBloomFilter::get_block_index(Addr addr)
 {
     // grap a chunk of bits after byte offset
diff --git a/src/mem/ruby/filters/MultiGrainBloomFilter.hh b/src/mem/ruby/filters/MultiGrainBloomFilter.hh
index 3be6ff6..6f9a584 100644
--- a/src/mem/ruby/filters/MultiGrainBloomFilter.hh
+++ b/src/mem/ruby/filters/MultiGrainBloomFilter.hh
@@ -47,9 +47,6 @@
     bool isSet(Addr addr);
     int getCount(Addr addr);
     int getTotalCount();
-    int getIndex(Addr addr);
-    int readBit(const int index);
-    void writeBit(const int index, const int value);
 
   private:
     int get_block_index(Addr addr);
diff --git a/src/mem/ruby/filters/NonCountingBloomFilter.cc b/src/mem/ruby/filters/NonCountingBloomFilter.cc
index f012a72..50432d7 100644
--- a/src/mem/ruby/filters/NonCountingBloomFilter.cc
+++ b/src/mem/ruby/filters/NonCountingBloomFilter.cc
@@ -105,24 +105,6 @@
 }
 
 int
-NonCountingBloomFilter::getIndex(Addr addr)
-{
-    return get_index(addr);
-}
-
-int
-NonCountingBloomFilter::readBit(const int index)
-{
-    return m_filter[index];
-}
-
-void
-NonCountingBloomFilter::writeBit(const int index, const int value)
-{
-    m_filter[index] = value;
-}
-
-int
 NonCountingBloomFilter::get_index(Addr addr)
 {
     return bitSelect(addr, RubySystem::getBlockSizeBits() + m_offset,
diff --git a/src/mem/ruby/filters/NonCountingBloomFilter.hh b/src/mem/ruby/filters/NonCountingBloomFilter.hh
index 2f1885d..0861060 100644
--- a/src/mem/ruby/filters/NonCountingBloomFilter.hh
+++ b/src/mem/ruby/filters/NonCountingBloomFilter.hh
@@ -49,10 +49,6 @@
     int getCount(Addr addr);
     int getTotalCount();
 
-    int getIndex(Addr addr);
-    int readBit(const int index);
-    void writeBit(const int index, const int value);
-
     int
     operator[](const int index) const
     {