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 (189 w, 2 d)

Recent Activity

Thu, Sep 10

fedor.sergeev accepted D81558: [NewPM] Introduce PreserveCFG check.

LGTM

Thu, Sep 10, 2:11 AM · Restricted Project

Wed, Sep 9

fedor.sergeev added a comment to D81558: [NewPM] Introduce PreserveCFG check.

NewPM use seems to be fine.
A few relatively minor comments that I would like to see addressed.

Wed, Sep 9, 11:52 PM · Restricted Project

Jul 20 2020

fedor.sergeev accepted D81555: [NewPM][PassInstrumentation] Add PreservedAnalyses parameter to AfterPass* callbacks.

LGTM.
Other people had plenty of time to look at this.

Jul 20 2020, 2:36 AM · Restricted Project

Jun 10 2020

fedor.sergeev added a comment to D81558: [NewPM] Introduce PreserveCFG check.

I'm not sure if introducing base for standard instrumentation classes (Instrument/Instruments) is a good change or not.
What problem does it solve?
Anyway that part seems to be rather orthogonal to the checker itself.
I would like to have it separated - either introduce Instrument/Instruments thing before the checker and then use it,
OR implement the checker the same way as other standard instrumentations are done (just as separate members) and only then refactor it all into Instrument/Instruments.

Jun 10 2020, 7:37 AM · Restricted Project

May 17 2020

fedor.sergeev committed rGa39faacca1e2: Add missing include Host.h in llvm-mc-* fuzzers. NFC. (authored by fedor.sergeev).
Add missing include Host.h in llvm-mc-* fuzzers. NFC.
May 17 2020, 12:47 PM
fedor.sergeev committed rGf93a6aaebcf4: [Inliner][NFC] silence gcc 'overloaded-virtual' warning on hiding of Pass… (authored by fedor.sergeev).
[Inliner][NFC] silence gcc 'overloaded-virtual' warning on hiding of Pass…
May 17 2020, 3:12 AM

Apr 26 2020

fedor.sergeev added a comment to D76992: [VPlan] Add & use VPValue operands for VPWidenRecipe (NFC)..

it would be great if you could share the unreduced reproducer, to verify it is the same issue.

This is our original reproducer:

Apr 26 2020, 2:52 PM · Restricted Project
fedor.sergeev added a comment to D76992: [VPlan] Add & use VPValue operands for VPWidenRecipe (NFC)..

@fhahn, we also had a crash downstream on our fuzzer run, if you still need a reproducer I can try reducing our failure.

Apr 26 2020, 1:00 AM · Restricted Project

Apr 23 2020

fedor.sergeev accepted D78624: [CaptureTracking] Replace hardcoded constant to option. NFC..

LGTM, thanks for cleaning this up!

Apr 23 2020, 4:17 AM · Restricted Project

Apr 22 2020

fedor.sergeev added a comment to D78624: [CaptureTracking] Replace hardcoded constant to option. NFC..

Look good to me, but I would like to hear other opinions...

Apr 22 2020, 6:28 AM · Restricted Project
fedor.sergeev added inline comments to D78624: [CaptureTracking] Replace hardcoded constant to option. NFC..
Apr 22 2020, 4:17 AM · Restricted Project

Apr 8 2020

fedor.sergeev accepted D77775: [LoopLoadElim] Fix crash by always checking simplify form.

LGTM, please give others at least 24h to respond.

Apr 8 2020, 10:40 PM · Restricted Project
fedor.sergeev accepted D76946: Start using StringMap for TimingData.

LGTM.

Apr 8 2020, 7:02 AM · Restricted Project
fedor.sergeev added a comment to D77725: [LoopLoadElim] Form simplify form by demand.

Looks good to me, though I would like somebody else to check if running loopSimplify instead of simply bailing out is appropriate here.

Apr 8 2020, 6:27 AM · Restricted Project
fedor.sergeev added a comment to D77169: [DWARFLinker][dsymutil][NFC] Move DwarfStreamer into DWARFLinker..

