r362821 - [Support][Test] Time profiler: add regression test

Anton Afanasyev via cfe-commits cfe-commits at lists.llvm.org
Fri Jun 7 11:13:49 PDT 2019


Author: anton-afanasyev
Date: Fri Jun  7 11:13:48 2019
New Revision: 362821

URL: http://llvm.org/viewvc/llvm-project?rev=362821&view=rev
Log:
[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

Added:
    cfe/trunk/test/Driver/check-time-trace.cpp
Modified:
    cfe/trunk/tools/driver/cc1_main.cpp

Added: cfe/trunk/test/Driver/check-time-trace.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/check-time-trace.cpp?rev=362821&view=auto
==============================================================================
--- cfe/trunk/test/Driver/check-time-trace.cpp (added)
+++ cfe/trunk/test/Driver/check-time-trace.cpp Fri Jun  7 11:13:48 2019
@@ -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;
+}

Modified: cfe/trunk/tools/driver/cc1_main.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/driver/cc1_main.cpp?rev=362821&r1=362820&r2=362821&view=diff
==============================================================================
--- cfe/trunk/tools/driver/cc1_main.cpp (original)
+++ cfe/trunk/tools/driver/cc1_main.cpp Fri Jun  7 11:13:48 2019
@@ -241,6 +241,11 @@ int cc1_main(ArrayRef<const char *> Argv
 
     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




More information about the cfe-commits mailing list