summaryrefslogtreecommitdiffstats
path: root/llvm/test/Other/time-passes.ll
diff options
context:
space:
mode:
authorFedor Sergeev <fedor.sergeev@azul.com>2019-03-15 22:15:23 +0000
committerFedor Sergeev <fedor.sergeev@azul.com>2019-03-15 22:15:23 +0000
commit6a9c2f4f98817b8c4e38c7d1fde00a8837694bce (patch)
tree94cf3e440c3805278f195df166df8ed38b3e0114 /llvm/test/Other/time-passes.ll
parent3739a208757308b59e84fbba755e875059583995 (diff)
[TimePasses] allow -time-passes reporting into a custom stream
TimePassesHandler object (implementation of time-passes for new pass manager) gains ability to report into a stream customizable per-instance (per pipeline). Intended use is to specify separate time-passes output stream per each compilation, setting up TimePasses member of StandardInstrumentation during PassBuilder setup. That allows to get independent non-overlapping pass-times reports for parallel independent compilations (in JIT-like setups). By default it still puts timing reports into the info-output-file stream (created by CreateInfoOutputFile every time report is requested). Unit-test added for non-default case, and it also allowed to discover that print() does not work as declared - it did not reset the timers, leading to yet another report being printed into the default stream. Fixed print() to actually reset timers according to what was declared in print's comments before. Reviewed By: philip.pfaffe Differential Revision: https://reviews.llvm.org/D59366 llvm-svn: 356305
Diffstat (limited to 'llvm/test/Other/time-passes.ll')
-rw-r--r--llvm/test/Other/time-passes.ll10
1 files changed, 10 insertions, 0 deletions
diff --git a/llvm/test/Other/time-passes.ll b/llvm/test/Other/time-passes.ll
index 066ff267c473..743b4ebc0d6d 100644
--- a/llvm/test/Other/time-passes.ll
+++ b/llvm/test/Other/time-passes.ll
@@ -4,6 +4,16 @@
; RUN: opt < %s -disable-output -passes='instcombine,loop(licm),instcombine,loop(licm)' -time-passes 2>&1 | FileCheck %s --check-prefix=TIME --check-prefix=TIME-NEW -check-prefix=TIME-DOUBLE-LICM-NEW
; RUN: opt < %s -disable-output -passes='default<O2>' -time-passes 2>&1 | FileCheck %s --check-prefix=TIME
;
+; The following 4 test runs verify -info-output-file interaction (default goes to stderr, '-' goes to stdout).
+; RUN: opt < %s -disable-output -O2 -time-passes -info-output-file='-' 2>/dev/null | FileCheck %s --check-prefix=TIME
+; RUN: opt < %s -disable-output -passes='default<O2>' -time-passes -info-output-file='-' 2>/dev/null | FileCheck %s --check-prefix=TIME
+;
+; RUN: rm -f %t; opt < %s -disable-output -O2 -time-passes -info-output-file=%t
+; RUN: cat %t | FileCheck %s --check-prefix=TIME
+;
+; RUN: rm -f %t; opt < %s -disable-output -passes='default<O2>' -time-passes -info-output-file=%t
+; RUN: cat %t | FileCheck %s --check-prefix=TIME
+;
; TIME: Pass execution timing report
; TIME: Total Execution Time:
; TIME: Name