From d34af7166e7a91f9b1fab895daa20224a76b19e9 Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Wed, 26 Oct 2022 21:47:17 +0200 Subject: Remove graphical representation of instruction latencies. --- manual/tracy.tex | 2 -- server/TracySourceView.cpp | 25 ------------------------- server/TracySourceView.hpp | 1 - 3 files changed, 28 deletions(-) diff --git a/manual/tracy.tex b/manual/tracy.tex index 2471ea74..459dcc4c 100644 --- a/manual/tracy.tex +++ b/manual/tracy.tex @@ -3561,8 +3561,6 @@ If the listed assembly code targets x86 or x64 instruction set architectures, ho Selection of the CPU microarchitecture can be performed using the \emph{\faMicrochip{}~\textmu{}arch} drop-down. Each architecture is accompanied by the name of an example CPU implementing it. If the current selection matches the microarchitecture on which the profiled application was running, the \faMicrochip{}~icon will be green\footnote{Comparing sampled instruction counts with microarchitectural details only makes sense when this selection is properly matched.}. Otherwise, it will be red\footnote{You can use this to gain insight into how the code \emph{may} behave on other processors.}. Clicking on the \faMicrochip{}~icon when it is red will reset the selected microarchitecture to the one the profiled application was running on. -Enabling the \emph{\faTruckLoading{}~Latency} option will display a graphical representation of instruction latencies on the listing. The minimum latency of instruction is represented by a red bar, while the maximum latency is represented by a yellow bar. - Clicking on the \emph{\faFileImport{}~Save} button lets you write the disassembly listing to a file. You can then manually extract some critical loop kernel and pass it to a CPU simulator, such as \emph{LLVM Machine Code Analyzer} (\texttt{llvm-mca})\footnote{\url{https://llvm.org/docs/CommandGuide/llvm-mca.html}}, to see how the code is executed and if there are any pipeline bubbles. Consult the \texttt{llvm-mca} documentation for more details. Alternatively, you might click the \RMB{}~right mouse button on a jump arrow and save only the instructions within the jump range, using the \emph{\faFileImport{}~Save jump range} button. \subparagraph{Instruction dependencies} diff --git a/server/TracySourceView.cpp b/server/TracySourceView.cpp index 29143a34..da2fd52e 100644 --- a/server/TracySourceView.cpp +++ b/server/TracySourceView.cpp @@ -267,7 +267,6 @@ SourceView::SourceView() , m_showJumps( true ) , m_locAddrIsProp( false ) , m_cpuArch( CpuArchUnknown ) - , m_showLatency( false ) { m_microArchOpMap.reserve( OpsNum ); for( int i=0; iminlat >= 0 ) - { - const auto pos = ImVec2( (int)ImGui::GetCursorScreenPos().x, (int)ImGui::GetCursorScreenPos().y ); - const auto ty = ImGui::GetTextLineHeight(); - - if( asmVar->minlat == 0 ) - { - DrawLine( draw, pos + ImVec2( 0.5f, -0.5f ), pos + ImVec2( 0.5f, ty + 0.5f ), 0x660000FF ); - } - else - { - draw->AddRectFilled( pos, pos + ImVec2( ty * asmVar->minlat + 1, ty + 1 ), 0x660000FF ); - } - if( asmVar->minlat != asmVar->maxlat ) - { - draw->AddRectFilled( pos + ImVec2( ty * asmVar->minlat + 1, 0 ), pos + ImVec2( ty * asmVar->maxlat + 1, ty + 1 ), 0x5500FFFF ); - } - } - const bool inContext = IsInContext( worker, line.addr ); int isSelected = asmIdx == m_asmSelected; if( !isSelected && line.regData[0] != 0 ) diff --git a/server/TracySourceView.hpp b/server/TracySourceView.hpp index 302bb425..21c06dd3 100644 --- a/server/TracySourceView.hpp +++ b/server/TracySourceView.hpp @@ -268,7 +268,6 @@ private: CpuArchitecture m_cpuArch; int m_selMicroArch; int m_idxMicroArch, m_profileMicroArch; - bool m_showLatency; unordered_flat_set m_asmSampleSelect; unordered_flat_set m_srcSampleSelect; -- cgit v1.2.3