Page MenuHomePhabricator

skatkov (Serguei Katkov)
User

Projects

User does not belong to any projects.

User Details

User Since
Jan 25 2017, 1:38 AM (190 w, 4 d)

Recent Activity

Tue, Sep 15

skatkov committed rG00f09dd4c13d: [InstCombine] Add tests for statepoint simplification (authored by skatkov).
[InstCombine] Add tests for statepoint simplification
Tue, Sep 15, 9:03 PM
skatkov closed D87224: [InstCombine] Add tests for statepoint simplification.
Tue, Sep 15, 9:03 PM · Restricted Project
skatkov added a comment to D87224: [InstCombine] Add tests for statepoint simplification.

LGTM - if you're just adding tests, you don't need separate review as long as there's nothing fancy.

Tue, Sep 15, 6:38 PM · Restricted Project

Sun, Sep 6

skatkov requested review of D87224: [InstCombine] Add tests for statepoint simplification.
Sun, Sep 6, 11:11 PM · Restricted Project

Fri, Aug 21

skatkov committed rG9e362bb0eb52: [InstCombine] Remove unused entries in gc-live bundle of statepoint (authored by skatkov).
[InstCombine] Remove unused entries in gc-live bundle of statepoint
Fri, Aug 21, 11:37 AM
skatkov closed D85959: [InstCombine] Remove unused entries in gc-liv bundle of statepoint.
Fri, Aug 21, 11:37 AM · Restricted Project

Aug 21 2020

skatkov committed rG63d9d56a5546: [InstCombine] Move handling of gc.relocate in a gc.statepoint (authored by skatkov).
[InstCombine] Move handling of gc.relocate in a gc.statepoint
Aug 21 2020, 9:50 AM
skatkov closed D85954: [InstCombine] Move handling of gc.relocate in a gc.statepoint.
Aug 21 2020, 9:50 AM · Restricted Project
skatkov added a comment to D85954: [InstCombine] Move handling of gc.relocate in a gc.statepoint.

LGTM

As a follow up, it would be nice to handle two additional optimizations:

  1. Canonicalize each pointer to a single index in the statepoint operand list
  2. Shrink the gc-live bundle to remove any pointers not needed after (1)
Aug 21 2020, 9:00 AM · Restricted Project

Aug 18 2020

skatkov added a comment to D85954: [InstCombine] Move handling of gc.relocate in a gc.statepoint.

ping

Aug 18 2020, 7:47 PM · Restricted Project

Aug 14 2020

skatkov requested review of D85959: [InstCombine] Remove unused entries in gc-liv bundle of statepoint.
Aug 14 2020, 12:41 AM · Restricted Project

Aug 13 2020

skatkov requested review of D85954: [InstCombine] Move handling of gc.relocate in a gc.statepoint.
Aug 13 2020, 8:27 PM · Restricted Project
skatkov committed rG98ba0a5ffee2: [InstCombine] Handle gc.relocate(null) in one iteration (authored by skatkov).
[InstCombine] Handle gc.relocate(null) in one iteration
Aug 13 2020, 9:23 AM
skatkov closed D75598: [InstCombine] Handle gc.relocate(null) in one iteration.
Aug 13 2020, 9:22 AM · Restricted Project

Aug 12 2020

skatkov added a comment to D75598: [InstCombine] Handle gc.relocate(null) in one iteration.

I've updated the patch, please take a look.

Aug 12 2020, 11:29 PM · Restricted Project
skatkov updated the diff for D75598: [InstCombine] Handle gc.relocate(null) in one iteration.
Aug 12 2020, 1:34 AM · Restricted Project

Aug 4 2020

skatkov accepted D81647: MIR Statepoint refactoring. Part 3: Spill GC Ptr regs..

Thanks!

Aug 4 2020, 2:33 AM · Restricted Project

Jul 31 2020

skatkov added a comment to D81647: MIR Statepoint refactoring. Part 3: Spill GC Ptr regs..

Please fix the bug Philip mentioned and I think we are ready to land it.

Jul 31 2020, 12:38 AM · Restricted Project

Jul 28 2020

skatkov accepted D84692: [Statepoint] When using the tied def lowering, unconditionally use vregs [almost NFC].

lgtm

Jul 28 2020, 11:01 PM · Restricted Project

Jul 17 2020

skatkov added inline comments to D81647: MIR Statepoint refactoring. Part 3: Spill GC Ptr regs..
Jul 17 2020, 12:48 AM · Restricted Project

Jul 16 2020

