Lines Matching refs:OS

28 template <EscapeTag Tag> void writeEscaped(raw_ostream &OS, const StringRef S);
30 template <> void writeEscaped<kEscapeCsv>(raw_ostream &OS, const StringRef S) { in writeEscaped() argument
32 OS << S; in writeEscaped()
35 OS << '"'; in writeEscaped()
38 OS << "\"\""; in writeEscaped()
40 OS << C; in writeEscaped()
42 OS << '"'; in writeEscaped()
46 template <> void writeEscaped<kEscapeHtml>(raw_ostream &OS, const StringRef S) { in writeEscaped() argument
49 OS << "&lt;"; in writeEscaped()
51 OS << "&gt;"; in writeEscaped()
53 OS << "&amp;"; in writeEscaped()
55 OS << C; in writeEscaped()
60 void writeEscaped<kEscapeHtmlString>(raw_ostream &OS, const StringRef S) { in writeEscaped() argument
63 OS << "\\\""; in writeEscaped()
65 OS << C; in writeEscaped()
73 writeClusterId(raw_ostream &OS, in writeClusterId() argument
76 writeEscaped<Tag>(OS, "[noise]"); in writeClusterId()
78 writeEscaped<Tag>(OS, "[error]"); in writeClusterId()
80 OS << CID.getId(); in writeClusterId()
84 static void writeMeasurementValue(raw_ostream &OS, const double Value) { in writeMeasurementValue() argument
98 OS, formatv(SimpleFloatFormat.data(), Value).sstr<SerializationLen>()); in writeMeasurementValue()
102 void Analysis::writeSnippet(raw_ostream &OS, ArrayRef<uint8_t> Bytes, in writeSnippet() argument
110 writeEscaped<Tag>(OS, join(Lines, Separator)); in writeSnippet()
111 writeEscaped<Tag>(OS, Separator); in writeSnippet()
112 writeEscaped<Tag>(OS, "[error decoding asm snippet]"); in writeSnippet()
121 writeEscaped<Tag>(OS, join(Lines, Separator)); in writeSnippet()
127 raw_ostream &OS) const { in printInstructionRowCsv()
129 writeClusterId<kEscapeCsv>(OS, Clustering_.getClusterIdForPoint(PointId)); in printInstructionRowCsv()
130 OS << kCsvSep; in printInstructionRowCsv()
131 writeSnippet<EscapeTag, kEscapeCsv>(OS, Point.AssembledSnippet, "; "); in printInstructionRowCsv()
132 OS << kCsvSep; in printInstructionRowCsv()
133 writeEscaped<kEscapeCsv>(OS, Point.Key.Config); in printInstructionRowCsv()
134 OS << kCsvSep; in printInstructionRowCsv()
143 writeEscaped<kEscapeCsv>(OS, SCDesc->Name); in printInstructionRowCsv()
145 OS << SchedClassId; in printInstructionRowCsv()
148 OS << kCsvSep; in printInstructionRowCsv()
149 writeMeasurementValue<kEscapeCsv>(OS, Measurement.PerInstructionValue); in printInstructionRowCsv()
151 OS << "\n"; in printInstructionRowCsv()
191 Error Analysis::run<Analysis::PrintClusters>(raw_ostream &OS) const { in run()
196 OS << "cluster_id" << kCsvSep << "opcode_name" << kCsvSep << "config" in run()
199 OS << kCsvSep; in run()
200 writeEscaped<kEscapeCsv>(OS, Measurement.Key); in run()
202 OS << "\n"; in run()
207 printInstructionRowCsv(PointId, OS); in run()
209 OS << "\n\n"; in run()
255 static void writeParallelSnippetHtml(raw_ostream &OS, in writeParallelSnippetHtml() argument
260 writeEscaped<kEscapeHtml>(OS, InstrInfo.getName(Instructions[0].getOpcode())); in writeParallelSnippetHtml()
262 OS << " (x" << Instructions.size() << ")"; in writeParallelSnippetHtml()
267 static void writeLatencySnippetHtml(raw_ostream &OS, in writeLatencySnippetHtml() argument
275 OS << " &rarr; "; in writeLatencySnippetHtml()
276 writeEscaped<kEscapeHtml>(OS, InstrInfo.getName(Instr.getOpcode())); in writeLatencySnippetHtml()
281 llvm::raw_ostream &OS) const { in printPointHtml()
282 OS << "<li><span class=\"mono\" title=\""; in printPointHtml()
283 writeSnippet<EscapeTag, kEscapeHtmlString>(OS, Point.AssembledSnippet, "\n"); in printPointHtml()
284 OS << "\">"; in printPointHtml()
287 writeLatencySnippetHtml(OS, Point.Key.Instructions, *InstrInfo_); in printPointHtml()
291 writeParallelSnippetHtml(OS, Point.Key.Instructions, *InstrInfo_); in printPointHtml()
296 OS << "</span> <span class=\"mono\">"; in printPointHtml()
297 writeEscaped<kEscapeHtml>(OS, Point.Key.Config); in printPointHtml()
298 OS << "</span></li>"; in printPointHtml()
303 const ResolvedSchedClass &RSC, raw_ostream &OS) const { in printSchedClassClustersHtml()
305 OS << "<table class=\"sched-class-clusters\">"; in printSchedClassClustersHtml()
306 OS << "<tr><th>ClusterId</th><th>Opcode/Config</th>"; in printSchedClassClustersHtml()
310 OS << "<th>"; in printSchedClassClustersHtml()
311 writeEscaped<kEscapeHtml>(OS, Measurement.Key); in printSchedClassClustersHtml()
312 OS << "</th>"; in printSchedClassClustersHtml()
314 OS << "</tr>"; in printSchedClassClustersHtml()
316 OS << "<tr class=\"" in printSchedClassClustersHtml()
322 writeClusterId<kEscapeHtml>(OS, Cluster.id()); in printSchedClassClustersHtml()
323 OS << "</td><td><ul>"; in printSchedClassClustersHtml()
325 printPointHtml(Points[PointId], OS); in printSchedClassClustersHtml()
327 OS << "</ul></td>"; in printSchedClassClustersHtml()
329 OS << "<td class=\"measurement\">"; in printSchedClassClustersHtml()
330 writeMeasurementValue<kEscapeHtml>(OS, Stats.avg()); in printSchedClassClustersHtml()
331 OS << "<br><span class=\"minmax\">["; in printSchedClassClustersHtml()
332 writeMeasurementValue<kEscapeHtml>(OS, Stats.min()); in printSchedClassClustersHtml()
333 OS << ";"; in printSchedClassClustersHtml()
334 writeMeasurementValue<kEscapeHtml>(OS, Stats.max()); in printSchedClassClustersHtml()
335 OS << "]</span></td>"; in printSchedClassClustersHtml()
337 OS << "</tr>"; in printSchedClassClustersHtml()
339 OS << "</table>"; in printSchedClassClustersHtml()
379 raw_ostream &OS) const { in printSchedClassDescHtml()
380 OS << "<table class=\"sched-class-desc\">"; in printSchedClassDescHtml()
381 OS << "<tr><th>Valid</th><th>Variant</th><th>NumMicroOps</th><th>Latency</" in printSchedClassDescHtml()
387 OS << "<tr><td>&#10004;</td>"; in printSchedClassDescHtml()
388 OS << "<td>" << (RSC.WasVariant ? "&#10004;" : "&#10005;") << "</td>"; in printSchedClassDescHtml()
389 OS << "<td>" << RSC.SCDesc->NumMicroOps << "</td>"; in printSchedClassDescHtml()
391 OS << "<td><ul>"; in printSchedClassDescHtml()
395 OS << "<li>" << Entry->Cycles; in printSchedClassDescHtml()
398 OS << " (WriteResourceID " << Entry->WriteResourceID << ")"; in printSchedClassDescHtml()
400 OS << "</li>"; in printSchedClassDescHtml()
402 OS << "</ul></td>"; in printSchedClassDescHtml()
404 OS << "<td>"; in printSchedClassDescHtml()
406 OS, in printSchedClassDescHtml()
408 OS << "</td>"; in printSchedClassDescHtml()
410 OS << "<td><ul>"; in printSchedClassDescHtml()
412 OS << "<li><span class=\"mono\">"; in printSchedClassDescHtml()
413 writeEscaped<kEscapeHtml>(OS, in printSchedClassDescHtml()
415 OS << "</span>: " << WPR.Cycles << "</li>"; in printSchedClassDescHtml()
417 OS << "</ul></td>"; in printSchedClassDescHtml()
419 OS << "<td><ul>"; in printSchedClassDescHtml()
421 OS << "<li><span class=\"mono\">"; in printSchedClassDescHtml()
422 writeEscaped<kEscapeHtml>(OS, SubtargetInfo_->getSchedModel() in printSchedClassDescHtml()
425 OS << "</span>: "; in printSchedClassDescHtml()
426 writeMeasurementValue<kEscapeHtml>(OS, Pressure.second); in printSchedClassDescHtml()
427 OS << "</li>"; in printSchedClassDescHtml()
429 OS << "</ul></td>"; in printSchedClassDescHtml()
430 OS << "</tr>"; in printSchedClassDescHtml()
432 OS << "<tr><td>&#10005;</td><td></td><td></td></tr>"; in printSchedClassDescHtml()
434 OS << "</table>"; in printSchedClassDescHtml()
439 llvm::raw_ostream &OS) const { in printClusterRawHtml()
445 OS << "<div class=\"inconsistency\"><p>" << display_name << " Cluster (" in printClusterRawHtml()
447 OS << "<table class=\"sched-class-clusters\">"; in printClusterRawHtml()
449 OS << "<tr><th>ClusterId</th><th>Opcode/Config</th>"; in printClusterRawHtml()
451 OS << "<th>"; in printClusterRawHtml()
452 writeEscaped<kEscapeHtml>(OS, Measurement.Key); in printClusterRawHtml()
453 OS << "</th>"; in printClusterRawHtml()
455 OS << "</tr>"; in printClusterRawHtml()
459 OS << "<tr class=\"bad-cluster\"><td>" << display_name << "</td><td><ul>"; in printClusterRawHtml()
460 printPointHtml(Points[PointId], OS); in printClusterRawHtml()
461 OS << "</ul></td>"; in printClusterRawHtml()
463 OS << "<td class=\"measurement\">"; in printClusterRawHtml()
464 writeMeasurementValue<kEscapeHtml>(OS, Measurement.PerInstructionValue); in printClusterRawHtml()
466 OS << "</tr>"; in printClusterRawHtml()
468 OS << "</table>"; in printClusterRawHtml()
470 OS << "</div>"; in printClusterRawHtml()
542 raw_ostream &OS) const { in run()
545 OS << "<!DOCTYPE html><html>" << kHtmlHead << "<body>"; in run()
546 OS << "<h1><span class=\"mono\">llvm-exegesis</span> Analysis Results</h1>"; in run()
547 OS << "<h3>Triple: <span class=\"mono\">"; in run()
548 writeEscaped<kEscapeHtml>(OS, FirstPoint.LLVMTriple); in run()
549 OS << "</span></h3><h3>Cpu: <span class=\"mono\">"; in run()
550 writeEscaped<kEscapeHtml>(OS, FirstPoint.CpuName); in run()
551 OS << "</span></h3>"; in run()
585 OS << "<div class=\"inconsistency\"><p>Sched Class <span " in run()
588 writeEscaped<kEscapeHtml>(OS, RSCAndPoints.RSC.SCDesc->Name); in run()
590 OS << RSCAndPoints.RSC.SchedClassId; in run()
592 OS << "</span> contains instructions whose performance characteristics do" in run()
594 printSchedClassClustersHtml(SchedClassClusters, RSCAndPoints.RSC, OS); in run()
595 OS << "<p>llvm SchedModel data:</p>"; in run()
596 printSchedClassDescHtml(RSCAndPoints.RSC, OS); in run()
597 OS << "</div>"; in run()
601 "[noise]", OS); in run()
603 OS << "</body></html>"; in run()