diff --git a/src/mem/ruby/filters/AbstractBloomFilter.hh b/src/mem/ruby/filters/AbstractBloomFilter.hh
index 6da4a9d..bdf7c63 100644
--- a/src/mem/ruby/filters/AbstractBloomFilter.hh
+++ b/src/mem/ruby/filters/AbstractBloomFilter.hh
@@ -29,8 +29,6 @@
 #ifndef __MEM_RUBY_FILTERS_ABSTRACTBLOOMFILTER_HH__
 #define __MEM_RUBY_FILTERS_ABSTRACTBLOOMFILTER_HH__
 
-#include <iostream>
-
 #include "mem/ruby/common/Address.hh"
 
 class AbstractBloomFilter
@@ -54,8 +52,6 @@
     virtual int getCount(Addr addr) = 0;
     virtual int getTotalCount() = 0;
 
-    virtual void print(std::ostream& out) const = 0;
-
     virtual int getIndex(Addr addr) = 0;
     virtual int readBit(const int index) = 0;
     virtual void writeBit(const int index, const int value) = 0;
diff --git a/src/mem/ruby/filters/BlockBloomFilter.cc b/src/mem/ruby/filters/BlockBloomFilter.cc
index 262ca8b..e990497 100644
--- a/src/mem/ruby/filters/BlockBloomFilter.cc
+++ b/src/mem/ruby/filters/BlockBloomFilter.cc
@@ -29,11 +29,8 @@
 #include "mem/ruby/filters/BlockBloomFilter.hh"
 
 #include "base/intmath.hh"
-#include "base/str.hh"
 #include "mem/ruby/system/RubySystem.hh"
 
-using namespace std;
-
 BlockBloomFilter::BlockBloomFilter(int size)
 {
     m_filter_size = size;
@@ -108,11 +105,6 @@
     return get_index(addr);
 }
 