Folks, we have a problem with this fix - when running a build that dynamically links tools with libLLVM.so (LVM_LINK_LLVM_DYLIB) we have massive failures on llvm-readobj
which asserts because it now has a conflict between MC "-W" and readobj "-W" command line options.
Seems like moving DWARFStreamer.cpp into the library w/o first removing its

static mc::RegisterMCTargetOptionsFlags MOF;

was a mistake.

Apr 8 2020, 4:17 AM · debug-info, Restricted Project

Mar 31 2020

fedor.sergeev added a comment to D74088: [x86] form broadcast of scalar memop even with >1 use.

This appears to cause suboptimal codegen on a relatively simple pattern:

https://bugs.llvm.org/show_bug.cgi?id=45378
Mar 31 2020, 1:44 PM · Restricted Project

Mar 12 2020

fedor.sergeev committed rG3dc6e53c9783: [LoopPeel] Turn incorrect assert into a check (authored by mkazantsev).
[LoopPeel] Turn incorrect assert into a check
Mar 12 2020, 3:47 AM
fedor.sergeev closed D76050: [LoopPeel] Turn incorrect assert into a check.
Mar 12 2020, 3:47 AM · Restricted Project
fedor.sergeev added a comment to D76050: [LoopPeel] Turn incorrect assert into a check.

@lebedev.ri I am not sure what your logic implied here; maybe instead of removal of assert this check should be a part of if for profitability reasons.

In review where this assert was introduced in one of the previous versions of it there was a check instead of assert (see line 261+: https://reviews.llvm.org/D69617?id=227953)
I believe doing this check makes sense.

Mar 12 2020, 2:19 AM · Restricted Project

Mar 9 2020

fedor.sergeev added a comment to D74516: Extend TimeTrace to LLVM's new pass manager.

As an explanation why PassInstrumentation is a better choice - you do not need to manually extend all the individual pass managers,
so you never miss one. This particular change missed at least two of them: RepeatPass and DevirtSCCRepeatedPass.

Mar 9 2020, 4:12 PM · Restricted Project
fedor.sergeev added a comment to D74516: Extend TimeTrace to LLVM's new pass manager.

I'm sorry for the late comment, but this should have really been done through the PassInstrumentation framework.
It looks like a classic use-case.

Mar 9 2020, 4:12 PM · Restricted Project

Mar 3 2020

fedor.sergeev added a comment to D75404: [X86] Not track size of the boudaryalign fragment during the layout.

In e-mail @reames wrote:

Er, I'm not sure this is correct. The concern is that boundary align requires the computation of the size of a fragment following the boundary align. Since the size may be influenced by the starting offset (e.g. align), the size of the boundary align must already be known. The circularity of the logic there seems likely to lead to issues, though I don't have a specific test case.

Though... I guess the way we use BA makes this "safe" as we know the instructions following must be either DataFragments or RelaxableFragments.

And unfortunately,I did find some test cases failed during runtime. I agree with reame, one difference between boundar align
and align fragment is that the size of boundary align depends on the following fragment while align not. Before finishLayout, we have to fix its size before we write boudary align and this has to be done in relaxBoundaryAlign. I feel sorry that D75203 may need to change some logic since this patch was reverted.

We also found this patch to cause problems with our downstream testing, though I do not have good reproducers as of right now.

Mar 3 2020, 4:11 AM · Restricted Project

Feb 18 2020

fedor.sergeev added a comment to D74346: Flags for displaying only hot nodes in CFGPrinter graph.

what is the use case of these options? Do hidden nodes create too much noise?

This is mostly for performance analysis. In our compiler we end up with many code paths resulting in deoptimization. These code paths are supposed to be cold and are not interesting when we are looking for the "fast path" performance. Filtering these has a nice effect of streamlining the CFG to the common path only.

Makes sense to add rationale like this as a paragraph to revision description.

Feb 18 2020, 2:23 AM · Restricted Project

Feb 3 2020

fedor.sergeev added inline comments to D73804: [GVN] Add GVNOption to control load-pre more fine-grained..
Feb 3 2020, 11:11 PM · Restricted Project
fedor.sergeev added inline comments to D73804: [GVN] Add GVNOption to control load-pre more fine-grained..
Feb 3 2020, 2:28 PM · Restricted Project

Feb 2 2020

fedor.sergeev added a comment to D73804: [GVN] Add GVNOption to control load-pre more fine-grained..

Hello, this switch intends to help our backend to software pipeline single basic block loops. The suppressed GVN opt is creating control flow in loops which we like to avoid. Thanks in advance for looking at the patch.

Curiously, just recently we had a similar case in our downstream pipeline, though we had a GVN splitting loop backedge and leading to a loss of a loop form (by making a non-exiting latch).
Solved by disabling load-pre in a separate responsible GVN instance, though this control looks more appropriate.

Feb 2 2020, 10:04 PM · Restricted Project
fedor.sergeev added inline comments to D73804: [GVN] Add GVNOption to control load-pre more fine-grained..
Feb 2 2020, 9:59 PM · Restricted Project

Jan 27 2020

fedor.sergeev requested changes to D69596: [Attributor] Add the Attributor to the new PM pipeline.

setting request-changes state to make it obvious that there are some questions here I would like to see answered.

Jan 27 2020, 6:12 AM · Restricted Project

Jan 23 2020

fedor.sergeev committed rG2f6987ba61cc: [LoopRotate] add ability to repeat loop rotation until non-deoptimizing exit is… (authored by fedor.sergeev).
[LoopRotate] add ability to repeat loop rotation until non-deoptimizing exit is…
Jan 23 2020, 5:35 AM
fedor.sergeev closed D73058: [LoopRotate] add ability to repeat loop rotation until non-deoptimizing exit is found.
Jan 23 2020, 5:35 AM · Restricted Project
fedor.sergeev updated the diff for D73058: [LoopRotate] add ability to repeat loop rotation until non-deoptimizing exit is found.

unittest added that verifies exit code of successful loop-rotate

Jan 23 2020, 4:59 AM · Restricted Project

Jan 21 2020

fedor.sergeev added inline comments to D73058: [LoopRotate] add ability to repeat loop rotation until non-deoptimizing exit is found.
Jan 21 2020, 9:38 AM · Restricted Project
fedor.sergeev updated the diff for D73058: [LoopRotate] add ability to repeat loop rotation until non-deoptimizing exit is found.

fixing return value on subsequent iterations

Jan 21 2020, 9:38 AM · Restricted Project
fedor.sergeev updated the diff for D73058: [LoopRotate] add ability to repeat loop rotation until non-deoptimizing exit is found.

converting recursion into inner loop

Jan 21 2020, 4:34 AM · Restricted Project
fedor.sergeev added a comment to D73058: [LoopRotate] add ability to repeat loop rotation until non-deoptimizing exit is found.

Hmm... phabricator is good in white-space diffs elimination! :)

