summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-mca/ResourcePressureView.h
Commit message (Collapse)AuthorAgeFilesLines
* [llvm-mca] Move views and stats into a Views subdir. NFC.Matt Davis2018-08-241-109/+0
| | | | llvm-svn: 340645
* [llvm-mca] Simplify eventing by adding an onEvent templated method.Matt Davis2018-07-121-1/+1
| | | | | | | | | | | | | | | | | | | | Summary: This patch eliminates some redundancy in iterating across Listeners for the Instruction and Stall HWEvents, by introducing a template onEvent routine. This change was suggested by @courbet in https://reviews.llvm.org/D48576. I hope that this patch addresses that suggestion appropriately. I do like this change better than what we had previously. Reviewers: andreadb, courbet, RKSimon Reviewed By: andreadb, courbet Subscribers: javed.absar, tschuett, gbedwell, llvm-commits, courbet Differential Revision: https://reviews.llvm.org/D48672 llvm-svn: 336916
* [llvm-mca] Rename Backend to Pipeline. NFC.Matt Davis2018-06-251-3/+1
| | | | | | | | | | | | | | | | | | Summary: This change renames the Backend and BackendPrinter to Pipeline and PipelinePrinter respectively. Variables and comments have also been updated to reflect this change. The reason for this rename, is to be slightly more correct about what MCA is modeling. MCA models a Pipeline, which implies some logical sequence of stages. Reviewers: andreadb, courbet, RKSimon Reviewed By: andreadb, courbet Subscribers: mgorny, javed.absar, tschuett, gbedwell, llvm-commits Differential Revision: https://reviews.llvm.org/D48496 llvm-svn: 335496
* [llvm-mca] run clang-format on all files.Andrea Di Biagio2018-03-241-1/+0
| | | | | | This also addresses Simon's review comment in D44839. llvm-svn: 328428
* [llvm-mca] update the ResourcePressureView after r328335. NFC.Andrea Di Biagio2018-03-231-1/+1
| | | | | | This should have been part of r328335. I forgot to svn add these files. llvm-svn: 328340
* [llvm-mca] Simplify code. NFCAndrea Di Biagio2018-03-221-4/+6
| | | | llvm-svn: 328187
* [llvm-mca] Refactor event listeners to make the backend agnostic to event types.Clement Courbet2018-03-131-3/+1
| | | | | | | | | | Summary: This is a first step towards making the pipeline configurable. Subscribers: llvm-commits, andreadb Differential Revision: https://reviews.llvm.org/D44309 llvm-svn: 327389
* [llvm-mca] Views are now independent from resource masks. NFCIAndrea Di Biagio2018-03-101-4/+3
| | | | | | | | | This change removes method Backend::getProcResourceMasks() and simplifies some logic in the Views. This effectively removes yet another dependency between the views and the Backend. No functional change intended. llvm-svn: 327214
* [llvm-mca] Run clang-format on the source code. NFCAndrea Di Biagio2018-03-091-1/+1
| | | | llvm-svn: 327125
* [llvm-mca] add override keyword to method ResourcePressureView::printView().Andrea Di Biagio2018-03-081-1/+1
| | | | | | NFC. llvm-svn: 327027
* [llvm-mca] Unify the API for the various views. NFCIAndrea Di Biagio2018-03-081-3/+3
| | | | | | | | | | | | | | | This allows the customization of the performance report. Users can specify their own custom sequence of views. Each view contributes a portion of the performance report generated by the BackendPrinter. Internally, class BackendPrinter keeps a sequence of views; views are printed out in sequence when method 'printReport()' is called. This patch addresses one of the two review comments from Clement in D43951. llvm-svn: 327018
* [llvm-mca] LLVM Machine Code Analyzer.Andrea Di Biagio2018-03-081-0/+113
llvm-mca is an LLVM based performance analysis tool that can be used to statically measure the performance of code, and to help triage potential problems with target scheduling models. llvm-mca uses information which is already available in LLVM (e.g. scheduling models) to statically measure the performance of machine code in a specific cpu. Performance is measured in terms of throughput as well as processor resource consumption. The tool currently works for processors with an out-of-order backend, for which there is a scheduling model available in LLVM. The main goal of this tool is not just to predict the performance of the code when run on the target, but also help with diagnosing potential performance issues. Given an assembly code sequence, llvm-mca estimates the IPC (instructions per cycle), as well as hardware resources pressure. The analysis and reporting style were mostly inspired by the IACA tool from Intel. This patch is related to the RFC on llvm-dev visible at this link: http://lists.llvm.org/pipermail/llvm-dev/2018-March/121490.html Differential Revision: https://reviews.llvm.org/D43951 llvm-svn: 326998
OpenPOWER on IntegriCloud