summaryrefslogtreecommitdiffstats
path: root/polly/lib/CodeGen/PerfMonitor.cpp
Commit message (Collapse)AuthorAgeFilesLines
* [IR] Include target specific intrinsic headersHeejin Ahn2019-12-121-1/+1
| | | | After D71320, target-specific intrinsic headers should be included.
* Update the file headers across all of the LLVM projects in the monorepoChandler Carruth2019-01-191-4/+3
| | | | | | | | | | | | | | | | | to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636
* [PerfMonitor] Fix rdtscp callsitesTobias Grosser2018-09-111-15/+9
| | | | | | | | | | | | | Summary: Update all rdtscp callsites in PerfMonitor so that they conform with the signature changes introduced in r341698. Reviewers: grosser, bollu Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D51928 llvm-svn: 341946
* Fix a lot of typos. NFC.Michael Kruse2017-06-081-1/+1
| | | | llvm-svn: 304974
* [CodeGen] Remove extra ';'. NFC.Michael Kruse2017-06-061-1/+1
| | | | | | | | | | Fix compiler warning: polly/lib/CodeGen/PerfMonitor.cpp:81:2: warning: extra ‘;’ [-Wpedantic] }; ^ llvm-svn: 304802
* [CodeGen] Track trip counts per-scop for performance measurement.Siddharth Bhat2017-06-021-6/+20
| | | | | | | | | | | | | | | | | | | - Add a counter that is incremented once on exit from a scop. - Test cases got split into two: one to test the cycles, and another one to test trip counts. - Sample output: ```name=sample-output.txt scop function, entry block name, exit block name, total time, trip count warmup, %entry.split, %polly.merge_new_and_old, 5180, 1 f, %entry.split, %polly.merge_new_and_old, 409944, 500 g, %entry.split, %polly.merge_new_and_old, 1226, 1 ``` Differential Revision: https://reviews.llvm.org/D33822 llvm-svn: 304543
* [CodeGen] Print performance counter information in CSV.Siddharth Bhat2017-06-021-3/+13
| | | | | | | | | | | | | | | | | | | | | | | | This ensures that tools can parse performance information which Polly generates easily. - Sample output: ```name=out.csv scop function, entry block name, exit block name, total time warmup, %entry.split, %polly.merge_new_and_old, 1960 f, %entry.split, %polly.merge_new_and_old, 1238 g, %entry.split, %polly.merge_new_and_old, 1218 ``` - Example code to parse output: ```lang=python, name=example-parse.py import asciitable import sys table = asciitable.read('out.csv', delimiter=',') asciitable.write(table, sys.stdout, delimiter=',') ``` llvm-svn: 304533
* [NFC] [CodeGen] Bail out of per-scop performance reporting if not supported.Siddharth Bhat2017-06-021-0/+8
| | | | | | | | | | We should bail out if performance monitoring is not supported, since we would have no information to print per-scop, and `FinalStartBB`, `ReturnFromFinal` would be `nullptr`. Assert that these are not `nullptr` if performance monitoring is supported. llvm-svn: 304529
* [CodeGen] Extend Performance Counter to track per-scop information.Siddharth Bhat2017-06-021-27/+74
| | | | | | | | | | | | | | | Previously, we would generate one performance counter for all scops. Now, we generate both the old information, as well as a per-scop performance counter to generate finer grained information. This patch needed a way to generate a unique name for a `Scop`. The start region, end region, and function name combined provides a unique `Scop` name. So, `Scop` has a new public API to provide its start and end region names. Differential Revision: https://reviews.llvm.org/D33723 llvm-svn: 304528
* Fix formatting in PollyTobias Grosser2017-05-101-3/+3
| | | | llvm-svn: 302620
* Update Polly for LLVM API change r302571 that removed varargs functionsChandler Carruth2017-05-101-2/+2
| | | | | | with a nullptr sentinel in favor of nicely typed variadic templates. llvm-svn: 302618
* [PerfMonitor] Use Intrinsics::getDeclarationTobias Grosser2017-04-031-11/+2
| | | | | | | | Instead of creating the declaration ourselves, we obtain it directly from the LLVM intrinsic definitions. This addresses a post-review comment for r299359. Suggested-by: Hongzing Zheng <etherzhhb@gmail.com> llvm-svn: 299360
* [CodeGen] Add Performance MonitorTobias Grosser2017-04-031-0/+235
Add support for -polly-codegen-perf-monitoring. When performance monitoring is enabled, we emit performance monitoring code during code generation that prints after program exit statistics about the total number of cycles executed as well as the number of cycles spent in scops. This gives an estimate on how useful polyhedral optimizations might be for a given program. Example output: Polly runtime information ------------------------- Total: 783110081637 Scops: 663718949365 In the future, we might also add functionality to measure how much time is spent in optimized scops and how many cycles are spent in the fallback code. Reviewers: bollu,sebpop Tags: #polly Differential Revision: https://reviews.llvm.org/D31599 llvm-svn: 299359
OpenPOWER on IntegriCloud