Jan 21 2020, 4:34 AM · Restricted Project
fedor.sergeev added inline comments to D73058: [LoopRotate] add ability to repeat loop rotation until non-deoptimizing exit is found.
Jan 21 2020, 4:11 AM · Restricted Project
fedor.sergeev updated the summary of D73058: [LoopRotate] add ability to repeat loop rotation until non-deoptimizing exit is found.
Jan 21 2020, 4:11 AM · Restricted Project
fedor.sergeev added a comment to D73058: [LoopRotate] add ability to repeat loop rotation until non-deoptimizing exit is found.

made this change off by default.

Jan 21 2020, 4:11 AM · Restricted Project
fedor.sergeev updated the diff for D73058: [LoopRotate] add ability to repeat loop rotation until non-deoptimizing exit is found.

improving some comments

Jan 21 2020, 4:07 AM · Restricted Project

Jan 20 2020

fedor.sergeev added inline comments to D73058: [LoopRotate] add ability to repeat loop rotation until non-deoptimizing exit is found.
Jan 20 2020, 11:10 PM · Restricted Project
fedor.sergeev retitled D73058: [LoopRotate] add ability to repeat loop rotation until non-deoptimizing exit is found from [LoopRotate] add ability repeat loop rotation until non-deoptimizing exit is found to [LoopRotate] add ability to repeat loop rotation until non-deoptimizing exit is found.
Jan 20 2020, 11:50 AM · Restricted Project
fedor.sergeev created D73058: [LoopRotate] add ability to repeat loop rotation until non-deoptimizing exit is found.
Jan 20 2020, 11:03 AM · Restricted Project

