Page MenuHomePhabricator

fedor.sergeev (Fedor Sergeev)
User

Projects

User does not belong to any projects.

User Details

User Since
Feb 10 2017, 1:36 AM (123 w, 4 d)

Recent Activity

Yesterday

fedor.sergeev requested changes to D63706: [InlineCost] Fix bug 42084: remember negative result when computing full inline cost.

Please, see my comment to PR42084: https://bugs.llvm.org/show_bug.cgi?id=42084#c3.
A core of the problem is in two difference Cost-vs-Threshold checks used in analyzeBlock (Cost >= Threshold) and analyzeCall (Cost < max(1, Threshold)).
I believe a proper fix for this bug would be to use a unified Cost-vs-Threshold check everywhere.

Mon, Jun 24, 9:26 AM · Restricted Project

Fri, Jun 21

fedor.sergeev added a comment to D63058: [InlineCost] Fix bug 42084: return the first negative result.

I think this is somewhat the wrong approach.
I think we need to widen the interface a bit to return two pieces of information instead of one:

Fri, Jun 21, 9:09 AM · Restricted Project

Mon, Jun 17

fedor.sergeev added a comment to D63058: [InlineCost] Fix bug 42084: return the first negative result.

One issue bothers me: results of the InlineCost analyzer will depend on the flag ComputeFullInlineCost. Negative or positive decision will persist but the message and highest computed cost will be changing.

We already have the cost difference depending on this flag.
It seems to be rather obvious consequence of "full inline cost" notion and the difference should not be confusing...

Mon, Jun 17, 3:33 AM · Restricted Project

Thu, Jun 13

fedor.sergeev added a comment to D63034: Slightly increase LastCallToStaticBonus for cold callsites.

Btw, please, take a look at this review: https://reviews.llvm.org/D60740
I have not found time to integrate it yet, but it slightly changes the approach on handling this bonus
(main idea is to apply it to threshold, like majority of other bonues, instead of applying it to cost).

Thu, Jun 13, 12:40 AM · Restricted Project
fedor.sergeev added a reviewer for D63034: Slightly increase LastCallToStaticBonus for cold callsites: fedor.sergeev.
Thu, Jun 13, 12:40 AM · Restricted Project

May 8 2019

fedor.sergeev added a comment to D60935: [IndVarSimplify] Fixup nowrap flags during LFTR when moving to post-inc (PR31181).

discovered an unfinished review that Sanjoy was doing to address PR31181: D30446
(mentioning just in case it appears to be useful)

May 8 2019, 1:27 AM · Restricted Project

Apr 30 2019

fedor.sergeev committed rGeeae45dc77d2: [NFC][InlineCost] cleanup - comments, overflow handling. (authored by fedor.sergeev).
[NFC][InlineCost] cleanup - comments, overflow handling.
Apr 30 2019, 1:43 PM
fedor.sergeev committed rL359609: [NFC][InlineCost] cleanup - comments, overflow handling..
[NFC][InlineCost] cleanup - comments, overflow handling.
Apr 30 2019, 1:43 PM
fedor.sergeev closed D60751: [NFC][InlineCost] cleanup - comments, overflow handling..
Apr 30 2019, 1:43 PM · Restricted Project

Apr 27 2019

fedor.sergeev updated the diff for D60740: [InlineCost] cleanup calculations of Cost and Threshold.

removing InlineCallBonus

Apr 27 2019, 11:34 AM · Restricted Project
fedor.sergeev updated the summary of D60740: [InlineCost] cleanup calculations of Cost and Threshold.
Apr 27 2019, 11:34 AM · Restricted Project
fedor.sergeev updated the diff for D60751: [NFC][InlineCost] cleanup - comments, overflow handling..

adding assert

Apr 27 2019, 6:35 AM · Restricted Project
fedor.sergeev added inline comments to D60751: [NFC][InlineCost] cleanup - comments, overflow handling..
Apr 27 2019, 3:35 AM · Restricted Project

Apr 23 2019

