From 006818aeea6176c4500c5f7414e9f2a822c77062 Mon Sep 17 00:00:00 2001 From: Nathan Binkert Date: Thu, 10 Jun 2010 23:17:07 -0700 Subject: ruby: get rid of Vector and use STL add a couple of helper functions to base for deleteing all pointers in a container and outputting containers to a stream --- src/mem/gems_common/Map.hh | 33 +- src/mem/gems_common/PrioHeap.hh | 10 +- src/mem/gems_common/Vector.hh | 337 --------------------- src/mem/ruby/buffers/MessageBuffer.hh | 2 +- src/mem/ruby/common/DataBlock.hh | 1 - src/mem/ruby/common/Histogram.cc | 2 +- src/mem/ruby/common/Histogram.hh | 4 +- src/mem/ruby/common/NetDest.cc | 12 +- src/mem/ruby/common/NetDest.hh | 8 +- src/mem/ruby/common/SubBlock.cc | 5 +- src/mem/ruby/common/SubBlock.hh | 6 +- src/mem/ruby/eventqueue/RubyEventQueue.hh | 1 - src/mem/ruby/filters/BlockBloomFilter.cc | 2 +- src/mem/ruby/filters/BlockBloomFilter.hh | 4 +- src/mem/ruby/filters/BulkBloomFilter.cc | 4 +- src/mem/ruby/filters/BulkBloomFilter.hh | 6 +- src/mem/ruby/filters/H3BloomFilter.cc | 2 +- src/mem/ruby/filters/H3BloomFilter.hh | 4 +- src/mem/ruby/filters/LSB_CountingBloomFilter.cc | 2 +- src/mem/ruby/filters/LSB_CountingBloomFilter.hh | 4 +- src/mem/ruby/filters/MultiBitSelBloomFilter.cc | 2 +- src/mem/ruby/filters/MultiBitSelBloomFilter.hh | 4 +- src/mem/ruby/filters/MultiGrainBloomFilter.cc | 4 +- src/mem/ruby/filters/MultiGrainBloomFilter.hh | 6 +- src/mem/ruby/filters/NonCountingBloomFilter.cc | 2 +- src/mem/ruby/filters/NonCountingBloomFilter.hh | 4 +- src/mem/ruby/network/Network.cc | 2 +- src/mem/ruby/network/Network.hh | 3 +- .../garnet/fixed-pipeline/GarnetNetwork_d.cc | 48 +-- .../garnet/fixed-pipeline/GarnetNetwork_d.hh | 18 +- .../network/garnet/fixed-pipeline/InputUnit_d.cc | 6 +- .../network/garnet/fixed-pipeline/InputUnit_d.hh | 4 +- .../garnet/fixed-pipeline/NetworkInterface_d.cc | 24 +- .../garnet/fixed-pipeline/NetworkInterface_d.hh | 17 +- .../network/garnet/fixed-pipeline/NetworkLink_d.cc | 6 +- .../network/garnet/fixed-pipeline/NetworkLink_d.hh | 5 +- .../network/garnet/fixed-pipeline/OutputUnit_d.cc | 6 +- .../network/garnet/fixed-pipeline/OutputUnit_d.hh | 3 +- .../ruby/network/garnet/fixed-pipeline/Router_d.cc | 10 +- .../ruby/network/garnet/fixed-pipeline/Router_d.hh | 10 +- .../network/garnet/fixed-pipeline/RoutingUnit_d.cc | 4 +- .../network/garnet/fixed-pipeline/RoutingUnit_d.hh | 4 +- .../network/garnet/fixed-pipeline/SWallocator_d.cc | 12 +- .../network/garnet/fixed-pipeline/SWallocator_d.hh | 13 +- .../ruby/network/garnet/fixed-pipeline/Switch_d.cc | 7 +- .../ruby/network/garnet/fixed-pipeline/Switch_d.hh | 5 +- .../network/garnet/fixed-pipeline/VCallocator_d.cc | 20 +- .../network/garnet/fixed-pipeline/VCallocator_d.hh | 13 +- .../garnet/flexible-pipeline/GarnetNetwork.cc | 40 +-- .../garnet/flexible-pipeline/GarnetNetwork.hh | 16 +- .../garnet/flexible-pipeline/NetworkInterface.cc | 22 +- .../garnet/flexible-pipeline/NetworkInterface.hh | 14 +- .../garnet/flexible-pipeline/NetworkLink.cc | 4 +- .../garnet/flexible-pipeline/NetworkLink.hh | 5 +- .../network/garnet/flexible-pipeline/Router.cc | 50 +-- .../network/garnet/flexible-pipeline/Router.hh | 23 +- src/mem/ruby/network/simple/PerfectSwitch.cc | 26 +- src/mem/ruby/network/simple/PerfectSwitch.hh | 14 +- src/mem/ruby/network/simple/SimpleNetwork.cc | 36 +-- src/mem/ruby/network/simple/SimpleNetwork.hh | 20 +- src/mem/ruby/network/simple/Switch.cc | 35 ++- src/mem/ruby/network/simple/Switch.hh | 12 +- src/mem/ruby/network/simple/Throttle.cc | 14 +- src/mem/ruby/network/simple/Throttle.hh | 16 +- src/mem/ruby/network/simple/Topology.cc | 36 +-- src/mem/ruby/network/simple/Topology.hh | 21 +- src/mem/ruby/profiler/AddressProfiler.cc | 15 +- src/mem/ruby/profiler/CacheProfiler.cc | 15 +- src/mem/ruby/profiler/CacheProfiler.hh | 5 +- src/mem/ruby/profiler/MemCntrlProfiler.cc | 2 +- src/mem/ruby/profiler/MemCntrlProfiler.hh | 6 +- src/mem/ruby/profiler/Profiler.cc | 30 +- src/mem/ruby/profiler/Profiler.hh | 17 +- src/mem/ruby/system/CacheMemory.cc | 10 +- src/mem/ruby/system/CacheMemory.hh | 5 +- src/mem/ruby/system/MemoryVector.hh | 6 +- src/mem/ruby/system/Sequencer.cc | 6 +- src/mem/ruby/system/System.cc | 2 +- src/mem/ruby/system/System.hh | 1 - src/mem/ruby/system/TimerTable.cc | 2 +- src/mem/ruby/tester/DeterministicDriver.cc | 18 +- src/mem/ruby/tester/DeterministicDriver.hh | 19 +- src/mem/ruby/tester/RaceyDriver.cc | 2 +- src/mem/ruby/tester/RaceyDriver.hh | 6 +- src/mem/slicc/symbols/StateMachine.py | 2 +- 85 files changed, 501 insertions(+), 783 deletions(-) delete mode 100644 src/mem/gems_common/Vector.hh (limited to 'src/mem') diff --git a/src/mem/gems_common/Map.hh b/src/mem/gems_common/Map.hh index 7b3c26279..0a1f0f4e1 100644 --- a/src/mem/gems_common/Map.hh +++ b/src/mem/gems_common/Map.hh @@ -34,10 +34,11 @@ #ifndef MAP_H #define MAP_H +#include #include +#include #include "base/hashmap.hh" -#include "mem/gems_common/Vector.hh" template class Map @@ -55,8 +56,8 @@ public: bool exist(const KEY_TYPE& key) const; int size() const { return m_map.size(); } void erase(const KEY_TYPE& key) { assert(exist(key)); m_map.erase(key); } - Vector keys() const; - Vector values() const; + std::vector keys() const; + std::vector values() const; void deleteKeys(); void deleteValues(); VALUE_TYPE& lookup(const KEY_TYPE& key) const; @@ -108,27 +109,29 @@ VALUE_TYPE& Map::lookup(const KEY_TYPE& key) const } template -Vector Map::keys() const +std::vector Map::keys() const { - Vector keys; - const_iterator iter; - for (iter = m_map.begin(); iter != m_map.end(); iter++) { - keys.insertAtBottom((*iter).first); + std::vector keys(m_map.size()); + const_iterator iter = m_map.begin(); + for (int i = 0; i < m_map.size(); ++i) { + keys[i] = iter->first; + ++iter; } + assert(iter == m_map.end()); return keys; } template -Vector Map::values() const +std::vector Map::values() const { - Vector values; - const_iterator iter; - std::pair p; + std::vector values(m_map.size()); + const_iterator iter = m_map.begin(); - for (iter = m_map.begin(); iter != m_map.end(); iter++) { - p = *iter; - values.insertAtBottom(p.second); + for (int i = 0; i < m_map.size(); ++i) { + values[i] = iter->second; + ++iter; } + assert(iter == m_map.end()); return values; } diff --git a/src/mem/gems_common/PrioHeap.hh b/src/mem/gems_common/PrioHeap.hh index d6183cf40..266d35e6a 100644 --- a/src/mem/gems_common/PrioHeap.hh +++ b/src/mem/gems_common/PrioHeap.hh @@ -29,9 +29,9 @@ #ifndef PRIOHEAP_H #define PRIOHEAP_H +#include #include - -#include "mem/gems_common/Vector.hh" +#include typedef unsigned int HeapIndex; @@ -63,7 +63,7 @@ private: PrioHeap& operator=(const PrioHeap& obj); // Data Members (m_ prefix) - Vector m_heap; + std::vector m_heap; HeapIndex m_current_size; }; @@ -109,7 +109,7 @@ void PrioHeap::insert(const TYPE& key) int i; // grow the vector size m_current_size++; - m_heap.setSize(m_current_size+1); + m_heap.resize(m_current_size+1); if(m_current_size == 1){ // HACK: need to initialize index 0 to avoid purify UMCs m_heap[0] = key; @@ -214,7 +214,7 @@ void PrioHeap::heapify() template void PrioHeap::print(std::ostream& out) const { - Vector copyHeap(m_heap); + std::vector copyHeap(m_heap); // sort copyHeap (inefficient, but will not be done often) diff --git a/src/mem/gems_common/Vector.hh b/src/mem/gems_common/Vector.hh deleted file mode 100644 index ddba7a2fc..000000000 --- a/src/mem/gems_common/Vector.hh +++ /dev/null @@ -1,337 +0,0 @@ -/* - * Copyright (c) 1999-2005 Mark D. Hill and David A. Wood - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer; - * 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; - * neither the name of the copyright holders 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 - * OWNER 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. - */ - -/* - * Description: The Vector class is a generic container which acts - * much like an array. The Vector class handles dynamic sizing and - * resizing as well as performing bounds checking on each access. An - * "insertAtBottom" operation is supported to allow adding elements to - * the Vector much like you would add new elements to a linked list or - * queue. - */ - -#ifndef VECTOR_H -#define VECTOR_H - -#include -#include -#include -#include - -template -class Vector -{ -public: - Vector(); - explicit Vector(int initial_size); // Construct with an initial max size - ~Vector(); - const TYPE& ref(int index) const; // Get an element of the vector - TYPE& ref(int index); // Get an element of the vector - void clear(); // remove all elements of the vector - void sortVector(); // sort all elements using < operator - int size() const { return m_size; } - void setSize(int new_size); // Increase size, reallocates memory as needed - void expand(int num) { setSize(m_size+num); } // Increase size by num - void increaseSize(int new_size, const TYPE& reset); // and adds num of slots at the bottom set to reset value - void insertAtTop(const TYPE& element); // Increase size by one and set last element - // FIXME - WARNING: insertAtTop is currently O(n) and needs to be fixed - void insertAtBottom(const TYPE& element); // Increase size by one and set last element - TYPE sum() const; // Uses the += operator to sum all the elements of the vector - void deletePointers(); // Walks the Vector calling delete on all - // elements and sets them to NULL, can only - // be used when the TYPE is a pointer type. - void removeFromTop(int num); // removes elements from top - void print(std::ostream& out) const; - - - // Array Reference operator overloading - const TYPE& operator[](int index) const { return ref(index); } - TYPE& operator[](int index) { return ref(index); } - - // Public copy constructor and assignment operator - Vector(const Vector& vec); - Vector& operator=(const Vector& vec); -private: - - void grow(int new_max_size); // Expands vector to new_max_size - - // Data members - TYPE* m_vec; // Array to hold the elements - int m_size; // Number of elements in use - int m_max_size; // Size of allocated array -}; - -template -std::ostream& operator<<(std::ostream& out, const Vector& vec); - -// ********************* - -template -Vector::Vector() -{ - m_size = 0; - m_max_size = 0; - m_vec = NULL; -} - -template -Vector::Vector(int initial_size) -{ - m_size = 0; - m_max_size = initial_size; - m_vec = NULL; - grow(initial_size); -} - -template -Vector::~Vector() -{ - delete [] m_vec; -} - -template -const TYPE& Vector::ref(int index) const -{ -#ifndef NO_VECTOR_BOUNDS_CHECKS - assert(m_size != 0); - assert(index < m_size); - assert(index >= 0); -#endif - return m_vec[index]; -} - -template -TYPE& Vector::ref(int index) -{ -#ifndef NO_VECTOR_BOUNDS_CHECKS - assert(m_size != 0); - assert(index < m_size); - assert(index >= 0); -#endif - return m_vec[index]; -} - - -template -void Vector::setSize(int new_size) -{ - // FIXME - this should also decrease or shrink the size of the array at some point. - if (new_size > m_max_size) { - grow(std::max((m_max_size+1)*2, new_size)); - } - m_size = new_size; -#ifndef NO_VECTOR_BOUNDS_CHECKS - assert(m_size <= m_max_size); - assert(m_size >= 0); -#endif -} - -template -inline -void Vector::increaseSize(int new_size, const TYPE& reset) -{ - assert(new_size >= m_size); - if (new_size >= m_max_size) { - grow(std::max((m_max_size+1)*2, new_size)); - } - int old_size = m_size; - m_size = new_size; - for (int j = old_size; j < m_size; j++) { - ref(j) = reset; - } - -#ifndef NO_VECTOR_BOUNDS_CHECKS - assert(m_size <= m_max_size); - assert(m_size >= 0); -#endif -} - -template -inline -void Vector::clear() -{ - m_size = 0; - m_max_size = 0; - delete [] m_vec; - m_vec = NULL; -} - -template -inline -void Vector::sortVector() -{ - std::sort(&m_vec[0], &m_vec[m_size]); -} - -template -inline -void Vector::insertAtTop(const TYPE& element) -{ - setSize(m_size+1); - for (int i = m_size-1; i >= 1; i--) { - ref(i) = ref(i-1); - } - ref(0) = element; -} - -template -inline -void Vector::removeFromTop(int num) -{ - if (num > m_size) { - num = m_size; - } - for (int i = 0; i < m_size - num; i++) { - m_vec[i] = m_vec[i+num]; - } - m_size = m_size - num; - -} - -template -void Vector::insertAtBottom(const TYPE& element) -{ - setSize(m_size+1); - ref(m_size-1) = element; -} - -template -TYPE Vector::sum() const -{ - assert(m_size > 0); - TYPE sum = ref(0); - for(int i=1; i -void Vector::deletePointers() -{ - assert(m_size >= 0); - for(int i=0; i -void Vector::print(std::ostream& out) const -{ - out << "[ "; - for(int i=0; i -Vector::Vector(const Vector& vec) -{ - // Setup the new memory - m_size = vec.m_size; - m_max_size = vec.m_max_size; - if (m_max_size != 0) { - m_vec = new TYPE[m_max_size]; - assert(m_vec != NULL); - } else { - m_vec = NULL; - } - - // Copy the elements of the array - for(int i=0; i -Vector& Vector::operator=(const Vector& vec) -{ - if (this == &vec) { - // assert(0); - } else { - // Free the old memory - delete [] m_vec; - - // Setup the new memory - m_size = vec.m_size; - m_max_size = vec.m_max_size; - - if (m_max_size != 0) { - m_vec = new TYPE[m_max_size]; - assert(m_vec != NULL); - } else { - m_vec = NULL; - } - - // Copy the elements of the array - for(int i=0; i -void Vector::grow(int new_max_size) -{ - TYPE* temp_vec; - m_max_size = new_max_size; - if (new_max_size != 0) { - temp_vec = new TYPE[new_max_size]; - assert(temp_vec != NULL); - } else { - temp_vec = NULL; - } - - // Copy the elements of the array - for(int i=0; i -std::ostream& operator<<(std::ostream& out, const Vector& vec) -{ - vec.print(out); - return out; -} - -#endif //VECTOR_H diff --git a/src/mem/ruby/buffers/MessageBuffer.hh b/src/mem/ruby/buffers/MessageBuffer.hh index 1da6c15ae..12799c871 100644 --- a/src/mem/ruby/buffers/MessageBuffer.hh +++ b/src/mem/ruby/buffers/MessageBuffer.hh @@ -121,7 +121,7 @@ class MessageBuffer m_strict_fifo = order; m_ordering_set = true; } - void setSize(int size) { m_max_size = size; } + void resize(int size) { m_max_size = size; } int getSize(); void setRandomization(bool random_flag) { m_randomization = random_flag; } diff --git a/src/mem/ruby/common/DataBlock.hh b/src/mem/ruby/common/DataBlock.hh index edf774166..007040930 100644 --- a/src/mem/ruby/common/DataBlock.hh +++ b/src/mem/ruby/common/DataBlock.hh @@ -32,7 +32,6 @@ #include #include -#include "mem/gems_common/Vector.hh" #include "mem/ruby/common/Global.hh" #include "mem/ruby/system/System.hh" diff --git a/src/mem/ruby/common/Histogram.cc b/src/mem/ruby/common/Histogram.cc index c57b55997..dcb723f1b 100644 --- a/src/mem/ruby/common/Histogram.cc +++ b/src/mem/ruby/common/Histogram.cc @@ -58,7 +58,7 @@ Histogram::clear(int bins) m_bins = bins; m_largest_bin = 0; m_max = 0; - m_data.setSize(m_bins); + m_data.resize(m_bins); for (int i = 0; i < m_bins; i++) { m_data[i] = 0; } diff --git a/src/mem/ruby/common/Histogram.hh b/src/mem/ruby/common/Histogram.hh index e5cd211d6..81cfbd477 100644 --- a/src/mem/ruby/common/Histogram.hh +++ b/src/mem/ruby/common/Histogram.hh @@ -30,9 +30,9 @@ #define __MEM_RUBY_COMMON_HISTOGRAM_HH__ #include +#include #include "mem/ruby/common/Global.hh" -#include "mem/gems_common/Vector.hh" class Histogram { @@ -56,7 +56,7 @@ class Histogram void print(std::ostream& out) const; private: - Vector m_data; + std::vector m_data; int64 m_max; // the maximum value seen so far int64 m_count; // the number of elements added int m_binsize; // the size of each bucket diff --git a/src/mem/ruby/common/NetDest.cc b/src/mem/ruby/common/NetDest.cc index 509d0d223..dbe02b0ca 100644 --- a/src/mem/ruby/common/NetDest.cc +++ b/src/mem/ruby/common/NetDest.cc @@ -31,7 +31,7 @@ NetDest::NetDest() { - setSize(); + resize(); } void @@ -107,16 +107,16 @@ NetDest::broadcast(MachineType machineType) } //For Princeton Network -Vector +std::vector NetDest::getAllDest() { - Vector dest; + std::vector dest; dest.clear(); for (int i = 0; i < m_bits.size(); i++) { for (int j = 0; j < m_bits[i].getSize(); j++) { if (m_bits[i].isElement(j)) { int id = MachineType_base_number((MachineType)i) + j; - dest.insertAtBottom((NodeID)id); + dest.push_back((NodeID)id); } } } @@ -249,9 +249,9 @@ NetDest::isElement(MachineID element) const } void -NetDest::setSize() +NetDest::resize() { - m_bits.setSize(MachineType_base_level(MachineType_NUM)); + m_bits.resize(MachineType_base_level(MachineType_NUM)); assert(m_bits.size() == MachineType_NUM); for (int i = 0; i < m_bits.size(); i++) { diff --git a/src/mem/ruby/common/NetDest.hh b/src/mem/ruby/common/NetDest.hh index a8d0009d7..3fe87f69b 100644 --- a/src/mem/ruby/common/NetDest.hh +++ b/src/mem/ruby/common/NetDest.hh @@ -35,8 +35,8 @@ #define __MEM_RUBY_COMMON_NETDEST_HH__ #include +#include -#include "mem/gems_common/Vector.hh" #include "mem/protocol/MachineType.hh" #include "mem/ruby/common/Global.hh" #include "mem/ruby/common/Set.hh" @@ -89,12 +89,12 @@ class NetDest bool isEmpty() const; // For Princeton Network - Vector getAllDest(); + std::vector getAllDest(); MachineID smallestElement() const; MachineID smallestElement(MachineType machine) const; - void setSize(); + void resize(); int getSize() const { return m_bits.size(); } // get element for a index @@ -119,7 +119,7 @@ class NetDest return index; } - Vector m_bits; // a Vector of bit vectors - i.e. Sets + std::vector m_bits; // a vector of bit vectors - i.e. Sets }; inline std::ostream& diff --git a/src/mem/ruby/common/SubBlock.cc b/src/mem/ruby/common/SubBlock.cc index 5a42a415d..48485bf8b 100644 --- a/src/mem/ruby/common/SubBlock.cc +++ b/src/mem/ruby/common/SubBlock.cc @@ -26,12 +26,15 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#include "base/stl_helpers.hh" #include "mem/ruby/common/SubBlock.hh" +using m5::stl_helpers::operator<<; + SubBlock::SubBlock(const Address& addr, int size) { m_address = addr; - setSize(size); + resize(size); for (int i = 0; i < size; i++) { setByte(i, 0); } diff --git a/src/mem/ruby/common/SubBlock.hh b/src/mem/ruby/common/SubBlock.hh index 571d45b57..3ebc99630 100644 --- a/src/mem/ruby/common/SubBlock.hh +++ b/src/mem/ruby/common/SubBlock.hh @@ -30,8 +30,8 @@ #define __MEM_RUBY_COMMON_SUBBLOCK_HH__ #include +#include -#include "mem/gems_common/Vector.hh" #include "mem/ruby/common/Address.hh" #include "mem/ruby/common/DataBlock.hh" #include "mem/ruby/common/Global.hh" @@ -47,7 +47,7 @@ class SubBlock void setAddress(const Address& addr) { m_address = addr; } int getSize() const { return m_data.size(); } - void setSize(int size) { m_data.setSize(size); } + void resize(int size) { m_data.resize(size); } uint8 getByte(int offset) const { return m_data[offset]; } void setByte(int offset, uint8 data) { m_data[offset] = data; } @@ -68,7 +68,7 @@ class SubBlock // Data Members (m_ prefix) Address m_address; - Vector m_data; + std::vector m_data; }; inline std::ostream& diff --git a/src/mem/ruby/eventqueue/RubyEventQueue.hh b/src/mem/ruby/eventqueue/RubyEventQueue.hh index d2ebc42c2..4a0fb9ceb 100644 --- a/src/mem/ruby/eventqueue/RubyEventQueue.hh +++ b/src/mem/ruby/eventqueue/RubyEventQueue.hh @@ -60,7 +60,6 @@ #include "config/no_vector_bounds_checks.hh" #include "mem/ruby/common/Global.hh" -#include "mem/gems_common/Vector.hh" #include "sim/eventq.hh" class Consumer; diff --git a/src/mem/ruby/filters/BlockBloomFilter.cc b/src/mem/ruby/filters/BlockBloomFilter.cc index 875a0d015..04e548fea 100644 --- a/src/mem/ruby/filters/BlockBloomFilter.cc +++ b/src/mem/ruby/filters/BlockBloomFilter.cc @@ -48,7 +48,7 @@ BlockBloomFilter::BlockBloomFilter(string str) m_filter_size = atoi(head.c_str()); m_filter_size_bits = floorLog2(m_filter_size); - m_filter.setSize(m_filter_size); + m_filter.resize(m_filter_size); clear(); } diff --git a/src/mem/ruby/filters/BlockBloomFilter.hh b/src/mem/ruby/filters/BlockBloomFilter.hh index be31b025f..ade599f42 100644 --- a/src/mem/ruby/filters/BlockBloomFilter.hh +++ b/src/mem/ruby/filters/BlockBloomFilter.hh @@ -31,8 +31,8 @@ #include #include +#include -#include "mem/gems_common/Map.hh" #include "mem/ruby/common/Address.hh" #include "mem/ruby/common/Global.hh" #include "mem/ruby/filters/AbstractBloomFilter.hh" @@ -62,7 +62,7 @@ class BlockBloomFilter : public AbstractBloomFilter private: int get_index(const Address& addr); - Vector m_filter; + std::vector m_filter; int m_filter_size; int m_filter_size_bits; diff --git a/src/mem/ruby/filters/BulkBloomFilter.cc b/src/mem/ruby/filters/BulkBloomFilter.cc index a03cba37b..887c024dd 100644 --- a/src/mem/ruby/filters/BulkBloomFilter.cc +++ b/src/mem/ruby/filters/BulkBloomFilter.cc @@ -49,8 +49,8 @@ BulkBloomFilter::BulkBloomFilter(string str) // split the filter bits in half, c0 and c1 m_sector_bits = m_filter_size_bits - 1; - m_temp_filter.setSize(m_filter_size); - m_filter.setSize(m_filter_size); + m_temp_filter.resize(m_filter_size); + m_filter.resize(m_filter_size); clear(); // clear temp filter diff --git a/src/mem/ruby/filters/BulkBloomFilter.hh b/src/mem/ruby/filters/BulkBloomFilter.hh index 5a3117a60..50b24732f 100644 --- a/src/mem/ruby/filters/BulkBloomFilter.hh +++ b/src/mem/ruby/filters/BulkBloomFilter.hh @@ -31,8 +31,8 @@ #include #include +#include -#include "mem/gems_common/Map.hh" #include "mem/ruby/common/Address.hh" #include "mem/ruby/common/Global.hh" #include "mem/ruby/filters/AbstractBloomFilter.hh" @@ -63,8 +63,8 @@ class BulkBloomFilter : public AbstractBloomFilter int get_index(const Address& addr); Address permute(const Address & addr); - Vector m_filter; - Vector m_temp_filter; + std::vector m_filter; + std::vector m_temp_filter; int m_filter_size; int m_filter_size_bits; diff --git a/src/mem/ruby/filters/H3BloomFilter.cc b/src/mem/ruby/filters/H3BloomFilter.cc index d0a4f400d..683dbc1fc 100644 --- a/src/mem/ruby/filters/H3BloomFilter.cc +++ b/src/mem/ruby/filters/H3BloomFilter.cc @@ -401,7 +401,7 @@ H3BloomFilter::H3BloomFilter(string str) m_par_filter_size = m_filter_size / m_num_hashes; m_par_filter_size_bits = floorLog2(m_par_filter_size); - m_filter.setSize(m_filter_size); + m_filter.resize(m_filter_size); clear(); } diff --git a/src/mem/ruby/filters/H3BloomFilter.hh b/src/mem/ruby/filters/H3BloomFilter.hh index babd86657..b040af42f 100644 --- a/src/mem/ruby/filters/H3BloomFilter.hh +++ b/src/mem/ruby/filters/H3BloomFilter.hh @@ -31,8 +31,8 @@ #include #include +#include -#include "mem/gems_common/Map.hh" #include "mem/ruby/common/Address.hh" #include "mem/ruby/common/Global.hh" #include "mem/ruby/filters/AbstractBloomFilter.hh" @@ -72,7 +72,7 @@ class H3BloomFilter : public AbstractBloomFilter int hash_H3(uint64 value, int index); - Vector m_filter; + std::vector m_filter; int m_filter_size; int m_num_hashes; int m_filter_size_bits; diff --git a/src/mem/ruby/filters/LSB_CountingBloomFilter.cc b/src/mem/ruby/filters/LSB_CountingBloomFilter.cc index 029ce1501..5cd4a6be1 100644 --- a/src/mem/ruby/filters/LSB_CountingBloomFilter.cc +++ b/src/mem/ruby/filters/LSB_CountingBloomFilter.cc @@ -49,7 +49,7 @@ LSB_CountingBloomFilter::LSB_CountingBloomFilter(string str) m_count = atoi(tail.c_str()); m_count_bits = floorLog2(m_count); - m_filter.setSize(m_filter_size); + m_filter.resize(m_filter_size); clear(); } diff --git a/src/mem/ruby/filters/LSB_CountingBloomFilter.hh b/src/mem/ruby/filters/LSB_CountingBloomFilter.hh index 1ce65edcf..252f61682 100644 --- a/src/mem/ruby/filters/LSB_CountingBloomFilter.hh +++ b/src/mem/ruby/filters/LSB_CountingBloomFilter.hh @@ -31,8 +31,8 @@ #include #include +#include -#include "mem/gems_common/Map.hh" #include "mem/ruby/common/Address.hh" #include "mem/ruby/common/Global.hh" #include "mem/ruby/filters/AbstractBloomFilter.hh" @@ -62,7 +62,7 @@ class LSB_CountingBloomFilter : public AbstractBloomFilter private: int get_index(const Address& addr); - Vector m_filter; + std::vector m_filter; int m_filter_size; int m_filter_size_bits; diff --git a/src/mem/ruby/filters/MultiBitSelBloomFilter.cc b/src/mem/ruby/filters/MultiBitSelBloomFilter.cc index 466e3fccb..e57bc3d30 100644 --- a/src/mem/ruby/filters/MultiBitSelBloomFilter.cc +++ b/src/mem/ruby/filters/MultiBitSelBloomFilter.cc @@ -61,7 +61,7 @@ MultiBitSelBloomFilter::MultiBitSelBloomFilter(string str) m_par_filter_size = m_filter_size / m_num_hashes; m_par_filter_size_bits = floorLog2(m_par_filter_size); - m_filter.setSize(m_filter_size); + m_filter.resize(m_filter_size); clear(); } diff --git a/src/mem/ruby/filters/MultiBitSelBloomFilter.hh b/src/mem/ruby/filters/MultiBitSelBloomFilter.hh index f53b2595a..5263309a4 100644 --- a/src/mem/ruby/filters/MultiBitSelBloomFilter.hh +++ b/src/mem/ruby/filters/MultiBitSelBloomFilter.hh @@ -31,8 +31,8 @@ #include #include +#include -#include "mem/gems_common/Map.hh" #include "mem/ruby/common/Address.hh" #include "mem/ruby/common/Global.hh" #include "mem/ruby/filters/AbstractBloomFilter.hh" @@ -73,7 +73,7 @@ class MultiBitSelBloomFilter : public AbstractBloomFilter int hash_bitsel(uint64 value, int index, int jump, int maxBits, int numBits); - Vector m_filter; + std::vector m_filter; int m_filter_size; int m_num_hashes; int m_filter_size_bits; diff --git a/src/mem/ruby/filters/MultiGrainBloomFilter.cc b/src/mem/ruby/filters/MultiGrainBloomFilter.cc index 7b3976473..d05ca925d 100644 --- a/src/mem/ruby/filters/MultiGrainBloomFilter.cc +++ b/src/mem/ruby/filters/MultiGrainBloomFilter.cc @@ -52,8 +52,8 @@ MultiGrainBloomFilter::MultiGrainBloomFilter(string str) m_page_filter_size = atoi(tail.c_str()); m_page_filter_size_bits = floorLog2(m_page_filter_size); - m_filter.setSize(m_filter_size); - m_page_filter.setSize(m_page_filter_size); + m_filter.resize(m_filter_size); + m_page_filter.resize(m_page_filter_size); clear(); } diff --git a/src/mem/ruby/filters/MultiGrainBloomFilter.hh b/src/mem/ruby/filters/MultiGrainBloomFilter.hh index 8be226c02..dfe9c3e98 100644 --- a/src/mem/ruby/filters/MultiGrainBloomFilter.hh +++ b/src/mem/ruby/filters/MultiGrainBloomFilter.hh @@ -31,8 +31,8 @@ #include #include +#include -#include "mem/gems_common/Map.hh" #include "mem/ruby/common/Address.hh" #include "mem/ruby/common/Global.hh" #include "mem/ruby/filters/AbstractBloomFilter.hh" @@ -64,11 +64,11 @@ class MultiGrainBloomFilter : public AbstractBloomFilter int get_page_index(const Address & addr); // The block filter - Vector m_filter; + std::vector m_filter; int m_filter_size; int m_filter_size_bits; // The page number filter - Vector m_page_filter; + std::vector m_page_filter; int m_page_filter_size; int m_page_filter_size_bits; diff --git a/src/mem/ruby/filters/NonCountingBloomFilter.cc b/src/mem/ruby/filters/NonCountingBloomFilter.cc index 909aaf76b..14a16de20 100644 --- a/src/mem/ruby/filters/NonCountingBloomFilter.cc +++ b/src/mem/ruby/filters/NonCountingBloomFilter.cc @@ -48,7 +48,7 @@ NonCountingBloomFilter::NonCountingBloomFilter(string str) m_offset = atoi(tail.c_str()); m_filter_size_bits = floorLog2(m_filter_size); - m_filter.setSize(m_filter_size); + m_filter.resize(m_filter_size); clear(); } diff --git a/src/mem/ruby/filters/NonCountingBloomFilter.hh b/src/mem/ruby/filters/NonCountingBloomFilter.hh index 414de4bc8..57274ef87 100644 --- a/src/mem/ruby/filters/NonCountingBloomFilter.hh +++ b/src/mem/ruby/filters/NonCountingBloomFilter.hh @@ -31,8 +31,8 @@ #include #include +#include -#include "mem/gems_common/Map.hh" #include "mem/ruby/common/Address.hh" #include "mem/ruby/common/Global.hh" #include "mem/ruby/filters/AbstractBloomFilter.hh" @@ -69,7 +69,7 @@ class NonCountingBloomFilter : public AbstractBloomFilter private: int get_index(const Address& addr); - Vector m_filter; + std::vector m_filter; int m_filter_size; int m_offset; int m_filter_size_bits; diff --git a/src/mem/ruby/network/Network.cc b/src/mem/ruby/network/Network.cc index 89b9168b6..f2e056f75 100644 --- a/src/mem/ruby/network/Network.cc +++ b/src/mem/ruby/network/Network.cc @@ -90,7 +90,7 @@ Network::MessageSizeType_to_int(MessageSizeType size_type) return 0; } -const Vector* +const std::vector* Network::getThrottles(NodeID id) const { return NULL; diff --git a/src/mem/ruby/network/Network.hh b/src/mem/ruby/network/Network.hh index fb56904db..51be0105c 100644 --- a/src/mem/ruby/network/Network.hh +++ b/src/mem/ruby/network/Network.hh @@ -42,6 +42,7 @@ #include #include +#include #include "mem/protocol/MessageSizeType.hh" #include "mem/ruby/common/Global.hh" @@ -76,7 +77,7 @@ class Network : public SimObject int netNumber) = 0; virtual MessageBuffer* getFromNetQueue(NodeID id, bool ordered, int netNumber) = 0; - virtual const Vector* getThrottles(NodeID id) const; + virtual const std::vector* getThrottles(NodeID id) const; virtual int getNumNodes() {return 1;} virtual void makeOutLink(SwitchID src, NodeID dest, diff --git a/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc b/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc index 8bdea4894..124a38e93 100644 --- a/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc +++ b/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc @@ -28,6 +28,7 @@ * Authors: Niket Agarwal */ +#include "base/stl_helpers.hh" #include "mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh" #include "mem/protocol/MachineType.hh" #include "mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.hh" @@ -39,6 +40,7 @@ #include "mem/ruby/common/NetDest.hh" using namespace std; +using m5::stl_helpers::deletePointers; GarnetNetwork_d::GarnetNetwork_d(const Params *p) : BaseGarnetNetwork(p) @@ -52,10 +54,10 @@ GarnetNetwork_d::GarnetNetwork_d(const Params *p) m_router_ptr_vector.clear(); // Allocate to and from queues - m_toNetQueues.setSize(m_nodes); // Queues that are getting messages from protocol - m_fromNetQueues.setSize(m_nodes); // Queues that are feeding the protocol - m_in_use.setSize(m_virtual_networks); - m_ordered.setSize(m_virtual_networks); + m_toNetQueues.resize(m_nodes); // Queues that are getting messages from protocol + m_fromNetQueues.resize(m_nodes); // Queues that are feeding the protocol + m_in_use.resize(m_virtual_networks); + m_ordered.resize(m_virtual_networks); for (int i = 0; i < m_virtual_networks; i++) { m_in_use[i] = false; @@ -65,8 +67,8 @@ GarnetNetwork_d::GarnetNetwork_d(const Params *p) for (int node = 0; node < m_nodes; node++) { //Setting how many vitual message buffers will there be per Network Queue - m_toNetQueues[node].setSize(m_virtual_networks); - m_fromNetQueues[node].setSize(m_virtual_networks); + m_toNetQueues[node].resize(m_virtual_networks); + m_fromNetQueues[node].resize(m_virtual_networks); for (int j = 0; j < m_virtual_networks; j++) { @@ -88,13 +90,13 @@ void GarnetNetwork_d::init() int number_of_routers = m_topology_ptr->numSwitches(); for (int i=0; iaddNode(m_toNetQueues[i], m_fromNetQueues[i]); - m_ni_ptr_vector.insertAtBottom(ni); + m_ni_ptr_vector.push_back(ni); } m_topology_ptr->createLinks(this, false); // false because this isn't a reconfiguration for(int i = 0; i < m_router_ptr_vector.size(); i++) @@ -107,13 +109,13 @@ GarnetNetwork_d::~GarnetNetwork_d() { for (int i = 0; i < m_nodes; i++) { - m_toNetQueues[i].deletePointers(); - m_fromNetQueues[i].deletePointers(); + deletePointers(m_toNetQueues[i]); + deletePointers(m_fromNetQueues[i]); } - m_router_ptr_vector.deletePointers(); - m_ni_ptr_vector.deletePointers(); - m_link_ptr_vector.deletePointers(); - m_creditlink_ptr_vector.deletePointers(); + deletePointers(m_router_ptr_vector); + deletePointers(m_ni_ptr_vector); + deletePointers(m_link_ptr_vector); + deletePointers(m_creditlink_ptr_vector); delete m_topology_ptr; } @@ -143,8 +145,8 @@ void GarnetNetwork_d::makeInLink(NodeID src, SwitchID dest, const NetDest& routi { NetworkLink_d *net_link = new NetworkLink_d(m_link_ptr_vector.size(), link_latency, this); CreditLink_d *credit_link = new CreditLink_d(m_creditlink_ptr_vector.size(), link_latency, this); - m_link_ptr_vector.insertAtBottom(net_link); - m_creditlink_ptr_vector.insertAtBottom(credit_link); + m_link_ptr_vector.push_back(net_link); + m_creditlink_ptr_vector.push_back(credit_link); m_router_ptr_vector[dest]->addInPort(net_link, credit_link); m_ni_ptr_vector[src]->addOutPort(net_link, credit_link); @@ -172,8 +174,8 @@ void GarnetNetwork_d::makeOutLink(SwitchID src, NodeID dest, const NetDest& rout { NetworkLink_d *net_link = new NetworkLink_d(m_link_ptr_vector.size(), link_latency, this); CreditLink_d *credit_link = new CreditLink_d(m_creditlink_ptr_vector.size(), link_latency, this); - m_link_ptr_vector.insertAtBottom(net_link); - m_creditlink_ptr_vector.insertAtBottom(credit_link); + m_link_ptr_vector.push_back(net_link); + m_creditlink_ptr_vector.push_back(credit_link); m_router_ptr_vector[src]->addOutPort(net_link, routing_table_entry, link_weight, credit_link); m_ni_ptr_vector[dest]->addInPort(net_link, credit_link); @@ -195,8 +197,8 @@ void GarnetNetwork_d::makeInternalLink(SwitchID src, SwitchID dest, const NetDes { NetworkLink_d *net_link = new NetworkLink_d(m_link_ptr_vector.size(), link_latency, this); CreditLink_d *credit_link = new CreditLink_d(m_creditlink_ptr_vector.size(), link_latency, this); - m_link_ptr_vector.insertAtBottom(net_link); - m_creditlink_ptr_vector.insertAtBottom(credit_link); + m_link_ptr_vector.push_back(net_link); + m_creditlink_ptr_vector.push_back(credit_link); m_router_ptr_vector[dest]->addInPort(net_link, credit_link); m_router_ptr_vector[src]->addOutPort(net_link, routing_table_entry, link_weight, credit_link); @@ -244,8 +246,8 @@ Time GarnetNetwork_d::getRubyStartTime() void GarnetNetwork_d::printStats(ostream& out) const { double average_link_utilization = 0; - Vector average_vc_load; - average_vc_load.setSize(m_virtual_networks*m_vcs_per_class); + vector average_vc_load; + average_vc_load.resize(m_virtual_networks*m_vcs_per_class); for(int i = 0; i < m_virtual_networks*m_vcs_per_class; i++) { @@ -260,7 +262,7 @@ void GarnetNetwork_d::printStats(ostream& out) const { average_link_utilization += (double(m_link_ptr_vector[i]->getLinkUtilization())) / (double(g_eventQueue_ptr->getTime()-m_ruby_start)); - Vector vc_load = m_link_ptr_vector[i]->getVcLoad(); + vector vc_load = m_link_ptr_vector[i]->getVcLoad(); for(int j = 0; j < vc_load.size(); j++) { assert(vc_load.size() == m_vcs_per_class*m_virtual_networks); diff --git a/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh b/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh index 7cb87b21a..7f1b293f4 100644 --- a/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh +++ b/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh @@ -32,9 +32,9 @@ #define GARNETNETWORK_D_H #include +#include #include "mem/ruby/network/garnet/NetworkHeader.hh" -#include "mem/gems_common/Vector.hh" #include "mem/ruby/network/garnet/BaseGarnetNetwork.hh" #include "mem/ruby/network/Network.hh" #include "params/GarnetNetwork_d.hh" @@ -112,16 +112,16 @@ private: int m_flits_recieved, m_flits_injected; double m_network_latency, m_queueing_latency; - Vector m_in_use; - Vector m_ordered; + std::vector m_in_use; + std::vector m_ordered; - Vector > m_toNetQueues; - Vector > m_fromNetQueues; + std::vector > m_toNetQueues; + std::vector > m_fromNetQueues; - Vector m_router_ptr_vector; // All Routers in Network - Vector m_link_ptr_vector; // All links in the network - Vector m_creditlink_ptr_vector; // All links in the network - Vector m_ni_ptr_vector; // All NI's in Network + std::vector m_router_ptr_vector; // All Routers in Network + std::vector m_link_ptr_vector; // All links in the network + std::vector m_creditlink_ptr_vector; // All links in the network + std::vector m_ni_ptr_vector; // All NI's in Network // Topology* m_topology_ptr; Time m_ruby_start; diff --git a/src/mem/ruby/network/garnet/fixed-pipeline/InputUnit_d.cc b/src/mem/ruby/network/garnet/fixed-pipeline/InputUnit_d.cc index ea8f7789b..d41c3d4ee 100644 --- a/src/mem/ruby/network/garnet/fixed-pipeline/InputUnit_d.cc +++ b/src/mem/ruby/network/garnet/fixed-pipeline/InputUnit_d.cc @@ -28,10 +28,12 @@ * Authors: Niket Agarwal */ +#include "base/stl_helpers.hh" #include "mem/ruby/network/garnet/fixed-pipeline/InputUnit_d.hh" #include "mem/ruby/network/garnet/fixed-pipeline/Router_d.hh" using namespace std; +using m5::stl_helpers::deletePointers; InputUnit_d::InputUnit_d(int id, Router_d *router) { @@ -44,7 +46,7 @@ InputUnit_d::InputUnit_d(int id, Router_d *router) creditQueue = new flitBuffer_d(); // Instantiating the virtual channels - m_vcs.setSize(m_num_vcs); + m_vcs.resize(m_num_vcs); for(int i=0; i < m_num_vcs; i++) { m_vcs[i] = new VirtualChannel_d(i); @@ -54,7 +56,7 @@ InputUnit_d::InputUnit_d(int id, Router_d *router) InputUnit_d::~InputUnit_d() { delete creditQueue; - m_vcs.deletePointers(); + deletePointers(m_vcs); } void InputUnit_d::wakeup() diff --git a/src/mem/ruby/network/garnet/fixed-pipeline/InputUnit_d.hh b/src/mem/ruby/network/garnet/fixed-pipeline/InputUnit_d.hh index 05358bc8b..4f02729ed 100644 --- a/src/mem/ruby/network/garnet/fixed-pipeline/InputUnit_d.hh +++ b/src/mem/ruby/network/garnet/fixed-pipeline/InputUnit_d.hh @@ -32,11 +32,11 @@ #define INPUT_UNIT_D_H #include +#include #include "mem/ruby/network/garnet/NetworkHeader.hh" #include "mem/ruby/network/garnet/fixed-pipeline/flitBuffer_d.hh" #include "mem/ruby/common/Consumer.hh" -#include "mem/gems_common/Vector.hh" #include "mem/ruby/network/garnet/fixed-pipeline/VirtualChannel_d.hh" #include "mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.hh" #include "mem/ruby/network/garnet/fixed-pipeline/CreditLink_d.hh" @@ -163,7 +163,7 @@ private: flitBuffer_d *creditQueue; // Virtual channels - Vector m_vcs; // [vc] + std::vector m_vcs; // [vc] }; #endif diff --git a/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc b/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc index 2a2536d53..3cda065ad 100644 --- a/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc +++ b/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc @@ -30,11 +30,15 @@ #include +#include "base/stl_helpers.hh" #include "mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.hh" #include "mem/ruby/buffers/MessageBuffer.hh" #include "mem/ruby/network/garnet/fixed-pipeline/flitBuffer_d.hh" #include "mem/ruby/slicc_interface/NetworkMessage.hh" +using namespace std; +using m5::stl_helpers::deletePointers; + NetworkInterface_d::NetworkInterface_d(int id, int virtual_networks, GarnetNetwork_d *network_ptr) { m_id = id; @@ -44,10 +48,10 @@ NetworkInterface_d::NetworkInterface_d(int id, int virtual_networks, GarnetNetwo m_num_vcs = m_vc_per_vnet*m_virtual_networks; m_vc_round_robin = 0; - m_ni_buffers.setSize(m_num_vcs); - m_ni_enqueue_time.setSize(m_num_vcs); - inNode_ptr.setSize(m_virtual_networks); - outNode_ptr.setSize(m_virtual_networks); + m_ni_buffers.resize(m_num_vcs); + m_ni_enqueue_time.resize(m_num_vcs); + inNode_ptr.resize(m_virtual_networks); + outNode_ptr.resize(m_virtual_networks); creditQueue = new flitBuffer_d(); for(int i =0; i < m_num_vcs; i++) @@ -55,7 +59,7 @@ NetworkInterface_d::NetworkInterface_d(int id, int virtual_networks, GarnetNetwo m_ni_buffers[i] = new flitBuffer_d(); // instantiating the NI flit buffers m_ni_enqueue_time[i] = INFINITE_; } - m_vc_allocator.setSize(m_virtual_networks); // 1 allocator per virtual net + m_vc_allocator.resize(m_virtual_networks); // 1 allocator per virtual net for(int i = 0; i < m_virtual_networks; i++) { m_vc_allocator[i] = 0; @@ -63,15 +67,15 @@ NetworkInterface_d::NetworkInterface_d(int id, int virtual_networks, GarnetNetwo for(int i = 0; i < m_num_vcs; i++) { - m_out_vc_state.insertAtBottom(new OutVcState_d(i, m_net_ptr)); + m_out_vc_state.push_back(new OutVcState_d(i, m_net_ptr)); m_out_vc_state[i]->setState(IDLE_, g_eventQueue_ptr->getTime()); } } NetworkInterface_d::~NetworkInterface_d() { - m_out_vc_state.deletePointers(); - m_ni_buffers.deletePointers(); + deletePointers(m_out_vc_state); + deletePointers(m_ni_buffers); delete creditQueue; delete outSrcQueue; } @@ -94,7 +98,7 @@ void NetworkInterface_d::addOutPort(NetworkLink_d *out_link, CreditLink_d *credi out_link->setSourceQueue(outSrcQueue); } -void NetworkInterface_d::addNode(Vector& in, Vector& out) +void NetworkInterface_d::addNode(vector& in, vector& out) { ASSERT(in.size() == m_virtual_networks); inNode_ptr = in; @@ -110,7 +114,7 @@ bool NetworkInterface_d::flitisizeMessage(MsgPtr msg_ptr, int vnet) NetworkMessage *net_msg_ptr = safe_cast(msg_ptr.get()); NetDest net_msg_dest = net_msg_ptr->getInternalDestination(); - Vector dest_nodes = net_msg_dest.getAllDest(); // gets all the destinations associated with this message. + vector dest_nodes = net_msg_dest.getAllDest(); // gets all the destinations associated with this message. int num_flits = (int) ceil((double) m_net_ptr->MessageSizeType_to_int(net_msg_ptr->getMessageSize())/m_net_ptr->getFlitSize() ); // Number of flits is dependent on the link bandwidth available. This is expressed in terms of bytes/cycle or the flit size diff --git a/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.hh b/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.hh index 88d882969..0da162f82 100644 --- a/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.hh +++ b/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.hh @@ -32,10 +32,10 @@ #define NET_INTERFACE_D_H #include +#include #include "mem/ruby/network/garnet/NetworkHeader.hh" #include "mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh" -#include "mem/gems_common/Vector.hh" #include "mem/ruby/common/Consumer.hh" #include "mem/ruby/slicc_interface/Message.hh" #include "mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.hh" @@ -56,7 +56,8 @@ public: void addOutPort(NetworkLink_d *out_link, CreditLink_d *credit_link); void wakeup(); - void addNode(Vector &inNode, Vector &outNode); + void addNode(std::vector &inNode, + std::vector &outNode); void printConfig(std::ostream& out) const; void print(std::ostream& out) const; int get_vnet(int vc); @@ -66,8 +67,8 @@ private: GarnetNetwork_d *m_net_ptr; int m_virtual_networks, m_num_vcs, m_vc_per_vnet; NodeID m_id; - Vector m_out_vc_state; - Vector m_vc_allocator; + std::vector m_out_vc_state; + std::vector m_vc_allocator; int m_vc_round_robin; // For round robin scheduling flitBuffer_d *outSrcQueue; // For modelling link contention flitBuffer_d *creditQueue; @@ -78,11 +79,11 @@ private: CreditLink_d *m_ni_credit_link; // Input Flit Buffers - Vector m_ni_buffers; // The flit buffers which will serve the Consumer - Vector