Jan 17 2020

fedor.sergeev committed rGcc7cb05e9d7f: [BasicBlock] fix looping in getPostdominatingDeoptimizeCall (authored by fedor.sergeev).
[BasicBlock] fix looping in getPostdominatingDeoptimizeCall
Jan 17 2020, 4:44 AM
fedor.sergeev closed D72908: [BasicBlock] fix looping in getPostdominatingDeoptimizeCall.
Jan 17 2020, 4:44 AM · Restricted Project
fedor.sergeev updated the diff for D72908: [BasicBlock] fix looping in getPostdominatingDeoptimizeCall.

adding CHECK-LABEL to the test so it passes with lit

Jan 17 2020, 2:24 AM · Restricted Project
fedor.sergeev created D72908: [BasicBlock] fix looping in getPostdominatingDeoptimizeCall.
Jan 17 2020, 2:10 AM · Restricted Project

Jan 16 2020

fedor.sergeev committed rG1f2dad1fd575: [GVN] add GVN parameters parsing to new pass manager (authored by fedor.sergeev).
[GVN] add GVN parameters parsing to new pass manager
Jan 16 2020, 12:57 PM
fedor.sergeev closed D72752: [GVN] add GVN parameters parsing to new pass manager.
Jan 16 2020, 12:57 PM · Restricted Project
fedor.sergeev committed rG3478551bf3d2: [GVN] introduce GVNOptions to control GVN pass behavior (authored by fedor.sergeev).
[GVN] introduce GVNOptions to control GVN pass behavior
Jan 16 2020, 9:35 AM
fedor.sergeev closed D72732: [GVN] introduce GVNOptions to control GVN pass behavior.
Jan 16 2020, 9:35 AM · Restricted Project
fedor.sergeev updated the diff for D72732: [GVN] introduce GVNOptions to control GVN pass behavior.

reintroduced default parameter for Legacy pass constructor
(it is necessary for PassSupport.h proper operations and not otherwise used)

Jan 16 2020, 9:25 AM · Restricted Project

Jan 15 2020

fedor.sergeev added inline comments to D72732: [GVN] introduce GVNOptions to control GVN pass behavior.
Jan 15 2020, 2:24 PM · Restricted Project
fedor.sergeev updated the diff for D72732: [GVN] introduce GVNOptions to control GVN pass behavior.

reformatting after the last update

Jan 15 2020, 2:18 PM · Restricted Project
fedor.sergeev committed rG8a4d12ae5b3e: [BasicBlock] add helper getPostdominatingDeoptimizeCall (authored by fedor.sergeev).
[BasicBlock] add helper getPostdominatingDeoptimizeCall
Jan 15 2020, 2:18 PM
fedor.sergeev closed D72754: [BasicBlock] add helper getPostdominatingDeoptimizeCall.
Jan 15 2020, 2:18 PM · Restricted Project
fedor.sergeev added inline comments to D72732: [GVN] introduce GVNOptions to control GVN pass behavior.
Jan 15 2020, 2:08 PM · Restricted Project
fedor.sergeev updated the diff for D72732: [GVN] introduce GVNOptions to control GVN pass behavior.

fixing NoMemDepAnalysis use in legacy pass

Jan 15 2020, 2:06 PM · Restricted Project
fedor.sergeev updated the diff for D72752: [GVN] add GVN parameters parsing to new pass manager.

removed old pass entry

Jan 15 2020, 1:49 PM · Restricted Project
fedor.sergeev created D72754: [BasicBlock] add helper getPostdominatingDeoptimizeCall.
Jan 15 2020, 12:45 AM · Restricted Project

Jan 14 2020

fedor.sergeev created D72752: [GVN] add GVN parameters parsing to new pass manager.
Jan 14 2020, 11:58 PM · Restricted Project
fedor.sergeev added a comment to D72732: [GVN] introduce GVNOptions to control GVN pass behavior.

Don't you want to add a code to be able to set GVN options from command line for new pass manager? Or it is a follow-up change?