fedor.sergeev committed rG652168a99b5c: [CallSite removal] move InlineCost to CallBase usage (authored by fedor.sergeev).
[CallSite removal] move InlineCost to CallBase usage
Apr 23 2019, 5:42 AM
fedor.sergeev committed rL358982: [CallSite removal] move InlineCost to CallBase usage.
[CallSite removal] move InlineCost to CallBase usage
Apr 23 2019, 5:41 AM
fedor.sergeev closed D60636: [CallSite removal] move InlineCost to CallBase usage.
Apr 23 2019, 5:41 AM · Restricted Project
fedor.sergeev added inline comments to D60636: [CallSite removal] move InlineCost to CallBase usage.
Apr 23 2019, 5:02 AM · Restricted Project

Apr 22 2019

fedor.sergeev abandoned D60814: [PassBuilder] promote pass-pipeline parsing API to public.
Apr 22 2019, 3:50 AM · Restricted Project
fedor.sergeev added a comment to D60740: [InlineCost] cleanup calculations of Cost and Threshold.

ping?

Apr 22 2019, 3:48 AM · Restricted Project
fedor.sergeev added a comment to D60636: [CallSite removal] move InlineCost to CallBase usage.

ping?

Apr 22 2019, 3:48 AM · Restricted Project
fedor.sergeev added reviewers for D60636: [CallSite removal] move InlineCost to CallBase usage: asbirlea, yrouban.
Apr 22 2019, 3:48 AM · Restricted Project
fedor.sergeev accepted D60676: [NewPM] Add Option handling for SimpleLoopUnswitch.

LGTM.

Apr 22 2019, 2:37 AM · Restricted Project

Apr 21 2019

fedor.sergeev requested changes to D60676: [NewPM] Add Option handling for SimpleLoopUnswitch.
Apr 21 2019, 7:26 AM · Restricted Project
fedor.sergeev accepted D56336: [Support] unflake TempFileCollisions test.

Looks good!

Apr 21 2019, 7:22 AM · Restricted Project

Apr 18 2019

fedor.sergeev added inline comments to D60676: [NewPM] Add Option handling for SimpleLoopUnswitch.
Apr 18 2019, 10:54 PM · Restricted Project
fedor.sergeev added a comment to D60814: [PassBuilder] promote pass-pipeline parsing API to public.

see D60870 for a proof-of-concept implementation of PipelineParser.

Apr 18 2019, 2:05 PM · Restricted Project
fedor.sergeev added a comment to D60870: POC. [PassBuilder] introduce a separate pass-pipeline parsing API.

This is not yet complete (in particular parseAA is still in PassBuilder atm).
However I would like to get a feedback on overall organization.
Right now:

  • PipelineParser is a nested class in PassBuilder
  • it is created for a single text-pipeline-parsing query
  • text is processed into a pipeline vector and kept in the parser
  • callbacks still reside in pass builder, accessed through a reference to pass builder kept in the parser
  • callbacks take both Parser and array of Elements
Apr 18 2019, 8:24 AM · Restricted Project
fedor.sergeev created D60870: POC. [PassBuilder] introduce a separate pass-pipeline parsing API.
Apr 18 2019, 7:50 AM · Restricted Project

Apr 17 2019

fedor.sergeev accepted D60681: [NewPM] Add Option handling for LoopVectorize.

LGTM.

Apr 17 2019, 10:42 PM · Restricted Project
fedor.sergeev requested changes to D60676: [NewPM] Add Option handling for SimpleLoopUnswitch.
Apr 17 2019, 10:42 PM · Restricted Project
fedor.sergeev added a comment to D60814: [PassBuilder] promote pass-pipeline parsing API to public.

Yeah, the array-ref API here is already pretty leaky. It'd be really nice if we could only give the callbacks the necessary APIs here, but not sure its worth building that abstraction. I think the way I'd do it is create a parser type that is only built by the PassBuilder and is passed into the callbacks. It would then have these APIs, etc. It'd also be used internally to implement the main parsing API. Thoughts?

It might be a bit conceptually cleaner, but other than renaming the object from PassBuilder to PassPipelineParser (and internally talking to PassBuilder), what would be the API difference
compared to what is being suggested here?
I see a bunch of questions, e.g. - should we keep the callbacks in the parser object? etc
And I dont really see what practical benefits would we get from separating the parsing API out...

Apr 17 2019, 8:05 AM · Restricted Project
fedor.sergeev added a comment to D60814: [PassBuilder] promote pass-pipeline parsing API to public.

What is your specific usecase for this? You have a custom PassManager which can contain, e.g., a function pass pipeline?

