ruby: message buffer: remove _ptr from some variables

The names were getting too long.
This commit is contained in:
Nilay Vaish 2013-03-22 15:53:27 -05:00
parent 6465cf5824
commit 47c8cb72fc
2 changed files with 52 additions and 53 deletions

View file

@ -43,9 +43,9 @@ MessageBuffer::MessageBuffer(const string &name)
m_time_last_time_pop(0), m_last_arrival_time(0)
{
m_msg_counter = 0;
m_consumer_ptr = NULL;
m_sender_ptr = NULL;
m_receiver_ptr = NULL;
m_consumer = NULL;
m_sender = NULL;
m_receiver = NULL;
m_ordering_set = false;
m_strict_fifo = true;
@ -67,10 +67,10 @@ MessageBuffer::MessageBuffer(const string &name)
int
MessageBuffer::getSize()
{
if (m_time_last_time_size_checked == m_receiver_ptr->curCycle()) {
if (m_time_last_time_size_checked == m_receiver->curCycle()) {
return m_size_last_time_size_checked;
} else {
m_time_last_time_size_checked = m_receiver_ptr->curCycle();
m_time_last_time_size_checked = m_receiver->curCycle();
m_size_last_time_size_checked = m_size;
return m_size;
}
@ -90,11 +90,11 @@ MessageBuffer::areNSlotsAvailable(int n)
// until next cycle, but enqueue operations effect the visible
// size immediately
int current_size = max(m_size_at_cycle_start, m_size);
if (m_time_last_time_pop < m_receiver_ptr->curCycle()) {
if (m_time_last_time_pop < m_receiver->curCycle()) {
// no pops this cycle - m_size is correct
current_size = m_size;
} else {
if (m_time_last_time_enqueue < m_receiver_ptr->curCycle()) {
if (m_time_last_time_enqueue < m_receiver->curCycle()) {
// no enqueues this cycle - m_size_at_cycle_start is correct
current_size = m_size_at_cycle_start;
} else {
@ -156,9 +156,9 @@ MessageBuffer::enqueue(MsgPtr message, Cycles delay)
m_size++;
// record current time incase we have a pop that also adjusts my size
if (m_time_last_time_enqueue < m_receiver_ptr->curCycle()) {
if (m_time_last_time_enqueue < m_receiver->curCycle()) {
m_msgs_this_cycle = 0; // first msg this cycle
m_time_last_time_enqueue = m_receiver_ptr->curCycle();
m_time_last_time_enqueue = m_receiver->curCycle();
}
m_msgs_this_cycle++;
@ -169,10 +169,9 @@ MessageBuffer::enqueue(MsgPtr message, Cycles delay)
// Calculate the arrival time of the message, that is, the first
// cycle the message can be dequeued.
assert(delay > 0);
Cycles delta = m_receiver_ptr->ticksToCycles(delay *
m_sender_ptr->clockPeriod());
Cycles delta = m_receiver->ticksToCycles(delay * m_sender->clockPeriod());
Cycles current_time(m_receiver_ptr->curCycle());
Cycles current_time(m_receiver->curCycle());
Cycles arrival_time(0);
if (!RubySystem::getRandomization() || (m_randomization == false)) {
@ -196,10 +195,10 @@ MessageBuffer::enqueue(MsgPtr message, Cycles delay)
if (arrival_time < m_last_arrival_time) {
panic("FIFO ordering violated: %s name: %s current time: %d "
"delta: %d arrival_time: %d last arrival_time: %d\n",
*this, m_name, current_time * m_receiver_ptr->clockPeriod(),
delta * m_receiver_ptr->clockPeriod(),
arrival_time * m_receiver_ptr->clockPeriod(),
m_last_arrival_time * m_receiver_ptr->clockPeriod());
*this, m_name, current_time * m_receiver->clockPeriod(),
delta * m_receiver->clockPeriod(),
arrival_time * m_receiver->clockPeriod(),
m_last_arrival_time * m_receiver->clockPeriod());
}
}
@ -212,29 +211,29 @@ MessageBuffer::enqueue(MsgPtr message, Cycles delay)
Message* msg_ptr = message.get();
assert(msg_ptr != NULL);
assert(m_receiver_ptr->clockEdge() >= msg_ptr->getLastEnqueueTime() &&
assert(m_receiver->clockEdge() >= msg_ptr->getLastEnqueueTime() &&
"ensure we aren't dequeued early");
msg_ptr->setDelayedTicks(m_receiver_ptr->clockEdge() -
msg_ptr->setDelayedTicks(m_receiver->clockEdge() -
msg_ptr->getLastEnqueueTime() +
msg_ptr->getDelayedTicks());
msg_ptr->setLastEnqueueTime(arrival_time * m_receiver_ptr->clockPeriod());
msg_ptr->setLastEnqueueTime(arrival_time * m_receiver->clockPeriod());
// Insert the message into the priority heap
MessageBufferNode thisNode(arrival_time * m_receiver_ptr->clockPeriod(),
MessageBufferNode thisNode(arrival_time * m_receiver->clockPeriod(),
m_msg_counter, message);
m_prio_heap.push_back(thisNode);
push_heap(m_prio_heap.begin(), m_prio_heap.end(),
greater<MessageBufferNode>());
DPRINTF(RubyQueue, "Enqueue arrival_time: %lld, Message: %s\n",
arrival_time * m_receiver_ptr->clockPeriod(), *(message.get()));
arrival_time * m_receiver->clockPeriod(), *(message.get()));
// Schedule the wakeup
if (m_consumer_ptr != NULL) {
m_consumer_ptr->scheduleEventAbsolute(
arrival_time * m_receiver_ptr->clockPeriod());
m_consumer_ptr->storeEventInfo(m_vnet_id);
if (m_consumer != NULL) {
m_consumer->scheduleEventAbsolute(
arrival_time * m_receiver->clockPeriod());
m_consumer->storeEventInfo(m_vnet_id);
} else {
panic("No consumer: %s name: %s\n", *this, m_name);
}
@ -281,9 +280,9 @@ MessageBuffer::pop()
// record previous size and time so the current buffer size isn't
// adjusted until next cycle
if (m_time_last_time_pop < m_receiver_ptr->curCycle()) {
if (m_time_last_time_pop < m_receiver->curCycle()) {
m_size_at_cycle_start = m_size;
m_time_last_time_pop = m_receiver_ptr->curCycle();
m_time_last_time_pop = m_receiver->curCycle();
}
m_size--;
}
@ -310,13 +309,13 @@ MessageBuffer::recycle()
pop_heap(m_prio_heap.begin(), m_prio_heap.end(),
greater<MessageBufferNode>());
node.m_time = (m_receiver_ptr->curCycle() + m_recycle_latency) *
m_receiver_ptr->clockPeriod();
node.m_time = (m_receiver->curCycle() + m_recycle_latency) *
m_receiver->clockPeriod();
m_prio_heap.back() = node;
push_heap(m_prio_heap.begin(), m_prio_heap.end(),
greater<MessageBufferNode>());
m_consumer_ptr->
scheduleEventAbsolute(m_receiver_ptr->clockEdge(m_recycle_latency));
m_consumer->
scheduleEventAbsolute(m_receiver->clockEdge(m_recycle_latency));
}
void
@ -324,7 +323,7 @@ MessageBuffer::reanalyzeMessages(const Address& addr)
{
DPRINTF(RubyQueue, "ReanalyzeMessages\n");
assert(m_stall_msg_map.count(addr) > 0);
Tick nextTick = m_receiver_ptr->clockEdge(Cycles(1));
Tick nextTick = m_receiver->clockEdge(Cycles(1));
//
// Put all stalled messages associated with this address back on the
@ -339,7 +338,7 @@ MessageBuffer::reanalyzeMessages(const Address& addr)
push_heap(m_prio_heap.begin(), m_prio_heap.end(),
greater<MessageBufferNode>());
m_consumer_ptr->scheduleEventAbsolute(nextTick);
m_consumer->scheduleEventAbsolute(nextTick);
m_stall_msg_map[addr].pop_front();
}
m_stall_msg_map.erase(addr);
@ -349,7 +348,7 @@ void
MessageBuffer::reanalyzeAllMessages()
{
DPRINTF(RubyQueue, "ReanalyzeAllMessages %s\n");
Tick nextTick = m_receiver_ptr->clockEdge(Cycles(1));
Tick nextTick = m_receiver->clockEdge(Cycles(1));
//
// Put all stalled messages associated with this address back on the
@ -368,7 +367,7 @@ MessageBuffer::reanalyzeAllMessages()
push_heap(m_prio_heap.begin(), m_prio_heap.end(),
greater<MessageBufferNode>());
m_consumer_ptr->scheduleEventAbsolute(nextTick);
m_consumer->scheduleEventAbsolute(nextTick);
(map_iter->second).pop_front();
}
}
@ -400,20 +399,20 @@ MessageBuffer::setAndReturnDelayCycles(MsgPtr msg_ptr)
// this function should only be called on dequeue
// ensure the msg hasn't been enqueued
assert(msg_ptr->getLastEnqueueTime() <= m_receiver_ptr->clockEdge());
assert(msg_ptr->getLastEnqueueTime() <= m_receiver->clockEdge());
msg_ptr->setDelayedTicks(m_receiver_ptr->clockEdge() -
msg_ptr->getLastEnqueueTime() +
msg_ptr->getDelayedTicks());
msg_ptr->setDelayedTicks(m_receiver->clockEdge() -
msg_ptr->getLastEnqueueTime() +
msg_ptr->getDelayedTicks());
return m_receiver_ptr->ticksToCycles(msg_ptr->getDelayedTicks());
return m_receiver->ticksToCycles(msg_ptr->getDelayedTicks());
}
void
MessageBuffer::print(ostream& out) const
{
ccprintf(out, "[MessageBuffer: ");
if (m_consumer_ptr != NULL) {
if (m_consumer != NULL) {
ccprintf(out, " consumer-yes ");
}
@ -433,7 +432,7 @@ bool
MessageBuffer::isReady() const
{
return ((m_prio_heap.size() > 0) &&
(m_prio_heap.front().m_time <= m_receiver_ptr->clockEdge()));
(m_prio_heap.front().m_time <= m_receiver->clockEdge()));
}
bool

View file

@ -77,28 +77,28 @@ class MessageBuffer
bool areNSlotsAvailable(int n);
int getPriority() { return m_priority_rank; }
void setPriority(int rank) { m_priority_rank = rank; }
void setConsumer(Consumer* consumer_ptr)
void setConsumer(Consumer* consumer)
{
assert(m_consumer_ptr == NULL);
m_consumer_ptr = consumer_ptr;
assert(m_consumer == NULL);
m_consumer = consumer;
}
void setSender(ClockedObject* obj)
{
assert(m_sender_ptr == NULL || m_sender_ptr == obj);
m_sender_ptr = obj;
assert(m_sender == NULL || m_sender == obj);
m_sender = obj;
}
void setReceiver(ClockedObject* obj)
{
assert(m_receiver_ptr == NULL || m_receiver_ptr == obj);
m_receiver_ptr = obj;
assert(m_receiver == NULL || m_receiver == obj);
m_receiver = obj;
}
void setDescription(const std::string& name) { m_name = name; }
std::string getDescription() { return m_name;}
Consumer* getConsumer() { return m_consumer_ptr; }
Consumer* getConsumer() { return m_consumer; }
const Message* peekAtHeadOfQueue() const;
const Message* peek() const { return peekAtHeadOfQueue(); }
@ -174,11 +174,11 @@ class MessageBuffer
// Data Members (m_ prefix)
//! The two ends of the buffer.
ClockedObject* m_sender_ptr;
ClockedObject* m_receiver_ptr;
ClockedObject* m_sender;
ClockedObject* m_receiver;
//! Consumer to signal a wakeup(), can be NULL
Consumer* m_consumer_ptr;
Consumer* m_consumer;
std::vector<MessageBufferNode> m_prio_heap;
// use a std::map for the stalled messages as this container is