That should go as a followup.
I did not plan to do that right now, but well, you got a point.
Will post a review for that.

Jan 14 2020, 11:03 PM · Restricted Project
fedor.sergeev added inline comments to D72732: [GVN] introduce GVNOptions to control GVN pass behavior.
Jan 14 2020, 11:03 PM · Restricted Project
fedor.sergeev updated the diff for D72732: [GVN] introduce GVNOptions to control GVN pass behavior.

updated comments

Jan 14 2020, 11:03 PM · Restricted Project
fedor.sergeev added a reviewer for D72732: [GVN] introduce GVNOptions to control GVN pass behavior: fhahn.
Jan 14 2020, 1:19 PM · Restricted Project
fedor.sergeev created D72732: [GVN] introduce GVNOptions to control GVN pass behavior.
Jan 14 2020, 1:18 PM · Restricted Project
fedor.sergeev committed rGfe37d9ecaabd: [GVN] fix comment/argument name to match actual implementation. NFC (authored by fedor.sergeev).
[GVN] fix comment/argument name to match actual implementation. NFC
Jan 14 2020, 1:00 PM

Jan 6 2020

fedor.sergeev accepted D71086: Let PassBuilder Expose PassInstrumentationCallbacks.

LGTM.

Jan 6 2020, 8:34 AM · Restricted Project

Dec 13 2019

fedor.sergeev added a comment to D69596: [Attributor] Add the Attributor to the new PM pipeline.

Is there any testing that does enable attributor?

Okey, I did find a fair amount of tests that run individual -attributor *or* -passes=attributor (with -attributor-disable=false).
Are there any near plans to enable attributor (setting -attributor-disable=false by default)?

Dec 13 2019, 2:26 AM · Restricted Project
fedor.sergeev added a comment to D69596: [Attributor] Add the Attributor to the new PM pipeline.

So, this enables Attributor pass, but in fact has all its functionality disabled unless -attributor-disable is set to false.
Is there any testing that does enable attributor?
If yes, then I would like to see this testing being run with new pass manager as well.

Dec 13 2019, 2:02 AM · Restricted Project
fedor.sergeev added a comment to D69596: [Attributor] Add the Attributor to the new PM pipeline.

Is there a particular reason for choosing this spot in pipeline?
I see that in legacy pipeline Attributor follows IPSCCP/CVP, and here it goes right before.

Dec 13 2019, 1:58 AM · Restricted Project

Dec 12 2019

fedor.sergeev added a comment to D71086: Let PassBuilder Expose PassInstrumentationCallbacks.

Overall I'm fine with this.
Bikeshedding-wise, getPIC seems to be overly cryptic to me.
Do you believe full name getPassInstrumentationCallbacks is too much?

Dec 12 2019, 3:22 AM · Restricted Project

Dec 10 2019

fedor.sergeev added a comment to D70157: Align branches within 32-Byte boundary(NOP padding).

What if I insert explicit align(8) right *after* the sequence?

If your insert explicit .align 8 after the sequence, and the sequence doesn't has any branch to be aligned, the current solution won't change the sequence.

Well, I kinda figure that from the code behavior right now, however is it really by design or just happens to work now?
Seeing that assembler becomes very intelligent now I would rather have a strict guarantee similar to "hardcode" thing that you have here that protects my sequence
rather than relying on a fact that in current settings moving my label by 8 does not appear to be profitable to assembler.

Dec 10 2019, 6:02 AM · Restricted Project, Restricted Project

Dec 9 2019

fedor.sergeev added a comment to D70157: Align branches within 32-Byte boundary(NOP padding).

The point is that we have explicit requirement at the start and we have a lowering into 16-byte sequence that we need to be preserved exactly as it is.
Essentially what we need is a "protection" for this sequence from any changes by machinery that generates the binary code.
How can we protect a particular byte sequence from being changed by this branch aligner?

No, in general we can't. The current solution is based on assembler to insert prefix or nop before the cross (or against) boundary branches. It can only ensure the explicit alignment specified by directive, but not any implicit alignment. I don't think any fixup based on assembler can do it. On the other hand, any code sequence after the alignment directive or even just in a function has some kind of implicit alignment. It's hard for assembler to tell which implicit alignment to preserve. The preferred way is to use explicit alignment directive to specify it.

