base: Simplify the AddrRangeMap by removing unused code
authorAndreas Hansson <andreas.hansson@arm.com>
Mon, 7 Jan 2013 18:05:38 +0000 (13:05 -0500)
committerAndreas Hansson <andreas.hansson@arm.com>
Mon, 7 Jan 2013 18:05:38 +0000 (13:05 -0500)
This patch cleans up the AddrRangeMap in preparation for the addition
of interleaving by removing unused code. The non-const editions of
find are never used, and hence the duplication is not needed.

src/base/addr_range_map.hh
src/mem/physical.cc

index 1992c5e48ccb0f50a3c159276b8fdeee48fecdf5..e38e2570221b0763b012d526df87de7e443734f9 100644 (file)
@@ -68,32 +68,10 @@ class AddrRangeMap
     const_iterator
     find(const AddrRange &r) const
     {
-        const_iterator i;
-
-        i = tree.upper_bound(r);
-
-        if (i == tree.begin()) {
-            if (i->first.intersects(r))
-                return i;
-            else
-                // Nothing could match, so return end()
-                return tree.end();
-        }
-
-        --i;
-
-        if (i->first.intersects(r))
-            return i;
-
-        return tree.end();
-    }
-
-    iterator
-    find(const AddrRange &r)
-    {
-        iterator i;
+        if (tree.empty())
+            return tree.end();
 
-        i = tree.upper_bound(r);
+        const_iterator i = tree.upper_bound(r);
 
         if (i == tree.begin()) {
             if (i->first.intersects(r))
@@ -117,23 +95,13 @@ class AddrRangeMap
         return find(RangeSize(r, 1));
     }
 
-    iterator
-    find(const Addr &r)
-    {
-        return find(RangeSize(r, 1));
-    }
-
     bool
-    intersect(const AddrRange &r)
+    intersect(const AddrRange &r) const
     {
-        iterator i;
-        i = find(r);
-        if (i != tree.end())
-            return true;
-        return false;
+        return find(r) != tree.end();
     }
 
-    iterator
+    const_iterator
     insert(const AddrRange &r, const V& d)
     {
         if (intersect(r))
@@ -142,12 +110,6 @@ class AddrRangeMap
         return tree.insert(std::make_pair(r, d)).first;
     }
 
-    std::size_t
-    erase(Addr k)
-    {
-        return tree.erase(k);
-    }
-
     void
     erase(iterator p)
     {
index ef1f7159e457f2871682bfb1f08c142883c5da79..ae5da82fdda34ae4dce0f32d99e5d14439aa43d1 100644 (file)
@@ -325,7 +325,8 @@ PhysicalMemory::unserialize(Checkpoint* cp, const string& section)
     arrayParamIn(cp, section, "lal_addr", lal_addr);
     arrayParamIn(cp, section, "lal_cid", lal_cid);
     for(size_t i = 0; i < lal_addr.size(); ++i) {
-        AddrRangeMap<AbstractMemory*>::iterator m = addrMap.find(lal_addr[i]);
+        AddrRangeMap<AbstractMemory*>::const_iterator m =
+            addrMap.find(lal_addr[i]);
         m->second->addLockedAddr(LockedAddr(lal_addr[i], lal_cid[i]));
     }