Right. We are building our own "kinda-SCC" pass manager, which runs inlining-devirtualization iteration doing walk over functions in rather different order than current SCC does.
This pass manager right now accepts at least one function pass pipeline (and we think about adding one more), and I would like to be able to populate this pass manager from -passes.

Apr 17 2019, 3:33 AM · Restricted Project

Apr 16 2019

fedor.sergeev added a comment to D60783: [LoopPred] Implement a version of the profitability heuristic w/o BPI.

In the new pass manager, getting access to BPI reliability is a challenge. In practice, we've been running downstream with a variation of this non-BPI based heuristic.

Can you please explain why? The new pass manager was supposed to make our problems getting a hold of analysis results in different places easier, not harder.

New pass manager provides proper organization of analyses but it cant (and shouldnt!) hide innate asymmetry in relationship between Function-level analysis and Loop-level transformation.
NPM specifically prohibits reruns of outer-level analysis from within a inner-level-pass (proxy is readonly).
When working on loop-level you can only *use* function/module-level analysis, manually *preserve* it or automatically invalidate analysis results as a whole after the changes to IR.
That seems to be a proper design decision.

Apr 16 2019, 11:52 PM · Restricted Project
fedor.sergeev created D60814: [PassBuilder] promote pass-pipeline parsing API to public.
Apr 16 2019, 11:21 PM · Restricted Project
fedor.sergeev updated the summary of D60740: [InlineCost] cleanup calculations of Cost and Threshold.
Apr 16 2019, 3:13 AM · Restricted Project
fedor.sergeev updated the summary of D60740: [InlineCost] cleanup calculations of Cost and Threshold.
Apr 16 2019, 3:13 AM · Restricted Project
fedor.sergeev added a reviewer for D60751: [NFC][InlineCost] cleanup - comments, overflow handling.: apilipenko.
Apr 16 2019, 3:08 AM · Restricted Project
fedor.sergeev added a reviewer for D60740: [InlineCost] cleanup calculations of Cost and Threshold: apilipenko.
Apr 16 2019, 3:07 AM · Restricted Project

Apr 15 2019

fedor.sergeev updated the summary of D60740: [InlineCost] cleanup calculations of Cost and Threshold.
Apr 15 2019, 10:40 PM · Restricted Project
fedor.sergeev updated the summary of D60740: [InlineCost] cleanup calculations of Cost and Threshold.
Apr 15 2019, 10:40 PM · Restricted Project
fedor.sergeev added a child revision for D60751: [NFC][InlineCost] cleanup - comments, overflow handling.: D60740: [InlineCost] cleanup calculations of Cost and Threshold.
Apr 15 2019, 10:33 PM · Restricted Project
fedor.sergeev added a parent revision for D60740: [InlineCost] cleanup calculations of Cost and Threshold: D60751: [NFC][InlineCost] cleanup - comments, overflow handling..
Apr 15 2019, 10:33 PM · Restricted Project
fedor.sergeev created D60751: [NFC][InlineCost] cleanup - comments, overflow handling..
Apr 15 2019, 10:33 PM · Restricted Project
fedor.sergeev updated the diff for D60740: [InlineCost] cleanup calculations of Cost and Threshold.

moving NFC part out of this change

Apr 15 2019, 10:32 PM · Restricted Project
fedor.sergeev added a child revision for D60412: [CallSite removal] Move the legacy PM, call graph, and some inliner code to `CallBase`.: D60636: [CallSite removal] move InlineCost to CallBase usage.
Apr 15 2019, 9:53 PM · Restricted Project
fedor.sergeev added a parent revision for D60636: [CallSite removal] move InlineCost to CallBase usage: D60412: [CallSite removal] Move the legacy PM, call graph, and some inliner code to `CallBase`..
Apr 15 2019, 9:53 PM · Restricted Project
fedor.sergeev added inline comments to D60740: [InlineCost] cleanup calculations of Cost and Threshold.
Apr 15 2019, 9:45 PM · Restricted Project
fedor.sergeev created D60740: [InlineCost] cleanup calculations of Cost and Threshold.
Apr 15 2019, 5:16 PM · Restricted Project
fedor.sergeev added a reviewer for D59918: [Attributor] Pass infrastructure and fixpoint framework: chandlerc.
Apr 15 2019, 3:00 PM · Restricted Project

Apr 14 2019

fedor.sergeev accepted D60675: [NewPM] Add Option handling for SimplifyCFG.