For your scenario, a NOP padding is more controllable. NOP padding will be inserted just before the branch instructions (or macro fusion branch instructions). So if there's no branches (or macro fusion branches) in your code sequence, there will be no NOP inserted.

What if I insert explicit align(8) right *after* the sequence?

Dec 9 2019, 8:52 AM · Restricted Project, Restricted Project
fedor.sergeev added a comment to D70157: Align branches within 32-Byte boundary(NOP padding).

I could not reproduce the phenomenon that N-byte nop becomes (N+M) bytes with your example. So according to my understanding, I slightly modified your case. (If my understand is wrong, I hope you can point it out :-). )

    .text
    nop
.Ltmp0:
    .p2align 3, 0x90
    .rept 16
    nop
    .endr
.Ltmp3:
    movl  %eax, -4(%rsp)

In our case it was

andl $1, %eax

but it does not matter that much.

Dec 9 2019, 2:21 AM · Restricted Project, Restricted Project

Dec 5 2019

fedor.sergeev added a comment to D70157: Align branches within 32-Byte boundary(NOP padding).

FYI: I did close the bug as fixed after verifying that the fix works for me.

Dec 5 2019, 2:26 PM · Restricted Project, Restricted Project

Dec 3 2019

fedor.sergeev requested changes to D70157: Align branches within 32-Byte boundary(NOP padding).

Working on getting upstream reproducer....

Hangs on a moderately small piece (~150 lines) of x86 assembly, filed a bug on it here:

Dec 3 2019, 2:46 PM · Restricted Project, Restricted Project
fedor.sergeev added a comment to D70157: Align branches within 32-Byte boundary(NOP padding).

Just FYI for now as I'm trying to dig futher...
I have been trying this fix in our downstream environment and managed to get a hang with this backtrace:

Dec 3 2019, 8:50 AM · Restricted Project, Restricted Project

Nov 13 2019

fedor.sergeev added inline comments to D69830: [LoopPred/WC] Use a dominating widenable condition to remove analyze loop exits.
Nov 13 2019, 1:43 PM · Restricted Project
fedor.sergeev added inline comments to D69830: [LoopPred/WC] Use a dominating widenable condition to remove analyze loop exits.
Nov 13 2019, 5:48 AM · Restricted Project

Nov 12 2019

fedor.sergeev accepted D69349: [InlineCost] Fix infinite loop in indirect call evaluation.

The change you suggest, doesn't cause the crash.

would you mind to add that test here?
It should exercise a path of logic where argument comes through SimplifiedValues, so it is worth having it.

Nov 12 2019, 9:32 AM · Restricted Project
fedor.sergeev added inline comments to D69830: [LoopPred/WC] Use a dominating widenable condition to remove analyze loop exits.
Nov 12 2019, 5:46 AM · Restricted Project
fedor.sergeev added a comment to D69349: [InlineCost] Fix infinite loop in indirect call evaluation.

Can you add a test similar to what you have here that excercises indirect call through a parameter?
Say, do

define void @func1() {
  %t = bitcast void ()* @func3 to void ()*
  tail call void @func2(void()* %t)
  ret void
}
define void @func2(void()* %f) {
  tail call void %f()
  ret void
}

and then......

define void @func6() {
  %t2 = bitcast void (void()*)* @func2 to void (void()*)* 
  %t3 = bitcast void ()* @func3 to void ()*
  tail call void %t2(void()* %t3)
  ret void
}

This results in recursive call to func2+ and your fix should handle it just right.

Nov 12 2019, 4:16 AM · Restricted Project
fedor.sergeev added a comment to D69349: [InlineCost] Fix infinite loop in indirect call evaluation.

llvm/test/Transforms/Inline/pr35469.ll

btw, I would rather have this test named by its functionality and not by PR number.