skatkov added a comment to D81647: MIR Statepoint refactoring. Part 3: Spill GC Ptr regs..

Hi Denis, after you re-write the patch in this way, I guess we can do it clearly and simply in terms of reading.

Jul 16 2020, 12:58 AM · Restricted Project

Jul 7 2020

skatkov added a comment to D81647: MIR Statepoint refactoring. Part 3: Spill GC Ptr regs..

As I understand a lot of things here are done to workout the case that one catch block can correspond to different invoke instructions. Can you please add the test examine this case?

Jul 7 2020, 9:10 PM · Restricted Project
skatkov added a comment to D81647: MIR Statepoint refactoring. Part 3: Spill GC Ptr regs..

could you please explain the case due to you need to return back in collectGCRegs implementation?

Jul 7 2020, 9:08 PM · Restricted Project
skatkov added a comment to D81647: MIR Statepoint refactoring. Part 3: Spill GC Ptr regs..

I need an answer to the question about test and at least update doc for rewriteStatepoint.

Jul 7 2020, 2:15 AM · Restricted Project
skatkov added a comment to D81647: MIR Statepoint refactoring. Part 3: Spill GC Ptr regs..

A pretty close to be done.

Jul 7 2020, 1:17 AM · Restricted Project

Jul 5 2020

skatkov added inline comments to D81647: MIR Statepoint refactoring. Part 3: Spill GC Ptr regs..
Jul 5 2020, 9:38 PM · Restricted Project
skatkov added inline comments to D81647: MIR Statepoint refactoring. Part 3: Spill GC Ptr regs..
Jul 5 2020, 8:47 PM · Restricted Project

Jun 25 2020

skatkov added inline comments to D81647: MIR Statepoint refactoring. Part 3: Spill GC Ptr regs..
Jun 25 2020, 2:30 AM · Restricted Project

Jun 22 2020

skatkov committed rGeae0d2e9b276: Revert "[Peeling] Extend the scope of peeling a bit" (authored by skatkov).
Revert "[Peeling] Extend the scope of peeling a bit"
Jun 22 2020, 4:16 AM
skatkov added a reverting change for rG29b2c1ca7209: [Peeling] Extend the scope of peeling a bit: rGeae0d2e9b276: Revert "[Peeling] Extend the scope of peeling a bit".
Jun 22 2020, 4:16 AM
skatkov committed rG29b2c1ca7209: [Peeling] Extend the scope of peeling a bit (authored by skatkov).
[Peeling] Extend the scope of peeling a bit
Jun 22 2020, 1:02 AM
skatkov closed D81140: [Peeling] Extend the scope of peeling a bit.
Jun 22 2020, 1:02 AM · Restricted Project

Jun 10 2020

skatkov added reviewers for D81140: [Peeling] Extend the scope of peeling a bit: apilipenko, fedor.sergeev.
Jun 10 2020, 9:02 PM · Restricted Project

Jun 4 2020

skatkov created D81140: [Peeling] Extend the scope of peeling a bit.
Jun 4 2020, 4:17 AM · Restricted Project

May 20 2020

skatkov accepted D80318: [Statepoint] Constant fold FP deopt args..
May 20 2020, 10:33 PM · Restricted Project

May 12 2020

skatkov accepted D79813: [Statepoint] Mark FixupStatepointCallerSaved as preserving the CFG.

You are right, CFG is not modified. Thank you for the change.

May 12 2020, 7:56 PM · Restricted Project

May 6 2020

skatkov added a reviewer for D79485: [BPI] Improve static heuristics for "cold" paths.: chandlerc.
May 6 2020, 9:01 PM · Restricted Project

Apr 30 2020

skatkov added a comment to D78987: [BPI][NFC] Reuse post dominantor tree from analysis manager when available.

Hi Alina,
to me the patch seems to be NFC.

Apr 30 2020, 9:31 PM · Restricted Project

Apr 29 2020

skatkov accepted D79080: [BPI][NFC] IRCE shoud qequest BPI through analysis manager..
Apr 29 2020, 5:19 AM · Restricted Project
skatkov accepted D78987: [BPI][NFC] Reuse post dominantor tree from analysis manager when available.
Apr 29 2020, 5:19 AM · Restricted Project
skatkov accepted D79071: [BPI] Incorrect probability reported in case of mulptiple edges..
Apr 29 2020, 2:06 AM · Restricted Project
skatkov added inline comments to D78987: [BPI][NFC] Reuse post dominantor tree from analysis manager when available.
Apr 29 2020, 2:06 AM · Restricted Project

Apr 28 2020