LGTM.

Apr 14 2019, 11:30 PM · Restricted Project
fedor.sergeev added inline comments to D60675: [NewPM] Add Option handling for SimplifyCFG.
Apr 14 2019, 11:02 PM · Restricted Project

Apr 12 2019

fedor.sergeev created D60636: [CallSite removal] move InlineCost to CallBase usage.
Apr 12 2019, 3:00 PM · Restricted Project

Apr 9 2019

fedor.sergeev added a reviewer for D59920: [FunctionAttrs] Remove old "returned" argument deduction: chandlerc.
Apr 9 2019, 2:03 AM · Restricted Project
fedor.sergeev added a reviewer for D59919: [Attributor] Deduce "returned" argument attribute: chandlerc.
Apr 9 2019, 2:03 AM · Restricted Project, Restricted Project

Apr 8 2019

fedor.sergeev accepted D60412: [CallSite removal] Move the legacy PM, call graph, and some inliner code to `CallBase`..

LGTM, thanks!

Apr 8 2019, 9:07 AM · Restricted Project

Apr 1 2019

fedor.sergeev added a comment to D59825: SafepointIRVerifier port to new Pass Manager.

Landed the change back, with fixes to module.modulemap. r357361.

Apr 1 2019, 3:43 AM · Restricted Project

Mar 31 2019

fedor.sergeev committed rGa2ed448bf24f: SafepointIRVerifier port to new Pass Manager (authored by fedor.sergeev).
SafepointIRVerifier port to new Pass Manager
Mar 31 2019, 3:15 AM
fedor.sergeev committed rL357361: SafepointIRVerifier port to new Pass Manager.
SafepointIRVerifier port to new Pass Manager
Mar 31 2019, 3:14 AM

Mar 28 2019

fedor.sergeev requested changes to D57835: Fix -ftime-report with -x ir.

just to make the comments visible :)

Mar 28 2019, 4:47 AM
fedor.sergeev added a comment to D59869: [NewPM] Fix a nasty bug with analysis invalidation in the new PM..

Pushed this through our java-based fuzzer, no problems found so far
(though our use of SCC-based passes is very limited).

Mar 28 2019, 1:08 AM · Restricted Project

Mar 26 2019

fedor.sergeev accepted D59825: SafepointIRVerifier port to new Pass Manager.

LGTM

Mar 26 2019, 11:11 PM · Restricted Project
fedor.sergeev added inline comments to D59825: SafepointIRVerifier port to new Pass Manager.
Mar 26 2019, 11:06 PM · Restricted Project
fedor.sergeev added a comment to D59825: SafepointIRVerifier port to new Pass Manager.

Please, update verify-safepoint tests to use new-pass-manager flavor.

Mar 26 2019, 11:16 AM · Restricted Project

Mar 22 2019

fedor.sergeev committed rGec74378e93fe: [Legacy][TimePasses] allow -time-passes reporting into a custom stream (authored by fedor.sergeev).
[Legacy][TimePasses] allow -time-passes reporting into a custom stream
Mar 22 2019, 4:11 PM
fedor.sergeev committed rL356824: [Legacy][TimePasses] allow -time-passes reporting into a custom stream.
[Legacy][TimePasses] allow -time-passes reporting into a custom stream
Mar 22 2019, 4:10 PM
fedor.sergeev closed D59416: [Legacy][TimePasses] allow -time-passes reporting into a custom stream.
Mar 22 2019, 4:10 PM · Restricted Project

Mar 20 2019

fedor.sergeev updated the diff for D59416: [Legacy][TimePasses] allow -time-passes reporting into a custom stream.

comments updated

Mar 20 2019, 2:45 PM · Restricted Project
fedor.sergeev added inline comments to D59416: [Legacy][TimePasses] allow -time-passes reporting into a custom stream.
Mar 20 2019, 1:20 PM · Restricted Project
fedor.sergeev added inline comments to D59416: [Legacy][TimePasses] allow -time-passes reporting into a custom stream.
Mar 20 2019, 5:34 AM · Restricted Project
fedor.sergeev added inline comments to D59416: [Legacy][TimePasses] allow -time-passes reporting into a custom stream.
Mar 20 2019, 5:23 AM · Restricted Project
fedor.sergeev updated the diff for D59416: [Legacy][TimePasses] allow -time-passes reporting into a custom stream.

