diff options
| author | Anton Afanasyev <anton.a.afanasyev@gmail.com> | 2019-06-07 18:13:48 +0000 |
|---|---|---|
| committer | Anton Afanasyev <anton.a.afanasyev@gmail.com> | 2019-06-07 18:13:48 +0000 |
| commit | 44282a60c90fdded249d57d91b12c6c0907102ec (patch) | |
| tree | a7858e59103329eb79500832dc6eb8c619d26c5a | |
| parent | 4c9db2045a50e9afcc8196d4269d3092cb72d0c4 (diff) | |
| download | bcm5719-llvm-44282a60c90fdded249d57d91b12c6c0907102ec.tar.gz bcm5719-llvm-44282a60c90fdded249d57d91b12c6c0907102ec.zip | |
[Support][Test] Time profiler: add regression test
Summary:
Add output to `llvm::errs()` when `-ftime-trace` option is enabled,
add regression test checking this option works as expected.
Reviewers: thakis, aganea
Subscribers: cfe-commits, llvm-commits
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D61914
> llvm-svn: 362792
llvm-svn: 362821
| -rw-r--r-- | clang/test/Driver/check-time-trace.cpp | 23 | ||||
| -rw-r--r-- | clang/tools/driver/cc1_main.cpp | 5 |
2 files changed, 28 insertions, 0 deletions
diff --git a/clang/test/Driver/check-time-trace.cpp b/clang/test/Driver/check-time-trace.cpp new file mode 100644 index 00000000000..3df41728133 --- /dev/null +++ b/clang/test/Driver/check-time-trace.cpp @@ -0,0 +1,23 @@ +// RUN: %clangxx -ftime-trace -mllvm --time-trace-granularity=0 %s 2>&1 | grep "Time trace json-file dumped to" \ +// RUN: | awk '{print $NF}' | xargs cat \ +// RUN: | %python -c 'import json, sys; json.dump(json.loads(sys.stdin.read()), sys.stdout, sort_keys=True, indent=2)' \ +// RUN: | FileCheck %s + +// CHECK: "traceEvents": [ +// CHECK: "args": +// CHECK: "detail": +// CHECK: "dur": +// CHECK: "name": +// CHECK-NEXT: "ph": +// CHECK-NEXT: "pid": +// CHECK-NEXT: "tid": +// CHECK-NEXT: "ts": +// CHECK: "name": "clang" +// CHECK: "name": "process_name" + +#include <iostream> + +int main() { + std::cout << "Foo" << std::endl; + return 0; +} diff --git a/clang/tools/driver/cc1_main.cpp b/clang/tools/driver/cc1_main.cpp index ae60fefdcf5..caf73195fe5 100644 --- a/clang/tools/driver/cc1_main.cpp +++ b/clang/tools/driver/cc1_main.cpp @@ -241,6 +241,11 @@ int cc1_main(ArrayRef<const char *> Argv, const char *Argv0, void *MainAddr) { llvm::timeTraceProfilerWrite(*profilerOutput); llvm::timeTraceProfilerCleanup(); + + llvm::errs() << "Time trace json-file dumped to " << Path.str() << "\n"; + llvm::errs() + << "Use chrome://tracing or Speedscope App " + "(https://www.speedscope.app) for flamegraph visualization\n"; } // Our error handler depends on the Diagnostics object, which we're |

