[CodeGen] Add Performance Monitor
authorTobias Grosser <tobias@grosser.es>
Mon, 3 Apr 2017 14:55:37 +0000 (14:55 +0000)
committerTobias Grosser <tobias@grosser.es>
Mon, 3 Apr 2017 14:55:37 +0000 (14:55 +0000)
commit65371af2e18348e1ea45516c1ace17de0c6e46c6
treef101582915685a1934c40fff325295c3b6be5c55
parent1179470ff8c710b4f609e2c052d3de84b9296eb8
[CodeGen] Add Performance Monitor

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
polly/include/polly/CodeGen/PerfMonitor.h [new file with mode: 0644]
polly/lib/CMakeLists.txt
polly/lib/CodeGen/CodeGeneration.cpp
polly/lib/CodeGen/PerfMonitor.cpp [new file with mode: 0644]
polly/test/Isl/CodeGen/perf_monitoring.ll [new file with mode: 0644]