Author: anton-afanasyev Date: Tue Jun 11 01:25:54 2019 New Revision: 363036
URL: http://llvm.org/viewvc/llvm-project?rev=363036&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 This is recommit of r362821 Differential Revision: https://reviews.llvm.org/D61914 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=363036&view=auto ============================================================================== --- cfe/trunk/test/Driver/check-time-trace.cpp (added) +++ cfe/trunk/test/Driver/check-time-trace.cpp Tue Jun 11 01:25:54 2019 @@ -0,0 +1,28 @@ +// REQUIRES: shell +// RUN: %clangxx -S -ftime-trace -mllvm --time-trace-granularity=0 %s 2>&1 \ +// RUN: | grep "Time trace json-file dumped to" | 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" + +template <typename T> +struct Struct { + T Num; +}; + +int main() { + Struct<int> S; + + 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=363036&r1=363035&r2=363036&view=diff ============================================================================== --- cfe/trunk/tools/driver/cc1_main.cpp (original) +++ cfe/trunk/tools/driver/cc1_main.cpp Tue Jun 11 01:25:54 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 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits