[PATCH] D47196: [Time-report ](2): Recursive timers in Clang

2018-12-11 Thread Anton Afanasyev via Phabricator via cfe-commits
anton-afanasyev added a comment. In D47196#1324540 , @Trass3r wrote: > Is this still in progress? AFAIK, this is abandoned by author now. I'm working on other implementation which is similar but with another angle of view. The implementation projected

[PATCH] D47196: [Time-report ](2): Recursive timers in Clang

2018-12-08 Thread Trass3r via Phabricator via cfe-commits
Trass3r added a comment. Is this still in progress? CHANGES SINCE LAST ACTION https://reviews.llvm.org/D47196/new/ https://reviews.llvm.org/D47196 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[PATCH] D47196: [Time-report ](2): Recursive timers in Clang

2018-08-17 Thread Andrew V. Tischenko via Phabricator via cfe-commits
avt77 added a comment. In https://reviews.llvm.org/D47196#1202805, @efriedma wrote: > > :start: means the timer was started > > In some cases, the ChildTime is already non-zero at the "start" point; what > does that mean? It means there was recursive call and this child time should be removed

[PATCH] D47196: [Time-report ](2): Recursive timers in Clang

2018-08-16 Thread Eli Friedman via Phabricator via cfe-commits
efriedma added a comment. > :start: means the timer was started In some cases, the ChildTime is already non-zero at the "start" point; what does that mean? > ActOnFunctionDeclarator:start:._exception: That's weird... DeclarationName::print should generally return something ASCII; do you

[PATCH] D47196: [Time-report ](2): Recursive timers in Clang

2018-08-16 Thread Andrew V. Tischenko via Phabricator via cfe-commits
avt77 added a comment. In https://reviews.llvm.org/D47196#1190377, @efriedma wrote: > I mean, which of the callers of startFrontendTimer() is calling it with a > pointer to std::declval()? F6951300: declval.log The attachment keeps debug output for

[PATCH] D47196: [Time-report ](2): Recursive timers in Clang

2018-08-16 Thread Andrew V. Tischenko via Phabricator via cfe-commits
avt77 updated this revision to Diff 160997. avt77 added a comment. The ability to produce debug output for 'ftiming' was added. As result now it's possible to check places where timers start/stop and for what functions it's being done (see changes in Utils.h). https://reviews.llvm.org/D47196

[PATCH] D47196: [Time-report ](2): Recursive timers in Clang

2018-08-06 Thread Eli Friedman via Phabricator via cfe-commits
efriedma added a comment. I mean, which of the callers of startFrontendTimer() is calling it with a pointer to std::declval()? https://reviews.llvm.org/D47196 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[PATCH] D47196: [Time-report ](2): Recursive timers in Clang

2018-08-03 Thread Andrew V. Tischenko via Phabricator via cfe-commits
avt77 added a comment. In https://reviews.llvm.org/D47196#1186460, @efriedma wrote: > "0.0040" is four milliseconds? You're probably crediting time incorrectly, > somehow. Can you tell which FrontendTimeRAII the time is coming from? Not sure I understand you. What do you like to know

[PATCH] D47196: [Time-report ](2): Recursive timers in Clang

2018-08-02 Thread Eli Friedman via Phabricator via cfe-commits
efriedma added a comment. "0.0040" is four milliseconds? You're probably crediting time incorrectly, somehow. Can you tell which FrontendTimeRAII the time is coming from? https://reviews.llvm.org/D47196 ___ cfe-commits mailing list

[PATCH] D47196: [Time-report ](2): Recursive timers in Clang

2018-08-01 Thread Andrew V. Tischenko via Phabricator via cfe-commits
avt77 updated this revision to Diff 158542. avt77 added a comment. efriedma, I removed redundant RAII objects but I still have the following: 1.0800 (271) _ZSt7declvalv (*) 1.0840 (273) _ZSt7declvalv (*) 1.0880 (269) _ZSt7declvalv (*) 1.1000 (276) _ZSt7declvalv (*) 1.1200 (282) _ZSt7declvalv

[PATCH] D47196: [Time-report ](2): Recursive timers in Clang

2018-07-31 Thread Eli Friedman via Phabricator via cfe-commits
efriedma added a comment. I think there's something weird happening with your timers if they're showing half a second spent parsing or instantiating std::declval: it doesn't have a definition, anywhere (it's just a placeholder for template metaprogramming tricks). Comment

[PATCH] D47196: [Time-report ](2): Recursive timers in Clang

2018-07-31 Thread Andrew V. Tischenko via Phabricator via cfe-commits
avt77 updated this revision to Diff 158221. avt77 added a comment. Herald added a subscriber: eraman. Accordingly to efriedma suggestion I removed start/stopFrontendTimer where it's possible and inserted FrontendTimeRAII in several new places. As result the patch becomes bigger and bigger. And

[PATCH] D47196: [Time-report ](2): Recursive timers in Clang

2018-07-30 Thread Andrew V. Tischenko via Phabricator via cfe-commits
avt77 added inline comments. Comment at: lib/Sema/SemaLambda.cpp:1447 +getFrontendFunctionTimeCtx()->startFrontendTimer( +{LSI.CallOperator, 0.0}); + } efriedma wrote: > This seems sort of late? You're starting the timer after the body has >

[PATCH] D47196: [Time-report ](2): Recursive timers in Clang

2018-07-27 Thread Eli Friedman via Phabricator via cfe-commits
efriedma added inline comments. Comment at: lib/Sema/SemaLambda.cpp:1447 +getFrontendFunctionTimeCtx()->startFrontendTimer( +{LSI.CallOperator, 0.0}); + } This seems sort of late? You're starting the timer after the body has already been parsed.

[PATCH] D47196: [Time-report ](2): Recursive timers in Clang

2018-07-26 Thread Andrew V. Tischenko via Phabricator via cfe-commits
avt77 added a comment. Ping! efriedma, do you have any other comments/requirements? https://reviews.llvm.org/D47196 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D47196: [Time-report ](2): Recursive timers in Clang

2018-07-18 Thread Andrew V. Tischenko via Phabricator via cfe-commits
avt77 updated this revision to Diff 156064. avt77 added a comment. I added required comments and did the required changes. https://reviews.llvm.org/D47196 Files: include/clang/Driver/CC1Options.td include/clang/Frontend/CodeGenOptions.h include/clang/Frontend/Utils.h

[PATCH] D47196: [Time-report ](2): Recursive timers in Clang

2018-07-17 Thread Andrew V. Tischenko via Phabricator via cfe-commits
avt77 added a comment. In https://reviews.llvm.org/D47196#1162321, @efriedma wrote: > Adding startFrontendTimer/stopFrontendTimer helps a little, but it's still > difficult to match a given startFrontendTimer to the corresponding > stopFrontendTimer because they're in completely different

[PATCH] D47196: [Time-report ](2): Recursive timers in Clang

2018-07-13 Thread Eli Friedman via Phabricator via cfe-commits
efriedma added a comment. Adding startFrontendTimer/stopFrontendTimer helps a little, but it's still difficult to match a given startFrontendTimer to the corresponding stopFrontendTimer because they're in completely different functions in some cases. Do they really need to be scattered like

[PATCH] D47196: [Time-report ](2): Recursive timers in Clang

2018-07-10 Thread Andrew V. Tischenko via Phabricator via cfe-commits
avt77 updated this revision to Diff 154802. avt77 added a comment. I fixed all issues raised by efriedma: GlobalDecl(FD), function body, class names, etc. Many tnx for your help. https://reviews.llvm.org/D47196 Files: include/clang/Frontend/Utils.h lib/CodeGen/CodeGenAction.cpp

[PATCH] D47196: [Time-report ](2): Recursive timers in Clang

2018-07-10 Thread Andrew V. Tischenko via Phabricator via cfe-commits
avt77 added a comment. In https://reviews.llvm.org/D47196#1134185, @efriedma wrote: > Can you give an example of what the output looks like? First of all excuse me for such delay with my answer: I was on my vacations. During bootstrap we could see something like here: [ 84%] Building CXX

[PATCH] D47196: [Time-report ](2): Recursive timers in Clang

2018-06-15 Thread Eli Friedman via Phabricator via cfe-commits
efriedma added a comment. Can you give an example of what the output looks like? Please don't define multiple different classes with the same name SortClassName. It seems like you've scattered the "start" and "stop" calls all over the place; can you put the start and stop calls in the same

[PATCH] D47196: [Time-report ](2): Recursive timers in Clang

2018-06-04 Thread Andrew V. Tischenko via Phabricator via cfe-commits
avt77 updated this revision to Diff 149734. avt77 added a comment. To simplify the review I removed all LLVM_DEBUG items - now the patch is really shorter than it was before. https://reviews.llvm.org/D47196 Files: include/clang/Frontend/Utils.h lib/CodeGen/CodeGenAction.cpp

[PATCH] D47196: [Time-report ](2): Recursive timers in Clang

2018-05-30 Thread Andrew V. Tischenko via Phabricator via cfe-commits
avt77 added a comment. Hi All, What should I do to simplify the review? I could remove all LLVM_DEBUG related stuff; I could remove all addtional counters and leave only necessary one or two of them. As result the patch will become shorter. Should I do all these truncations to simplify the

[PATCH] D47196: [Time-report ](2): Recursive timers in Clang

2018-05-24 Thread Andrew V. Tischenko via Phabricator via cfe-commits
avt77 updated this revision to Diff 148395. avt77 added a comment. The sources were re-based to fit in LLVM_DEBUG rename. One more counter was added. Debug logging was improved again. https://reviews.llvm.org/D47196 Files: include/clang/Frontend/Utils.h lib/CodeGen/BackendUtil.cpp

[PATCH] D47196: [Time-report ](2): Recursive timers in Clang

2018-05-23 Thread Andrew V. Tischenko via Phabricator via cfe-commits
avt77 updated this revision to Diff 148226. avt77 added a comment. - switched to llvm::sort - from std::sort (tnx to mgrang) - added a new counter (hope it will improve the output numbers) - slightly changed a couple of existing counters - seriously improved debug/monitor logging

[PATCH] D47196: [Time-report ](2): Recursive timers in Clang

2018-05-22 Thread Mandeep Singh Grang via Phabricator via cfe-commits
mgrang added inline comments. Comment at: include/clang/Frontend/Utils.h:369 + llvm::CreateInfoOutputFile(); + std::sort(FrontendTimes.begin(), FrontendTimes.end(), SortName); + using FTPIterator = typename std::vector::iterator; Please use

[PATCH] D47196: [Time-report ](2): Recursive timers in Clang

2018-05-22 Thread Andrew V. Tischenko via Phabricator via cfe-commits
avt77 created this revision. avt77 added reviewers: RKSimon, simon.f.whittaker, mgorny, russell.gallop, efriedma, rsmith, mzolotukhin, davezarzycki, vsk. Herald added a subscriber: mgrang. I introduce the new infrastructure supporting recursive timers in Clang. This patch is based on