moved legacy test code around to remove the need for additional namespace manipulations

Mar 20 2019, 4:42 AM · Restricted Project

Mar 17 2019

fedor.sergeev planned changes to D51632: [New PM][PassInstrumentation] enhancing PassInstrumentation with PassManager tracking.

changing status to reflect that there is no active work on this patch atm.

Mar 17 2019, 11:16 PM · Restricted Project

Mar 15 2019

fedor.sergeev added inline comments to D57835: Fix -ftime-report with -x ir.
Mar 15 2019, 3:27 PM
fedor.sergeev added a comment to D57835: Fix -ftime-report with -x ir.

I partially solved the problem with double printing the reports. It's from this in cc1_main:

// If any timers were active but haven't been destroyed yet, print theirp
// results now.  This happens in -disable-free mode.
llvm::TimerGroup::printAll(llvm::errs());

On a source file, -ftime-report -disable-free prints one report. -ftime-report without disable-free prints 2. For the IR file, both happen either way and it double prints. The printing destructor can still be called from the ManagedStatic in PassTimingInfo

I dont quite understand what clang is doing in terms of timers (and what -disable-free is/how does it interact with -ftime-report).
However if after doing printAll() you expect that there wont be any other reports then you should call clearAll() immediately after.

Mar 15 2019, 3:24 PM
fedor.sergeev committed rG6a9c2f4f9881: [TimePasses] allow -time-passes reporting into a custom stream (authored by fedor.sergeev).
[TimePasses] allow -time-passes reporting into a custom stream
Mar 15 2019, 3:16 PM
fedor.sergeev committed rL356305: [TimePasses] allow -time-passes reporting into a custom stream.
[TimePasses] allow -time-passes reporting into a custom stream
Mar 15 2019, 3:15 PM
fedor.sergeev closed D59366: [NewPM][TimePasses] allow -time-passes reporting into a custom stream.
Mar 15 2019, 3:15 PM · Restricted Project
fedor.sergeev added a comment to D59366: [NewPM][TimePasses] allow -time-passes reporting into a custom stream.

Thanks for yet another thorough review!

Mar 15 2019, 12:25 PM · Restricted Project
fedor.sergeev updated the diff for D59366: [NewPM][TimePasses] allow -time-passes reporting into a custom stream.

removing unneeded assert

Mar 15 2019, 9:31 AM · Restricted Project
fedor.sergeev added a parent revision for D59416: [Legacy][TimePasses] allow -time-passes reporting into a custom stream: D59366: [NewPM][TimePasses] allow -time-passes reporting into a custom stream.
Mar 15 2019, 8:03 AM · Restricted Project
fedor.sergeev added a child revision for D59366: [NewPM][TimePasses] allow -time-passes reporting into a custom stream: D59416: [Legacy][TimePasses] allow -time-passes reporting into a custom stream.
Mar 15 2019, 8:03 AM · Restricted Project
fedor.sergeev created D59416: [Legacy][TimePasses] allow -time-passes reporting into a custom stream.
Mar 15 2019, 8:02 AM · Restricted Project
fedor.sergeev updated the summary of D59366: [NewPM][TimePasses] allow -time-passes reporting into a custom stream.
Mar 15 2019, 6:58 AM · Restricted Project
fedor.sergeev updated the diff for D59366: [NewPM][TimePasses] allow -time-passes reporting into a custom stream.

test cleanup - removing unneeded stuff, adding a few more checks, adding comments

Mar 15 2019, 6:55 AM · Restricted Project
fedor.sergeev added a comment to D59366: [NewPM][TimePasses] allow -time-passes reporting into a custom stream.

Thanks for review!

Mar 15 2019, 6:16 AM · Restricted Project

Mar 14 2019

fedor.sergeev updated the summary of D59366: [NewPM][TimePasses] allow -time-passes reporting into a custom stream.
Mar 14 2019, 2:17 PM · Restricted Project
fedor.sergeev updated the diff for D59366: [NewPM][TimePasses] allow -time-passes reporting into a custom stream.

handling default case the same way as it was before;
adding unit-test for non-default case

Mar 14 2019, 2:14 PM · Restricted Project
fedor.sergeev planned changes to D59366: [NewPM][TimePasses] allow -time-passes reporting into a custom stream.