skatkov added inline comments to D78987: [BPI][NFC] Reuse post dominantor tree from analysis manager when available.
Apr 28 2020, 4:15 AM · Restricted Project
skatkov added inline comments to D78987: [BPI][NFC] Reuse post dominantor tree from analysis manager when available.
Apr 28 2020, 4:15 AM · Restricted Project

Apr 23 2020

skatkov accepted D78734: [CaptureTracking] Make MaxUsesToExplore cheaper (NFC).

LGTM after fixing the doc.

Apr 23 2020, 7:34 PM · Restricted Project
skatkov added a comment to D78734: [CaptureTracking] Make MaxUsesToExplore cheaper (NFC).

Doc for function should probably explicitly mention that zero value means using default option value.

Apr 23 2020, 11:52 AM · Restricted Project
skatkov committed rGc0d2bbb1d493: [CaptureTracking] Replace hardcoded constant to option. NFC. (authored by skatkov).
[CaptureTracking] Replace hardcoded constant to option. NFC.
Apr 23 2020, 4:50 AM
skatkov closed D78624: [CaptureTracking] Replace hardcoded constant to option. NFC..
Apr 23 2020, 4:49 AM · Restricted Project

Apr 22 2020

skatkov updated the diff for D78624: [CaptureTracking] Replace hardcoded constant to option. NFC..
Apr 22 2020, 7:03 PM · Restricted Project
skatkov updated the diff for D78624: [CaptureTracking] Replace hardcoded constant to option. NFC..
Apr 22 2020, 9:13 AM · Restricted Project
skatkov added inline comments to D78624: [CaptureTracking] Replace hardcoded constant to option. NFC..
Apr 22 2020, 9:12 AM · Restricted Project
skatkov updated the diff for D78624: [CaptureTracking] Replace hardcoded constant to option. NFC..
Apr 22 2020, 6:28 AM · Restricted Project
skatkov updated the diff for D78624: [CaptureTracking] Replace hardcoded constant to option. NFC..

Handled Fedor's comments. Thank you for review.

Apr 22 2020, 4:49 AM · Restricted Project
skatkov created D78624: [CaptureTracking] Replace hardcoded constant to option. NFC..
Apr 22 2020, 3:44 AM · Restricted Project

Apr 15 2020

skatkov added a comment to D78210: [LV] Mark first-order recurrences as allowed exit.

I'm not sure how correct this fix is but I verified that it fixes my original problem.

Apr 15 2020, 10:01 PM · Restricted Project

Apr 14 2020

skatkov accepted D78119: [Statepoint] Add getters to StatepointOpers. NFC..

it is not NFC as you fix verifier. Split this patch into two parts or remove NFC.

Apr 14 2020, 7:35 PM · Restricted Project
skatkov added a comment to D77635: [LV] Vectorize with FoldTail when Primary Induction is absent.

Thanks @skatkov. The test compiles for me, and the part that this patch introduces looks correct, but there seems to be a problem with how %tmp8 is handled - as a live-out first-order-recurrence which fold-tail does not handle (the compare it introduces is not used by anyone). To reproduce the bug w/o this patch, transform the loop iv %tmp9 to start at 0 and exit the loop when equal to 4 (instead of starting at 1 and exiting at 5), and add 1 to %tmp8. Would be good to open a PR.
Continuing to investigate.

Apr 14 2020, 2:37 AM · Restricted Project
skatkov added a comment to D77635: [LV] Vectorize with FoldTail when Primary Induction is absent.

PR filed: https://bugs.llvm.org/show_bug.cgi?id=45526

Apr 14 2020, 2:37 AM · Restricted Project

Apr 13 2020

skatkov added a comment to D77635: [LV] Vectorize with FoldTail when Primary Induction is absent.

Hello @Ayal, unfortunately this patch causes the functional regression.
For the test below, vectorizer decided to vectorize inner loop by 32 while it has only a couple of iteration and it causes a miscompile.
Please fix it quickly or revert the patch.

Apr 13 2020, 9:19 PM · Restricted Project

Apr 9 2020

skatkov committed rG4275eb13315f: Re-land [Codegen/Statepoint] Allow usage of registers for non gc deopt values. (authored by skatkov).
Re-land [Codegen/Statepoint] Allow usage of registers for non gc deopt values.
Apr 9 2020, 8:21 PM
skatkov closed D77797: Re-land [Codegen/Statepoint] Allow usage of registers for non gc deopt values..
Apr 9 2020, 8:20 PM · Restricted Project
skatkov updated the diff for D77797: Re-land [Codegen/Statepoint] Allow usage of registers for non gc deopt values..