-void
-BlockBloomFilter::print(ostream& out) const
-{
-}
-
 int
 BlockBloomFilter::readBit(const int index)
 {
diff --git a/src/mem/ruby/filters/BlockBloomFilter.hh b/src/mem/ruby/filters/BlockBloomFilter.hh
index d015e1e..088759c 100644
--- a/src/mem/ruby/filters/BlockBloomFilter.hh
+++ b/src/mem/ruby/filters/BlockBloomFilter.hh
@@ -29,7 +29,6 @@
 #ifndef __MEM_RUBY_FILTERS_BLOCKBLOOMFILTER_HH__
 #define __MEM_RUBY_FILTERS_BLOCKBLOOMFILTER_HH__
 
-#include <iostream>
 #include <vector>
 
 #include "mem/ruby/common/Address.hh"
@@ -53,8 +52,6 @@
     int readBit(const int index);
     void writeBit(const int index, const int value);
 
-    void print(std::ostream& out) const;
-
   private:
     int get_index(Addr addr);
 
diff --git a/src/mem/ruby/filters/BulkBloomFilter.cc b/src/mem/ruby/filters/BulkBloomFilter.cc
index a7e0278..d7fa1a3 100644
--- a/src/mem/ruby/filters/BulkBloomFilter.cc
+++ b/src/mem/ruby/filters/BulkBloomFilter.cc
@@ -31,11 +31,8 @@
 #include <cassert>
 
 #include "base/intmath.hh"
-#include "base/str.hh"
 #include "mem/ruby/system/RubySystem.hh"
 
-using namespace std;
-
 BulkBloomFilter::BulkBloomFilter(int size)
 {
     m_filter_size = size;
@@ -185,11 +182,6 @@
     // TODO
 }
 
-void
-BulkBloomFilter::print(ostream& out) const
-{
-}
-
 int
 BulkBloomFilter::get_index(Addr addr)
 {
diff --git a/src/mem/ruby/filters/BulkBloomFilter.hh b/src/mem/ruby/filters/BulkBloomFilter.hh
index 683bbe1..a3df105 100644
--- a/src/mem/ruby/filters/BulkBloomFilter.hh
+++ b/src/mem/ruby/filters/BulkBloomFilter.hh
@@ -29,7 +29,6 @@
 #ifndef __MEM_RUBY_FILTERS_BULKBLOOMFILTER_HH__
 #define __MEM_RUBY_FILTERS_BULKBLOOMFILTER_HH__
 
-#include <iostream>
 #include <vector>
 
 #include "mem/ruby/common/Address.hh"
@@ -52,8 +51,6 @@
     int readBit(const int index);
     void writeBit(const int index, const int value);
 
-    void print(std::ostream& out) const;
-
   private:
     int get_index(Addr addr);
     Addr permute(Addr addr);
diff --git a/src/mem/ruby/filters/H3BloomFilter.cc b/src/mem/ruby/filters/H3BloomFilter.cc
index 6fa182f..90b3546 100644
--- a/src/mem/ruby/filters/H3BloomFilter.cc
+++ b/src/mem/ruby/filters/H3BloomFilter.cc
@@ -29,9 +29,6 @@
 #include "mem/ruby/filters/H3BloomFilter.hh"
 
 #include "base/intmath.hh"
-#include "base/logging.hh"
-
-using namespace std;
 
 static int H3[64][16] = {
     { 33268410,   395488709,  311024285,  456111753,
@@ -469,11 +466,6 @@
     return count;
 }
 
-void
-H3BloomFilter::print(ostream& out) const
-{
-}
-
 int
 H3BloomFilter::get_index(Addr addr, int i)
 {
diff --git a/src/mem/ruby/filters/H3BloomFilter.hh b/src/mem/ruby/filters/H3BloomFilter.hh
index b9890e7..93dc7d3 100644
--- a/src/mem/ruby/filters/H3BloomFilter.hh
+++ b/src/mem/ruby/filters/H3BloomFilter.hh
@@ -29,7 +29,6 @@
 #ifndef __MEM_RUBY_FILTERS_H3BLOOMFILTER_HH__
 #define __MEM_RUBY_FILTERS_H3BLOOMFILTER_HH__
 
-#include <iostream>
 #include <vector>
 
 #include "mem/ruby/common/Address.hh"
@@ -48,7 +47,6 @@
     bool isSet(Addr addr);
     int getCount(Addr addr);
     int getTotalCount();
-    void print(std::ostream& out) const;
 
     int getIndex(Addr addr);
     int readBit(const int index);
diff --git a/src/mem/ruby/filters/LSB_CountingBloomFilter.cc b/src/mem/ruby/filters/LSB_CountingBloomFilter.cc
index 25e1dbf..98c480b 100644
--- a/src/mem/ruby/filters/LSB_CountingBloomFilter.cc
+++ b/src/mem/ruby/filters/LSB_CountingBloomFilter.cc
@@ -31,8 +31,6 @@
 #include "base/intmath.hh"
 #include "mem/ruby/system/RubySystem.hh"
 
-using namespace std;
-
 LSB_CountingBloomFilter::LSB_CountingBloomFilter(int head, int tail)
 {
     m_filter_size = head;
@@ -109,11 +107,6 @@
     return get_index(addr);
 }
 
-void
-LSB_CountingBloomFilter::print(ostream& out) const
-{
-}
-
 int
 LSB_CountingBloomFilter::readBit(const int index)
 {
diff --git a/src/mem/ruby/filters/LSB_CountingBloomFilter.hh b/src/mem/ruby/filters/LSB_CountingBloomFilter.hh
index 03602a3..11df169 100644
--- a/src/mem/ruby/filters/LSB_CountingBloomFilter.hh
+++ b/src/mem/ruby/filters/LSB_CountingBloomFilter.hh
@@ -29,7 +29,6 @@
 #ifndef __MEM_RUBY_FILTERS_LSB_COUNTINGBLOOMFILTER_HH__
 #define __MEM_RUBY_FILTERS_LSB_COUNTINGBLOOMFILTER_HH__
 
-#include <iostream>
 #include <vector>
 
 #include "mem/ruby/common/Address.hh"
@@ -53,8 +52,6 @@
     int readBit(const int index);
     void writeBit(const int index, const int value);
 
-    void print(std::ostream& out) const;
-
   private:
     int get_index(Addr addr);
 
diff --git a/src/mem/ruby/filters/MultiBitSelBloomFilter.cc b/src/mem/ruby/filters/MultiBitSelBloomFilter.cc
index 3dc392f..206e5b0 100644
--- a/src/mem/ruby/filters/MultiBitSelBloomFilter.cc
+++ b/src/mem/ruby/filters/MultiBitSelBloomFilter.cc
@@ -31,9 +31,6 @@
 #include <vector>
 
 #include "base/intmath.hh"
-#include "base/logging.hh"
-
-using namespace std;
 
 MultiBitSelBloomFilter::MultiBitSelBloomFilter(std::size_t filter_size,
     int num_hashes, int skip_bits, bool is_parallel)
@@ -124,11 +121,6 @@
     return count;
 }
 
-void
-MultiBitSelBloomFilter::print(ostream& out) const
-{
-}
-
 int
 MultiBitSelBloomFilter::get_index(Addr addr, int i)
 {
diff --git a/src/mem/ruby/filters/MultiBitSelBloomFilter.hh b/src/mem/ruby/filters/MultiBitSelBloomFilter.hh
index 1f652b2..94ec38d 100644
--- a/src/mem/ruby/filters/MultiBitSelBloomFilter.hh
+++ b/src/mem/ruby/filters/MultiBitSelBloomFilter.hh
@@ -29,7 +29,6 @@
 #ifndef __MEM_RUBY_FILTERS_MULTIBITSELBLOOMFILTER_HH__
 #define __MEM_RUBY_FILTERS_MULTIBITSELBLOOMFILTER_HH__
 
-#include <iostream>
 #include <vector>
 
 #include "mem/ruby/common/Address.hh"
@@ -50,7 +49,6 @@
     bool isSet(Addr addr);
     int getCount(Addr addr);
     int getTotalCount();
-    void print(std::ostream& out) const;
 
     int getIndex(Addr addr);
     int readBit(const int index);
diff --git a/src/mem/ruby/filters/MultiGrainBloomFilter.cc b/src/mem/ruby/filters/MultiGrainBloomFilter.cc
index fef8fa8..a4de7a7 100644
--- a/src/mem/ruby/filters/MultiGrainBloomFilter.cc
+++ b/src/mem/ruby/filters/MultiGrainBloomFilter.cc
@@ -29,11 +29,8 @@
 #include "mem/ruby/filters/MultiGrainBloomFilter.hh"
 
 #include "base/intmath.hh"
-#include "base/str.hh"
 #include "mem/ruby/system/RubySystem.hh"
 
-using namespace std;
-
 MultiGrainBloomFilter::MultiGrainBloomFilter(int head, int tail)
 {
     // head contains size of 1st bloom filter, tail contains size of
@@ -134,11 +131,6 @@
     // TODO
 }
 
-void
-MultiGrainBloomFilter::print(ostream& out) const
-{
-}
-
 int
 MultiGrainBloomFilter::get_block_index(Addr addr)
 {
diff --git a/src/mem/ruby/filters/MultiGrainBloomFilter.hh b/src/mem/ruby/filters/MultiGrainBloomFilter.hh
index c232927..3be6ff6 100644
--- a/src/mem/ruby/filters/MultiGrainBloomFilter.hh
+++ b/src/mem/ruby/filters/MultiGrainBloomFilter.hh
@@ -29,7 +29,6 @@
 #ifndef __MEM_RUBY_FILTERS_MULTIGRAINBLOOMFILTER_HH__
 #define __MEM_RUBY_FILTERS_MULTIGRAINBLOOMFILTER_HH__
 
-#include <iostream>
 #include <vector>
 
 #include "mem/ruby/common/Address.hh"
@@ -52,8 +51,6 @@
     int readBit(const int index);
     void writeBit(const int index, const int value);
 
-    void print(std::ostream& out) const;
-
   private:
     int get_block_index(Addr addr);
     int get_page_index(Addr addr);
diff --git a/src/mem/ruby/filters/NonCountingBloomFilter.cc b/src/mem/ruby/filters/NonCountingBloomFilter.cc
index ca1cbab..f012a72 100644
--- a/src/mem/ruby/filters/NonCountingBloomFilter.cc
+++ b/src/mem/ruby/filters/NonCountingBloomFilter.cc
@@ -32,8 +32,6 @@
 #include "base/str.hh"
 #include "mem/ruby/system/RubySystem.hh"
 
-using namespace std;
-
 NonCountingBloomFilter::NonCountingBloomFilter(int head, int tail)
 {
     // head contains filter size, tail contains bit offset from block number
@@ -106,11 +104,6 @@
     return count;
 }
 
-void
-NonCountingBloomFilter::print(ostream& out) const
-{
-}
-
 int
 NonCountingBloomFilter::getIndex(Addr addr)
 {
diff --git a/src/mem/ruby/filters/NonCountingBloomFilter.hh b/src/mem/ruby/filters/NonCountingBloomFilter.hh
index 9d1ad00..2f1885d 100644
--- a/src/mem/ruby/filters/NonCountingBloomFilter.hh
+++ b/src/mem/ruby/filters/NonCountingBloomFilter.hh
@@ -29,7 +29,6 @@
 #ifndef __MEM_RUBY_FILTERS_NONCOUNTINGBLOOMFILTER_HH__
 #define __MEM_RUBY_FILTERS_NONCOUNTINGBLOOMFILTER_HH__
 
-#include <iostream>
 #include <vector>
 
 #include "mem/ruby/common/Address.hh"
@@ -54,8 +53,6 @@
     int readBit(const int index);
     void writeBit(const int index, const int value);
 
-    void print(std::ostream& out) const;
-
     int
     operator[](const int index) const
     {