Nov 12 2019, 4:16 AM · Restricted Project
fedor.sergeev added inline comments to D69349: [InlineCost] Fix infinite loop in indirect call evaluation.
Nov 12 2019, 3:29 AM · Restricted Project
fedor.sergeev added inline comments to D69349: [InlineCost] Fix infinite loop in indirect call evaluation.
Nov 12 2019, 3:17 AM · Restricted Project

Oct 29 2019

fedor.sergeev committed rG4aee4c99c543: [ADT] add equality operator for SmallSet (authored by fedor.sergeev).
[ADT] add equality operator for SmallSet
Oct 29 2019, 5:46 PM
fedor.sergeev closed D69417: [ADT] add equality operator for SmallSet.
Oct 29 2019, 5:46 PM · Restricted Project

Oct 24 2019

fedor.sergeev updated the diff for D69417: [ADT] add equality operator for SmallSet.

slightly modified test

Oct 24 2019, 5:11 PM · Restricted Project
fedor.sergeev created D69417: [ADT] add equality operator for SmallSet.
Oct 24 2019, 4:59 PM · Restricted Project

Sep 18 2019

fedor.sergeev accepted D67701: [Unroll] Add an option to control complete unrolling.

Great, thanks a lot!

Sep 18 2019, 10:54 PM · Restricted Project
fedor.sergeev requested changes to D67701: [Unroll] Add an option to control complete unrolling.

I might be in need for the morning coffee, but I cant find the actual use of UP.FullUnrollMaxCount...

Ugh... I was looking for that use in the new code, but it is there in the old code, sorry.

Sep 18 2019, 9:55 PM · Restricted Project
fedor.sergeev added a comment to D67701: [Unroll] Add an option to control complete unrolling.

I might be in need for the morning coffee, but I cant find the actual use of UP.FullUnrollMaxCount...

Sep 18 2019, 9:22 PM · Restricted Project

Sep 7 2019

fedor.sergeev committed rL371295: Adding myself (fedor.sergeev) to the github committers list..
Adding myself (fedor.sergeev) to the github committers list.
Sep 7 2019, 2:18 AM

Aug 27 2019

fedor.sergeev added a comment to D63972: [CodeGen] Do the Simple Early Return in block-placement pass to optimize the blocks.

This reproducer fails with assertion:

] cat reduced.ll
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128-ni:1"
target triple = "x86_64-unknown-linux-gnu"
Aug 27 2019, 3:30 PM · Restricted Project

Aug 13 2019

fedor.sergeev accepted D65975: [NewPM][PassInstrumentation] IR printing support from clang driver.

LGTM.
Thanks for addressing this!

Aug 13 2019, 11:56 PM · Restricted Project, Restricted Project

Aug 9 2019

fedor.sergeev committed rG92e160ababd1: [MemDep] allow to select block-scan-limit when constructing… (authored by fedor.sergeev).
[MemDep] allow to select block-scan-limit when constructing…
Aug 9 2019, 6:27 PM
fedor.sergeev committed rL368502: [MemDep] allow to select block-scan-limit when constructing….
[MemDep] allow to select block-scan-limit when constructing…
Aug 9 2019, 6:22 PM
fedor.sergeev closed D65806: [MemDep] allow to select block-scan-limit when constructing MemoryDependenceAnalysis.
Aug 9 2019, 6:22 PM · Restricted Project
fedor.sergeev added a comment to D64179: [CodeGen] Define an interface for the new pass manager..

Which part of the basics specifically?

Also, avoid adding anything into the adaptor except just basic functionality of passing control to the target pass.
(say, as I commented already - skip remarks stuff altogether). This commit better contain the general comments on what MachineFunction is
and basics required for PassManager/Adaptor to start working, and nothing else.
Since you will have to add PassInstrumentation interfaces in order for PassManager to operate you might be able to add its usage into PassAdaptor as well.
But that could be done as a follow up change.

Aug 9 2019, 6:22 PM · Restricted Project
fedor.sergeev added a comment to D64179: [CodeGen] Define an interface for the new pass manager..

I believe in order to make progress here we first need to settle down on a very principal matter -

what kind of IRUnit MachineFunction is?

Okey, everything you said there makes perfect sense. Thanks for clarification.

Aug 9 2019, 5:59 PM · Restricted Project