Skip to content
This repository was archived by the owner on Feb 5, 2019. It is now read-only.

Commit b300798

Browse files
committed
[llvm-mca] Initialize each element in vector TimelineView::UsedBuffers to a default invalid buffer descriptor. NFCI
Also change the default buffer size for UsedBuffer entries to -1 (i.e. "unknown size"). No functional change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@340830 91177308-0d34-0410-b5e6-96231b3b80d8
1 parent 3df07a2 commit b300798

File tree

2 files changed

+18
-14
lines changed

2 files changed

+18
-14
lines changed

tools/llvm-mca/Views/TimelineView.cpp

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ TimelineView::TimelineView(const MCSubtargetInfo &sti, MCInstPrinter &Printer,
3232

3333
WaitTimeEntry NullWTEntry = {0, 0, 0};
3434
std::fill(WaitTime.begin(), WaitTime.end(), NullWTEntry);
35+
36+
std::pair<unsigned, int> NullUsedBufferEntry = {/* Invalid resource ID*/ 0,
37+
/* unknown buffer size */ -1};
38+
std::fill(UsedBuffer.begin(), UsedBuffer.end(), NullUsedBufferEntry);
3539
}
3640

3741
void TimelineView::onReservedBuffers(const InstRef &IR,
@@ -40,15 +44,12 @@ void TimelineView::onReservedBuffers(const InstRef &IR,
4044
return;
4145

4246
const MCSchedModel &SM = STI.getSchedModel();
43-
std::pair<unsigned, unsigned> BufferInfo = {0, 0};
47+
std::pair<unsigned, int> BufferInfo = {0, -1};
4448
for (const unsigned Buffer : Buffers) {
4549
const MCProcResourceDesc &MCDesc = *SM.getProcResource(Buffer);
46-
if (MCDesc.BufferSize <= 0)
47-
continue;
48-
unsigned OtherSize = static_cast<unsigned>(MCDesc.BufferSize);
49-
if (!BufferInfo.first || BufferInfo.second > OtherSize) {
50+
if (!BufferInfo.first || BufferInfo.second > MCDesc.BufferSize) {
5051
BufferInfo.first = Buffer;
51-
BufferInfo.second = OtherSize;
52+
BufferInfo.second = MCDesc.BufferSize;
5253
}
5354
}
5455

@@ -97,19 +98,19 @@ void TimelineView::onEvent(const HWInstructionEvent &Event) {
9798
}
9899

99100
static raw_ostream::Colors chooseColor(unsigned CumulativeCycles,
100-
unsigned Executions,
101-
unsigned BufferSize) {
102-
if (CumulativeCycles && BufferSize == 0)
101+
unsigned Executions, int BufferSize) {
102+
if (CumulativeCycles && BufferSize < 0)
103103
return raw_ostream::MAGENTA;
104-
if (CumulativeCycles >= (BufferSize * Executions))
104+
unsigned Size = static_cast<unsigned>(BufferSize);
105+
if (CumulativeCycles >= Size * Executions)
105106
return raw_ostream::RED;
106-
if ((CumulativeCycles * 2) >= (BufferSize * Executions))
107+
if ((CumulativeCycles * 2) >= Size * Executions)
107108
return raw_ostream::YELLOW;
108109
return raw_ostream::SAVEDCOLOR;
109110
}
110111

111112
static void tryChangeColor(raw_ostream &OS, unsigned Cycles,
112-
unsigned Executions, unsigned BufferSize) {
113+
unsigned Executions, int BufferSize) {
113114
if (!OS.has_colors())
114115
return;
115116

@@ -135,7 +136,7 @@ void TimelineView::printWaitTimeEntry(formatted_raw_ostream &OS,
135136

136137
OS << Executions;
137138
OS.PadToColumn(13);
138-
unsigned BufferSize = UsedBuffer[SourceIndex].second;
139+
int BufferSize = UsedBuffer[SourceIndex].second;
139140
tryChangeColor(OS, Entry.CyclesSpentInSchedulerQueue, Executions, BufferSize);
140141
OS << format("%.1f", floor((AverageTime1 * 10) + 0.5) / 10);
141142
OS.PadToColumn(20);

tools/llvm-mca/Views/TimelineView.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,10 @@ class TimelineView : public View {
140140
unsigned CyclesSpentAfterWBAndBeforeRetire;
141141
};
142142
std::vector<WaitTimeEntry> WaitTime;
143-
std::vector<std::pair<unsigned, unsigned>> UsedBuffer;
143+
144+
// This field is used to map instructions to buffered resources.
145+
// Elements of this vector are <resourceID, BufferSizer> pairs.
146+
std::vector<std::pair<unsigned, int>> UsedBuffer;
144147

145148
void printTimelineViewEntry(llvm::formatted_raw_ostream &OS,
146149
const TimelineViewEntry &E, unsigned Iteration,

0 commit comments

Comments
 (0)