Fix.

Apr 9 2020, 7:01 AM · Restricted Project
skatkov added a comment to D77797: Re-land [Codegen/Statepoint] Allow usage of registers for non gc deopt values..

This is the same patch as https://reviews.llvm.org/D77371, the fix will uploaded over to be able to see the difference.

Apr 9 2020, 7:01 AM · Restricted Project
skatkov added a comment to D77371: [Codegen/Statepoint] Allow usage of registers for non gc deopt values..

Patch with a fix: https://reviews.llvm.org/D77797

Apr 9 2020, 7:01 AM · Restricted Project
skatkov created D77797: Re-land [Codegen/Statepoint] Allow usage of registers for non gc deopt values..
Apr 9 2020, 6:28 AM · Restricted Project
skatkov committed rG44f0d7f13647: Revert "[Codegen/Statepoint] Allow usage of registers for non gc deopt values." (authored by skatkov).
Revert "[Codegen/Statepoint] Allow usage of registers for non gc deopt values."
Apr 9 2020, 4:51 AM
skatkov added a reverting change for rGa0275705bb5a: [Codegen/Statepoint] Allow usage of registers for non gc deopt values.: rG44f0d7f13647: Revert "[Codegen/Statepoint] Allow usage of registers for non gc deopt values.".
Apr 9 2020, 4:51 AM
skatkov added a comment to D77371: [Codegen/Statepoint] Allow usage of registers for non gc deopt values..

This patch breaks building LLVM with BUILD_SHARED_LIBS due to a linker error. UseRegsitersForDeoptValues is declared as extern in TargetPassConfig while the definition of the value is in SelectionDAG/StatepointLower.cpp. As the LLVMCodegen target does not link against LLVMSelectionDAG it causes undefined reference errors when linking LLVMCodegen

Apr 9 2020, 4:50 AM · Restricted Project
skatkov committed rGa0275705bb5a: [Codegen/Statepoint] Allow usage of registers for non gc deopt values. (authored by skatkov).
[Codegen/Statepoint] Allow usage of registers for non gc deopt values.
Apr 9 2020, 3:14 AM
skatkov closed D77371: [Codegen/Statepoint] Allow usage of registers for non gc deopt values..
Apr 9 2020, 3:13 AM · Restricted Project

Apr 8 2020

skatkov updated the diff for D77371: [Codegen/Statepoint] Allow usage of registers for non gc deopt values..

return back option in a test

Apr 8 2020, 10:08 PM · Restricted Project
skatkov added inline comments to D77371: [Codegen/Statepoint] Allow usage of registers for non gc deopt values..
Apr 8 2020, 10:07 PM · Restricted Project
skatkov updated the diff for D77371: [Codegen/Statepoint] Allow usage of registers for non gc deopt values..

Handled comments before landing.

Apr 8 2020, 5:55 AM · Restricted Project
skatkov accepted D76305: [RS4GC] Fix algorithm to avoid setting vector BDV for scalar derived pointer.

ok, I could not come up with something better, we can revisit at later.

Apr 8 2020, 4:49 AM · Restricted Project

Apr 7 2020

skatkov added inline comments to D76305: [RS4GC] Fix algorithm to avoid setting vector BDV for scalar derived pointer.
Apr 7 2020, 4:49 AM · Restricted Project
skatkov added a comment to D76305: [RS4GC] Fix algorithm to avoid setting vector BDV for scalar derived pointer.