Okey, a proper solution here is to get back to not setting the stream by default and restort to old CreateInfoOutputFile-just-for-printing scheme.
This way we do not need to play with ownership of that info-output-file stream.

Mar 14 2019, 11:11 AM · Restricted Project
fedor.sergeev added a comment to D59366: [NewPM][TimePasses] allow -time-passes reporting into a custom stream.

CreateInfoOutputFile creates a new stream and unless we retake the ownership it will be destroyed.

True, but that's what it is doing right now. Do you see reason to change that?

Okey, let me enumerate all the possible solutions that I see:

  1. own stream in TimePassesHandler (my initial implementation)
  2. create TimePasses disabled/no-stream, enable from NewPMDriver (current state), own by NewPMDriver
  3. pass the stream to StandardInstrumentation constructor, pass through into TimePassesHandler constructor, own by NewPMDriver
  4. change behavior of CreateInfoOutputFile and make it handle the ownership itself
Mar 14 2019, 9:23 AM · Restricted Project
fedor.sergeev added a comment to D59366: [NewPM][TimePasses] allow -time-passes reporting into a custom stream.

Why not default to CreateInfoOutputFile inside of TimePassesHandler if OutputStream is unset? And then have a setStream(raw_ostream&) method to change it.

That is purely a chicken/egg issue.
CreateInfoOutputFile creates a new stream and unless we retake the ownership it will be destroyed.

Mar 14 2019, 9:09 AM · Restricted Project
fedor.sergeev updated the diff for D59366: [NewPM][TimePasses] allow -time-passes reporting into a custom stream.

outstream in TimePasses is set when enabling, so now it is not possible
to enable and have outstream == nullptr.

Mar 14 2019, 8:55 AM · Restricted Project
fedor.sergeev planned changes to D59366: [NewPM][TimePasses] allow -time-passes reporting into a custom stream.
Mar 14 2019, 8:38 AM · Restricted Project
fedor.sergeev updated the summary of D59366: [NewPM][TimePasses] allow -time-passes reporting into a custom stream.
Mar 14 2019, 8:25 AM · Restricted Project
fedor.sergeev updated the diff for D59366: [NewPM][TimePasses] allow -time-passes reporting into a custom stream.

As per discussion with @philip.pfaffe - owning output stream is rather strange for TimePasses object.
This ownership idea came from CreateInfoOutputFile design, as it returns new stream each time.

Mar 14 2019, 8:24 AM · Restricted Project
fedor.sergeev retitled D59366: [NewPM][TimePasses] allow -time-passes reporting into a custom stream from [TimePasses] allow -time-passes reporting into a custom stream to [NewPM][TimePasses] allow -time-passes reporting into a custom stream.
Mar 14 2019, 8:00 AM · Restricted Project
fedor.sergeev abandoned D58572: [Support] allow -stats/-time-passes reporting into a custom stream.

Abandoning this in favor of D59366.

Mar 14 2019, 7:56 AM · Restricted Project
fedor.sergeev created D59366: [NewPM][TimePasses] allow -time-passes reporting into a custom stream.
Mar 14 2019, 7:55 AM · Restricted Project

Feb 27 2019

fedor.sergeev requested changes to D56336: [Support] unflake TempFileCollisions test.

Agreed with @rsmith, running 32 times and collecting the amount of successes == 16 should be a fine way to do this.

Feb 27 2019, 3:56 AM · Restricted Project
fedor.sergeev accepted D58406: Fix IR/Analysis layering issue in OptBisect.

I do like the final result!
See my comment, but its good to go even w/o my suggestion.

Feb 27 2019, 3:50 AM · Restricted Project
fedor.sergeev added a comment to D58572: [Support] allow -stats/-time-passes reporting into a custom stream.

This change is focused purely on the stream that LLVM uses to report the data being collected.
No matter how many TimePassesHandlers you create (and yes, we do create TimePassesHandler one per thread-per-pipeline) they all emit into the same CreateInfoOutputFile() - either stderr or a single file.
I'm trying to solve a problem of a badly interleaved output, thats all.

You could set the output directly on the handler.

Do you suggest to get rid of the current scheme where we have a single output file for all kinds of "info data"?
Say, now w/o these changes -info-output-file is controlling the output file for both -stats and -time-passes.
Do you think it was a wrong design and we need to introduce separate output controls for each of those features?

Feb 27 2019, 1:45 AM · Restricted Project