llvm-project/llvm/tools
Andrea Di Biagio 91ab2ee954 [llvm-mca] Add pipeline stall events.
This patch introduces a new class named HWStallEvent (see HWEventListener.h),
and updates the event listener interface. A HWStallEvent represents a pipeline
stall caused by the lack of hardware resources. Similarly to HWInstructionEvent,
the event type is an unsigned, and the exact meaning depends on the subtarget.
At the moment, HWStallEvent supports a few generic dispatch events.

The main goals of this patch is to remove the logic that counts dispatch stalls
from the DispatchUnit to the BackendStatistics view.

Previously, DispatchUnit was responsible for counting and classifying dispatch
stall events. With this patch, we delegate the task of counting and classifying
stall events to the listeners (i.e. in our case, it is view
"BackendStatistics"). So, the DispatchUnit doesn't have to do extra
(unnecessary) bookkeeping.

This patch also helps futher simplifying the Backend interface. Now class
BackendStatistics no longer has to query the Backend interface to obtain the
number of dispatch stalls. As a consequence, we can get rid of all the
'getNumXXX()' methods from class Backend.
The long term goal is to remove all the remaining dependencies between the
Backend and the BackendStatistics interface.

Differential Revision: https://reviews.llvm.org/D44621

llvm-svn: 327837
2018-03-19 13:23:07 +00:00
..
bugpoint Change the BugDriver to store the current module with std::unique_ptr. 2018-02-14 21:44:34 +00:00
bugpoint-passes Remove redundant includes from tools. 2017-12-13 21:31:10 +00:00
dsymutil [dsymutil] Fix add_llvm_tool_symlink 2018-03-18 12:27:05 +00:00
gold [LTO/gold] Fix workaround for old plugin-api.h in --wrap support 2018-03-14 14:00:57 +00:00
llc Pass a module reference to CloneModule. 2018-02-14 19:50:40 +00:00
lli [ORC] Re-apply r327566 with a fix for test-global-ctors.ll. 2018-03-15 00:30:14 +00:00
llvm-ar On Windows expansion of regex file name patterns is the responsibility of each 2018-03-05 18:54:56 +00:00
llvm-as Pass a reference to a module to the bitcode writer. 2018-02-14 19:11:32 +00:00
llvm-as-fuzzer cmake: Invent add_llvm_fuzzer to set up fuzzer targets 2017-08-31 00:36:33 +00:00
llvm-bcanalyzer [ThinLTO/CFI] Include TYPE_ID summaries into GLOBALVAL_SUMMARY_BLOCK 2018-02-14 22:41:15 +00:00
llvm-c-test [LLVM-C] Redo unnamed_address attribute bindings 2018-03-14 06:45:51 +00:00
llvm-cat Pass a reference to a module to the bitcode writer. 2018-02-14 19:11:32 +00:00
llvm-cfi-verify Fix broken builds due to mismatched min/max types 2018-02-02 00:07:14 +00:00
llvm-config CMake: Make libxml2 show up in --system-libs (PR36660) 2018-03-09 14:46:44 +00:00
llvm-cov [llvm-cov] Fix incorrect usage of .precision specifier in format() call. 2018-01-31 22:13:07 +00:00
llvm-cvtres llvm-cvtres: Mention ARM64 as a supported machine type in the help text. NFC. 2018-02-27 20:44:33 +00:00
llvm-cxxdump Fix more inconsistent line endings. NFC. 2017-12-18 19:46:56 +00:00
llvm-cxxfilt Add opt-viewer testing 2017-11-29 17:07:41 +00:00
llvm-demangle-fuzzer llvm-demangle-fuzzer: Link in Support 2017-11-17 20:46:55 +00:00
llvm-diff Remove redundant includes from tools. 2017-12-13 21:31:10 +00:00
llvm-dis [Support] Rename tool_output_file to ToolOutputFile, NFC 2017-09-23 01:03:17 +00:00
llvm-dwarfdump [DebugInfo/AccelTable] Fix inconsistency in getDIEOffset implementations 2018-03-09 11:58:59 +00:00
llvm-dwp DWARF: Unify form size handling code 2018-03-14 09:39:54 +00:00
llvm-extract [llvm-extract] Support extracting basic blocks 2018-01-23 21:51:34 +00:00
llvm-go Update some code.google.com links 2017-11-13 23:47:58 +00:00
llvm-isel-fuzzer [llvm-opt-fuzzer] Avoid adding incorrect inputs to the fuzzer corpus 2018-02-05 11:05:47 +00:00
llvm-jitlistener
llvm-link Revert "[IRMover] Implement name based structure type mapping" 2018-02-21 20:12:18 +00:00
llvm-lto [ThinLTO] Added a couple of C LTO API interfaces to control the cache policy. 2018-03-02 03:51:27 +00:00
llvm-lto2 [ThinLTO] Always create linked objects file for --thinlto-index-only= 2018-02-22 19:06:15 +00:00
llvm-mc Revert "Reapply "[DWARFv5] Emit file 0 to the line table."" 2018-03-07 16:27:44 +00:00
llvm-mc-assemble-fuzzer Rename MCTargetOptionsCommandFlags.h to .def as it is not a normal/modular header as much as it is for stamping out some global/static variables 2017-11-27 19:55:16 +00:00
llvm-mc-disassemble-fuzzer cmake: Invent add_llvm_fuzzer to set up fuzzer targets 2017-08-31 00:36:33 +00:00
llvm-mca [llvm-mca] Add pipeline stall events. 2018-03-19 13:23:07 +00:00
llvm-mcmarkup Fix more inconsistent line endings. NFC. 2017-12-18 19:46:56 +00:00
llvm-modextract Pass a reference to a module to the bitcode writer. 2018-02-14 19:11:32 +00:00
llvm-mt [Option] Add 'findNearest' method to catch typos 2018-01-05 17:10:39 +00:00
llvm-nm llvm-nm should show a symbol type of T for symbols in the (__TEXT_EXEC,__text) section. 2018-01-31 00:00:41 +00:00
llvm-objcopy Revert "[llvm-objcopy] Add support for large indexes" 2018-03-07 20:33:02 +00:00
llvm-objdump [llvm-objdump] Support disassembling by symbol name 2018-03-09 19:13:44 +00:00
llvm-opt-fuzzer Pass a reference to a module to the bitcode writer. 2018-02-14 19:11:32 +00:00
llvm-opt-report Don't call exit from cl::PrintHelpMessage. 2017-09-07 23:30:48 +00:00
llvm-pdbutil Refactor the PDB HashTable class. 2018-03-15 17:38:26 +00:00
llvm-profdata [llvm-profdata] Don't treat non-fatal merge errors as fatal 2017-11-17 21:18:32 +00:00
llvm-rc Fix typos of occurred and occurrence 2018-01-24 10:33:39 +00:00
llvm-readobj [mips] Add support for CRC ASE 2018-03-14 14:13:31 +00:00
llvm-rtdyld Remove redundant includes from tools. 2017-12-13 21:31:10 +00:00
llvm-shlib [Solaris] enable --whole-archive for shared-library build, disable --version-script for Solaris-ld 2017-07-19 16:07:51 +00:00
llvm-size Fix more inconsistent line endings. NFC. 2017-12-18 19:46:56 +00:00
llvm-special-case-list-fuzzer [llvm-special-case-list-fuzzer] Add fuzz target. 2017-10-17 17:43:34 +00:00
llvm-split Pass a reference to a module to the bitcode writer. 2018-02-14 19:11:32 +00:00
llvm-stress [Support] Rename tool_output_file to ToolOutputFile, NFC 2017-09-23 01:03:17 +00:00
llvm-strings [llvm-strings] Add support for the -a/--all options 2017-11-14 19:58:36 +00:00
llvm-symbolizer Use itaniumDemangle in llvm-symbolizer 2018-03-07 23:07:34 +00:00
llvm-xray [XRay] cache symbolized function names for a repeatedly queried function ID 2018-03-01 01:59:24 +00:00
lto [ThinLTO] Added a couple of C LTO API interfaces to control the cache policy. 2018-03-02 03:51:27 +00:00
msbuild Create msbuild only when using MSVC 2017-03-16 20:24:14 +00:00
obj2yaml [WebAssembly] Identify COMDATs by index rather than string. NFC 2018-03-14 15:44:45 +00:00
opt [Debugify] Don't check functions which were skipped 2018-02-15 21:28:38 +00:00
opt-viewer [opt-viewer] Kill parser processes before moving onto rendering 2018-02-26 21:15:51 +00:00
sancov Remove redundant includes from tools. 2017-12-13 21:31:10 +00:00
sanstats Fix broken links to the Itanium CXX ABI 2017-09-12 00:19:11 +00:00
verify-uselistorder Pass a reference to a module to the bitcode writer. 2018-02-14 19:11:32 +00:00
xcode-toolchain [llvm] Add stripped installation targets 2017-11-30 21:48:26 +00:00
yaml2obj [WebAssembly] Use uint8_t for single byte values to match the spec 2018-03-01 18:06:21 +00:00
CMakeLists.txt
LLVMBuild.txt [llvm-mca] LLVM Machine Code Analyzer. 2018-03-08 13:05:02 +00:00