From what I see it should work. The only thing worries me is that this isCorrectType seems to be not incorporated into solution but some side hack to solve the problem.
Unfortunately at this moment I do not have a better suggestion :(

Apr 7 2020, 4:19 AM · Restricted Project
skatkov committed rGb7e3759e177e: [DAG] Consolidate require spill slot logic in lambda. NFC. (authored by skatkov).
[DAG] Consolidate require spill slot logic in lambda. NFC.
Apr 7 2020, 3:13 AM
skatkov closed D77629: [DAG] Consolidate require spill slot logic in lambda. NFC..
Apr 7 2020, 3:13 AM · Restricted Project
skatkov updated the diff for D77371: [Codegen/Statepoint] Allow usage of registers for non gc deopt values..

Changes according to review.

Apr 7 2020, 2:40 AM · Restricted Project
skatkov added inline comments to D77371: [Codegen/Statepoint] Allow usage of registers for non gc deopt values..
Apr 7 2020, 2:40 AM · Restricted Project

Apr 6 2020

skatkov created D77629: [DAG] Consolidate require spill slot logic in lambda. NFC..
Apr 6 2020, 9:48 PM · Restricted Project

Apr 3 2020

skatkov created D77371: [Codegen/Statepoint] Allow usage of registers for non gc deopt values..
Apr 3 2020, 1:02 AM · Restricted Project

Apr 2 2020

skatkov committed rGbd1d70bf0e17: [DAG] Change isGCValue detection for statepoint lowering (authored by skatkov).
[DAG] Change isGCValue detection for statepoint lowering
Apr 2 2020, 10:46 PM
skatkov closed D77130: [DAG] Change isGCValue detection for statepoint lowering.
Apr 2 2020, 10:45 PM · Restricted Project

Apr 1 2020

skatkov abandoned D77036: [CodeGen] Fix isGCValue utility for statepoint lowering.

in favor of https://reviews.llvm.org/D77130

Apr 1 2020, 10:50 PM
skatkov updated the diff for D77130: [DAG] Change isGCValue detection for statepoint lowering.

Philip, thank you for your suggestion.

Apr 1 2020, 10:50 PM · Restricted Project
skatkov committed rG2ede5dccffa5: [DOC] Remove too strong restriction for ‘llvm.experimental.gc.statepoint’… (authored by skatkov).
[DOC] Remove too strong restriction for ‘llvm.experimental.gc.statepoint’…
Apr 1 2020, 9:14 PM
skatkov closed D77122: [DOC] Remove too strong restriction for ‘llvm.experimental.gc.statepoint’ Intrinsic.
Apr 1 2020, 9:14 PM · Restricted Project

Mar 31 2020

skatkov created D77130: [DAG] Change isGCValue detection for statepoint lowering.
Mar 31 2020, 3:51 AM · Restricted Project
skatkov added a comment to D77036: [CodeGen] Fix isGCValue utility for statepoint lowering.

Please take a loot at https://reviews.llvm.org/D77122 and https://reviews.llvm.org/D77130.

Mar 31 2020, 3:51 AM
skatkov created D77122: [DOC] Remove too strong restriction for ‘llvm.experimental.gc.statepoint’ Intrinsic.
Mar 31 2020, 2:10 AM · Restricted Project

Mar 30 2020

skatkov accepted D77075: [Statepoint] Fix StatepointLoweringInfo::GCTransitionArgs initialization.
Mar 30 2020, 9:18 PM · Restricted Project
skatkov added a comment to D77036: [CodeGen] Fix isGCValue utility for statepoint lowering.

Er, I think the specification simplify needs changed here. As we've discussed offline, it's impossible to enforce having a gc pointer in the deopt list always be in the gc list (in any form). This was a flaw in the specification from the begging and we should fix the docs, not try to hack up the code to preserve it a bit longer.

The key example of why this can't work:
%p1 = bitcast i8* %p to i8*
statepoint [gc = (%p1)], [deopt = (%p1)]

The optimizer is allowed to replace either use (or both) of %p1 with %p. If it updates only one of the two (entirely legal), the two sets do not overlap.

If we need to enforce a property for GC values within deopt list, we should directly use the type of the pointer in question. Anything else appears unsound.

Mar 30 2020, 9:18 PM

Mar 29 2020

skatkov created D77036: [CodeGen] Fix isGCValue utility for statepoint lowering.
Mar 29 2020, 11:25 PM

Mar 16 2020

skatkov committed rG80c351cdb6ea: [InstCombine] Transform to undef incorrect atomic unordered mem intrinsics (authored by skatkov).
[InstCombine] Transform to undef incorrect atomic unordered mem intrinsics
Mar 16 2020, 8:45 PM
skatkov closed D76215: [InstCombine] Transform to undef incorrect atomic unordered mem intrinsics.
Mar 16 2020, 8:44 PM · Restricted Project
skatkov created D76215: [InstCombine] Transform to undef incorrect atomic unordered mem intrinsics.
Mar 16 2020, 1:05 AM · Restricted Project

Mar 15 2020

skatkov committed rGad643d5e93c3: [Verifier] Remove invalid verifier check (authored by skatkov).
[Verifier] Remove invalid verifier check
Mar 15 2020, 10:19 PM
skatkov closed D76116: [Verifier] Remove invalid verifier check.
Mar 15 2020, 10:18 PM · Restricted Project

Mar 12 2020

skatkov abandoned D75598: [InstCombine] Handle gc.relocate(null) in one iteration.

Need to think about other approach

Mar 12 2020, 11:19 PM · Restricted Project