[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-09-27 Thread Anton Afanasyev via Phabricator via cfe-commits
anton-afanasyev marked an inline comment as done. anton-afanasyev added inline comments. Comment at: cfe/trunk/lib/CodeGen/BackendUtil.cpp:1426-1431 EmitAssemblyHelper AsmHelper(Diags, HeaderOpts, CGOpts, TOpts, LOpts, M); if (CGOpts.ExperimentalNewPassManager)

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-09-24 Thread Anton Afanasyev via Phabricator via cfe-commits
anton-afanasyev marked 2 inline comments as done. anton-afanasyev added inline comments. Comment at: cfe/trunk/lib/CodeGen/BackendUtil.cpp:1426-1431 EmitAssemblyHelper AsmHelper(Diags, HeaderOpts, CGOpts, TOpts, LOpts, M); if (CGOpts.ExperimentalNewPassManager)

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-09-24 Thread Roman Lebedev via Phabricator via cfe-commits
lebedev.ri added inline comments. Comment at: cfe/trunk/lib/CodeGen/BackendUtil.cpp:1426-1431 EmitAssemblyHelper AsmHelper(Diags, HeaderOpts, CGOpts, TOpts, LOpts, M); if (CGOpts.ExperimentalNewPassManager) AsmHelper.EmitAssemblyWithNewPassManager(Action,

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-09-24 Thread Anton Afanasyev via Phabricator via cfe-commits
anton-afanasyev marked 3 inline comments as done. anton-afanasyev added inline comments. Comment at: cfe/trunk/lib/CodeGen/BackendUtil.cpp:1426-1431 EmitAssemblyHelper AsmHelper(Diags, HeaderOpts, CGOpts, TOpts, LOpts, M); if (CGOpts.ExperimentalNewPassManager)

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-09-24 Thread Roman Lebedev via Phabricator via cfe-commits
lebedev.ri added inline comments. Comment at: cfe/trunk/lib/CodeGen/BackendUtil.cpp:1426-1431 EmitAssemblyHelper AsmHelper(Diags, HeaderOpts, CGOpts, TOpts, LOpts, M); if (CGOpts.ExperimentalNewPassManager) AsmHelper.EmitAssemblyWithNewPassManager(Action,

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-09-24 Thread Anton Afanasyev via Phabricator via cfe-commits
anton-afanasyev marked 2 inline comments as done. anton-afanasyev added inline comments. Comment at: cfe/trunk/lib/CodeGen/BackendUtil.cpp:1426-1431 EmitAssemblyHelper AsmHelper(Diags, HeaderOpts, CGOpts, TOpts, LOpts, M); if (CGOpts.ExperimentalNewPassManager)

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-09-24 Thread Roman Lebedev via Phabricator via cfe-commits
lebedev.ri added inline comments. Comment at: cfe/trunk/lib/CodeGen/BackendUtil.cpp:1426-1431 EmitAssemblyHelper AsmHelper(Diags, HeaderOpts, CGOpts, TOpts, LOpts, M); if (CGOpts.ExperimentalNewPassManager) AsmHelper.EmitAssemblyWithNewPassManager(Action,

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-09-24 Thread Anton Afanasyev via Phabricator via cfe-commits
anton-afanasyev marked 2 inline comments as done. anton-afanasyev added inline comments. Comment at: cfe/trunk/lib/CodeGen/BackendUtil.cpp:1426-1431 EmitAssemblyHelper AsmHelper(Diags, HeaderOpts, CGOpts, TOpts, LOpts, M); if (CGOpts.ExperimentalNewPassManager)

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-09-24 Thread Anton Afanasyev via Phabricator via cfe-commits
anton-afanasyev marked 2 inline comments as done. anton-afanasyev added inline comments. Comment at: cfe/trunk/lib/CodeGen/BackendUtil.cpp:1426-1431 EmitAssemblyHelper AsmHelper(Diags, HeaderOpts, CGOpts, TOpts, LOpts, M); if (CGOpts.ExperimentalNewPassManager)

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-09-19 Thread Roman Lebedev via Phabricator via cfe-commits
lebedev.ri added inline comments. Comment at: cfe/trunk/lib/CodeGen/BackendUtil.cpp:1426-1431 EmitAssemblyHelper AsmHelper(Diags, HeaderOpts, CGOpts, TOpts, LOpts, M); if (CGOpts.ExperimentalNewPassManager) AsmHelper.EmitAssemblyWithNewPassManager(Action,

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-04-16 Thread Anton Afanasyev via Phabricator via cfe-commits
anton-afanasyev marked 10 inline comments as done. anton-afanasyev added a comment. Patch by @thakis for BE passes tracing: https://reviews.llvm.org/D60782 Repository: rL LLVM CHANGES SINCE LAST ACTION https://reviews.llvm.org/D58675/new/ https://reviews.llvm.org/D58675

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-04-14 Thread Roman Lebedev via Phabricator via cfe-commits
lebedev.ri added a comment. In D58675#1465706 , @anton-afanasyev wrote: > In D58675#1465336 , @lebedev.ri > wrote: > > > Some post-commit review (please submit a new review, don't replace this > > diff) > > As

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-04-14 Thread Anton Afanasyev via Phabricator via cfe-commits
anton-afanasyev marked 23 inline comments as done. anton-afanasyev added a comment. In D58675#1465336 , @lebedev.ri wrote: > Some post-commit review (please submit a new review, don't replace this diff) > As usual, the incorrect license headers keep

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-04-13 Thread Roman Lebedev via Phabricator via cfe-commits
lebedev.ri added inline comments. Comment at: llvm/trunk/lib/Support/TimeProfiler.cpp:29-30 + +static std::string escapeString(StringRef Src) { + std::string OS; + for (const unsigned char : Src) { lebedev.ri wrote: > `SmallString<32>` ? > Also, it is safe to

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-04-13 Thread Roman Lebedev via Phabricator via cfe-commits
lebedev.ri added a comment. Some post-commit review (please submit a new review, don't replace this diff) As usual, the incorrect license headers keep slipping through. Comment at: llvm/trunk/include/llvm/Support/TimeProfiler.h:5-6 +// +// This file is distributed under the

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-04-12 Thread Anton Afanasyev via Phabricator via cfe-commits
anton-afanasyev added a comment. Use native llvm JSON library update: https://reviews.llvm.org/D60609 Repository: rL LLVM CHANGES SINCE LAST ACTION https://reviews.llvm.org/D58675/new/ https://reviews.llvm.org/D58675 ___ cfe-commits mailing

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-04-08 Thread Anton Afanasyev via Phabricator via cfe-commits
anton-afanasyev added a comment. Fix hashing update: https://reviews.llvm.org/D60404 Repository: rL LLVM CHANGES SINCE LAST ACTION https://reviews.llvm.org/D58675/new/ https://reviews.llvm.org/D58675 ___ cfe-commits mailing list

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-03-30 Thread Anton Afanasyev via Phabricator via cfe-commits
anton-afanasyev added a comment. In D58675#1449053 , @thakis wrote: > ps: Hooray for landing this, and thanks for the cool feature! Thanks! It's @aras_p accomplishment. Repository: rL LLVM CHANGES SINCE LAST ACTION

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-03-30 Thread Anton Afanasyev via Phabricator via cfe-commits
anton-afanasyev added a comment. In D58675#1449051 , @thakis wrote: > Looks like this landed without tests. Please add tests in a follow-up. > > Also, it looks like the flag is currently a cc1 flag. This should probably be > a CoreOption instead so that

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-03-30 Thread Nico Weber via Phabricator via cfe-commits
thakis added a comment. ps: Hooray for landing this, and thanks for the cool feature! Repository: rL LLVM CHANGES SINCE LAST ACTION https://reviews.llvm.org/D58675/new/ https://reviews.llvm.org/D58675 ___ cfe-commits mailing list

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-03-30 Thread Nico Weber via Phabricator via cfe-commits
thakis added a comment. Looks like this landed without tests. Please add tests in a follow-up. Also, it looks like the flag is currently a cc1 flag. This should probably be a CoreOption instead so that both the gcc-style and the cl-style drivers expose it. Right now, users can't really use

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-03-30 Thread Anton Afanasyev via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL357340: Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing`… (authored by anton-afanasyev, committed by ). Herald added a subscriber: kristina. Changed prior to commit:

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-03-29 Thread Anton Afanasyev via Phabricator via cfe-commits
anton-afanasyev added a comment. In D58675#1448112 , @rnk wrote: > lgtm > > I think this is ready. We can adjust the overloads after the fact. I'd like > to get the feature in so we can make improvements independently. Ok, so I'm to commit this and fix

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-03-29 Thread Reid Kleckner via Phabricator via cfe-commits
rnk accepted this revision. rnk added a comment. This revision is now accepted and ready to land. lgtm I think this is ready. We can adjust the overloads after the fact. I'd like to get the feature in so we can make improvements independently. Comment at:

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-03-27 Thread Anton Afanasyev via Phabricator via cfe-commits
anton-afanasyev updated this revision to Diff 192525. anton-afanasyev marked 10 inline comments as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D58675/new/ https://reviews.llvm.org/D58675 Files: clang/include/clang/Basic/CodeGenOptions.def clang/include/clang/Driver/Options.td

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-03-27 Thread Anton Afanasyev via Phabricator via cfe-commits
anton-afanasyev marked an inline comment as done. anton-afanasyev added inline comments. Comment at: clang/lib/Parse/ParseAST.cpp:154 if (HaveLexer) { +llvm::TimeTraceScope TimeScope("Frontend", StringRef("")); P.Initialize(); takuto.ikuta wrote: >

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-03-27 Thread Takuto Ikuta via Phabricator via cfe-commits
takuto.ikuta added inline comments. Comment at: clang/lib/Parse/ParseAST.cpp:154 if (HaveLexer) { +llvm::TimeTraceScope TimeScope("Frontend", StringRef("")); P.Initialize(); anton-afanasyev wrote: > takuto.ikuta wrote: > > Remove StringRef? > I use

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-03-27 Thread Anton Afanasyev via Phabricator via cfe-commits
anton-afanasyev marked 3 inline comments as done. anton-afanasyev added inline comments. Comment at: clang/lib/Parse/ParseAST.cpp:154 if (HaveLexer) { +llvm::TimeTraceScope TimeScope("Frontend", StringRef("")); P.Initialize(); takuto.ikuta wrote: >

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-03-26 Thread Takuto Ikuta via Phabricator via cfe-commits
takuto.ikuta added inline comments. Comment at: clang/lib/CodeGen/BackendUtil.cpp:1352 + + llvm::TimeTraceScope TimeScope("Backend", StringRef("")); + We don't need explicit StringRef constructor call here. Just passing "" is enough. Comment

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-03-26 Thread Anton Afanasyev via Phabricator via cfe-commits
anton-afanasyev updated this revision to Diff 192268. anton-afanasyev marked an inline comment as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D58675/new/ https://reviews.llvm.org/D58675 Files: clang/include/clang/Basic/CodeGenOptions.def clang/include/clang/Driver/Options.td

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-03-26 Thread Anton Afanasyev via Phabricator via cfe-commits
anton-afanasyev marked 8 inline comments as done. anton-afanasyev added inline comments. Comment at: llvm/lib/Support/TimeProfiler.cpp:33 +switch (C) { +case '"': +case '\\': takuto.ikuta wrote: > Include escape for '/' too. >

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-03-23 Thread Takuto Ikuta via Phabricator via cfe-commits
takuto.ikuta added inline comments. Comment at: llvm/lib/Support/TimeProfiler.cpp:28 + +static std::string escapeString(const char *Src) { + std::string OS; you can pass StringRef here and remove .data() or .c_str() from caller. Comment at:

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-03-22 Thread Reid Kleckner via Phabricator via cfe-commits
rnk added a comment. Other than the lifetime issue, I think this is basically ready. Comment at: clang/lib/Sema/SemaTemplateInstantiate.cpp:2014 + llvm::TimeTraceScope TimeScope("InstantiateClass", [&]() { + return Instantiation->getQualifiedNameAsString().c_str(); +

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-03-22 Thread Anton Afanasyev via Phabricator via cfe-commits
anton-afanasyev updated this revision to Diff 191934. anton-afanasyev marked 2 inline comments as done. anton-afanasyev added a comment. Updated following @rnk review notes. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D58675/new/ https://reviews.llvm.org/D58675 Files:

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-03-22 Thread Anton Afanasyev via Phabricator via cfe-commits
anton-afanasyev marked 14 inline comments as done. anton-afanasyev added inline comments. Comment at: llvm/lib/IR/LegacyPassManager.cpp:1632-1634 + bool profileTime = llvm::TimeTraceProfilerEnabled(); + if (profileTime) +llvm::TimeTraceProfilerBegin("OptFunction",

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-03-14 Thread Anton Afanasyev via Phabricator via cfe-commits
anton-afanasyev marked 5 inline comments as done. anton-afanasyev added inline comments. Comment at: clang/lib/Parse/ParseAST.cpp:172 + { +llvm::TimeTraceScope scope("Backend", ""); +Consumer->HandleTranslationUnit(S.getASTContext()); rnk wrote: > I

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-03-14 Thread Reid Kleckner via Phabricator via cfe-commits
rnk added inline comments. Comment at: llvm/lib/IR/LegacyPassManager.cpp:1686 + llvm::TimeTraceScope timeScope("OptModule", M.getName().data()); for (Function : M) I think these OptModule and OptFunction labels may need some improvement. For a

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-03-14 Thread Reid Kleckner via Phabricator via cfe-commits
rnk added inline comments. Comment at: llvm/lib/Support/TimeProfiler.h:1 +//===- llvm/Support/TimeProfiler.h - Hierarchical Time Profiler -*- C++ -*-===// +// I applied this patch locally to try it, and I noticed this header should be in

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-03-13 Thread Reid Kleckner via Phabricator via cfe-commits
rnk added inline comments. Comment at: clang/lib/Parse/ParseAST.cpp:172 + { +llvm::TimeTraceScope scope("Backend", ""); +Consumer->HandleTranslationUnit(S.getASTContext()); I think you may want to move this to `clang::EmitBackendOutput`, which is

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-03-13 Thread Reid Kleckner via Phabricator via cfe-commits
rnk added a comment. Very cool! I'll take a look, I wasn't aware this had been rebased and uploaded, I was thinking about doing it myself yesterday as a side project. As I think I've said elsewhere, I'm really excited to give users the tools they need to analyze why their code compiles slowly.

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-03-13 Thread Zachary Turner via Phabricator via cfe-commits
zturner added reviewers: rnk, hans. zturner added a comment. +reid and hans, as they might be interested in this. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D58675/new/ https://reviews.llvm.org/D58675 ___ cfe-commits mailing list

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-03-13 Thread Simon Pilgrim via Phabricator via cfe-commits
RKSimon added a comment. @rsmith Any suggestions for good reviewers for this please? CHANGES SINCE LAST ACTION https://reviews.llvm.org/D58675/new/ https://reviews.llvm.org/D58675 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-03-12 Thread Anton Afanasyev via Phabricator via cfe-commits
anton-afanasyev added a comment. Ping! Should I add more FE guys to review this? CHANGES SINCE LAST ACTION https://reviews.llvm.org/D58675/new/ https://reviews.llvm.org/D58675 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-03-01 Thread Anton Afanasyev via Phabricator via cfe-commits
anton-afanasyev updated this revision to Diff 11. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D58675/new/ https://reviews.llvm.org/D58675 Files: clang/include/clang/Basic/CodeGenOptions.def clang/include/clang/Driver/Options.td clang/include/clang/Frontend/FrontendOptions.h

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-02-28 Thread Anton Afanasyev via Phabricator via cfe-commits
anton-afanasyev marked an inline comment as done. anton-afanasyev added inline comments. Comment at: clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:23 #include "clang/Sema/Lookup.h" +#include "clang/Sema/SemaInternal.h" #include "clang/Sema/Template.h" RKSimon

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-02-28 Thread Simon Pilgrim via Phabricator via cfe-commits
RKSimon added inline comments. Comment at: clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:23 #include "clang/Sema/Lookup.h" +#include "clang/Sema/SemaInternal.h" #include "clang/Sema/Template.h" anton-afanasyev wrote: > RKSimon wrote: > > nfc change? > What do

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-02-28 Thread Anton Afanasyev via Phabricator via cfe-commits
anton-afanasyev marked 3 inline comments as done. anton-afanasyev added a comment. Ok, I'm to add tests and reviewers. Comment at: clang/lib/Sema/Sema.cpp:113 + llvm::TimeTraceProfilerEnd(); +} S->DiagnoseNonDefaultPragmaPack( RKSimon

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-02-28 Thread Simon Pilgrim via Phabricator via cfe-commits
RKSimon added a comment. Ideally I think you need more clang/frontend experts reviewers - many of us on the reviewers list tend to work mainly in llvm. Test cases would be good as well - even if its just basic sanity tests for command line args etc. Comment at:

[PATCH] D58675: [clang] Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps

2019-02-26 Thread Anton Afanasyev via Phabricator via cfe-commits
anton-afanasyev created this revision. Herald added subscribers: llvm-commits, cfe-commits, jdoerfert, arphaman, mgrang, hiraditya, mgorny, mehdi_amini. Herald added projects: clang, LLVM. This is the first part of time tracing system, I have splitted them cause this part is mostly written by