Page MenuHomePhabricator

skatkov (Serguei Katkov)
User

Projects

User does not belong to any projects.

User Details

User Since
Jan 25 2017, 1:38 AM (166 w, 6 d)

Recent Activity

Today

skatkov added inline comments to D76305: [RS4GC] Fix algorithm to avoid setting vector BDV for scalar derived pointer.
Tue, Apr 7, 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 :(

Tue, Apr 7, 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.
Tue, Apr 7, 3:13 AM
skatkov closed D77629: [DAG] Consolidate require spill slot logic in lambda. NFC..
Tue, Apr 7, 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.

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

Yesterday

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

Fri, Apr 3

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

Thu, Apr 2

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

Wed, Apr 1

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

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

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

Philip, thank you for your suggestion.

Wed, Apr 1, 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’…
Wed, Apr 1, 9:14 PM
skatkov closed D77122: [DOC] Remove too strong restriction for ‘llvm.experimental.gc.statepoint’ Intrinsic.
Wed, Apr 1, 9:14 PM · Restricted Project

Tue, Mar 31

skatkov created D77130: [DAG] Change isGCValue detection for statepoint lowering.
Tue, Mar 31, 3:51 AM · Restricted Project
skatkov added a parent revision for D77130: [DAG] Change isGCValue detection for statepoint lowering: D77122: [DOC] Remove too strong restriction for ‘llvm.experimental.gc.statepoint’ Intrinsic.
Tue, Mar 31, 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.

Tue, Mar 31, 3:51 AM
skatkov added a child revision for D77122: [DOC] Remove too strong restriction for ‘llvm.experimental.gc.statepoint’ Intrinsic: D77130: [DAG] Change isGCValue detection for statepoint lowering.
Tue, Mar 31, 3:51 AM · Restricted Project
skatkov created D77122: [DOC] Remove too strong restriction for ‘llvm.experimental.gc.statepoint’ Intrinsic.
Tue, Mar 31, 2:10 AM · Restricted Project

Mon, Mar 30

skatkov accepted D77075: [Statepoint] Fix StatepointLoweringInfo::GCTransitionArgs initialization.
Mon, Mar 30, 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.

Mon, Mar 30, 9:18 PM

Sun, Mar 29

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

Mon, Mar 16

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

Sun, Mar 15

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

Thu, Mar 12

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

Need to think about other approach

Thu, Mar 12, 11:19 PM · Restricted Project
skatkov updated the summary of D76116: [Verifier] Remove invalid verifier check.
Thu, Mar 12, 10:37 PM · Restricted Project
skatkov created D76116: [Verifier] Remove invalid verifier check.
Thu, Mar 12, 9:54 PM · Restricted Project

Wed, Mar 11

skatkov accepted D76021: [GC] Remove redundant entiries in stackmap section (and test it this time).

LGTM

Wed, Mar 11, 8:30 PM · Restricted Project

Tue, Mar 10

skatkov added a comment to D75964: [GC] Remove buggy untested optimization from statepoint lowering.

without this patch I get the following crash (which disappears with it):

Tue, Mar 10, 9:33 PM · Restricted Project
skatkov updated subscribers of D75964: [GC] Remove buggy untested optimization from statepoint lowering.

Here is a simple test showing the problem:

Tue, Mar 10, 8:50 PM · Restricted Project

Mar 4 2020

skatkov updated the diff for D75598: [InstCombine] Handle gc.relocate(null) in one iteration.
Mar 4 2020, 2:52 AM · Restricted Project
skatkov added inline comments to D75598: [InstCombine] Handle gc.relocate(null) in one iteration.
Mar 4 2020, 2:52 AM · Restricted Project
skatkov created D75598: [InstCombine] Handle gc.relocate(null) in one iteration.
Mar 4 2020, 2:52 AM · Restricted Project

Mar 1 2020

skatkov committed rG496e0a99c760: [InlineSpiller] Relax re-materialization restriction for statepoint (authored by skatkov).
[InlineSpiller] Relax re-materialization restriction for statepoint
Mar 1 2020, 9:06 PM
skatkov closed D75335: [InlineSpiller] Relax re-materialization restriction for statepoint.
Mar 1 2020, 9:06 PM · Restricted Project

Feb 28 2020

skatkov created D75335: [InlineSpiller] Relax re-materialization restriction for statepoint.
Feb 28 2020, 2:58 AM · Restricted Project

Feb 12 2020

skatkov committed rGa6f38b46972e: [Statepoint] Remove redundant clear of call target on register (authored by skatkov).
[Statepoint] Remove redundant clear of call target on register
Feb 12 2020, 8:08 PM
skatkov closed D74465: [Statepoint] Remove redundant clear of call target on register.
Feb 12 2020, 8:08 PM · Restricted Project
skatkov created D74465: [Statepoint] Remove redundant clear of call target on register.
Feb 12 2020, 12:25 AM · Restricted Project

Feb 2 2020

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

May I ask you to add a support for new pass manager to specify new introduced option in command line?

Feb 2 2020, 5:58 PM · Restricted Project

Jan 22 2020

skatkov updated subscribers of D73181: [SCEV] Use backedge SCEV of PHI only if its input is loop invariant.
Jan 22 2020, 7:57 PM · Restricted Project

Jan 21 2020

skatkov accepted D73058: [LoopRotate] add ability to repeat loop rotation until non-deoptimizing exit is found.
Jan 21 2020, 7:49 PM · Restricted Project
skatkov requested changes to D73058: [LoopRotate] add ability to repeat loop rotation until non-deoptimizing exit is found.
Jan 21 2020, 7:07 AM · Restricted Project
skatkov accepted D73058: [LoopRotate] add ability to repeat loop rotation until non-deoptimizing exit is found.

Please wait for one or two days before landing for comments from others.

Jan 21 2020, 12:04 AM · Restricted Project

Jan 20 2020

skatkov added a comment to D73058: [LoopRotate] add ability to repeat loop rotation until non-deoptimizing exit is found.

paranoia: Consider splitting this patch into two parts. The first one by default disables multi-exit, while the second one just switch flag on.

Jan 20 2020, 6:51 PM · Restricted Project

Jan 17 2020

skatkov accepted D72908: [BasicBlock] fix looping in getPostdominatingDeoptimizeCall.

Good catch.

Jan 17 2020, 2:24 AM · Restricted Project

Jan 15 2020

skatkov accepted D72752: [GVN] add GVN parameters parsing to new pass manager.
Jan 15 2020, 6:06 PM · Restricted Project
skatkov added inline comments to D72752: [GVN] add GVN parameters parsing to new pass manager.
Jan 15 2020, 12:27 AM · Restricted Project

Jan 14 2020

skatkov 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:21 PM · Restricted Project
skatkov 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?

Jan 14 2020, 9:33 PM · Restricted Project

Nov 20 2019

skatkov accepted D70104: [BPI] Improve unreachable/ColdCall heurstics to handle loops..

Addressing comments from @skatkov. Thank you for your review!

For X86 asm tests, I just re-ran update_llc_test_checks.py script. I think it should generate "correct" test based on the existing FileCheck patterns?

Nov 20 2019, 7:47 PM · Restricted Project
skatkov added a reviewer for D70104: [BPI] Improve unreachable/ColdCall heurstics to handle loops.: manmanren.

@manmanren, could you please ensure that your test still checks what it expected to do?

Nov 20 2019, 7:47 PM · Restricted Project
skatkov added a comment to D70104: [BPI] Improve unreachable/ColdCall heurstics to handle loops..

The implementation itself looks good to me.
I worry about tests whether fixes of the tests are expected.
If you have ready answers please let me know otherwise I'll try to dig into them deeply.

Nov 20 2019, 12:33 AM · Restricted Project

Oct 31 2019

skatkov committed rG1eb04d289a6f: [LICM] Invalidate SCEV upon instruction hoisting (authored by skatkov).
[LICM] Invalidate SCEV upon instruction hoisting
Oct 31 2019, 3:44 AM
skatkov closed D69370: [LICM] Invalidate SCEV upon instruction hoisting.
Oct 31 2019, 3:44 AM · Restricted Project
skatkov committed rGb32bae6f7608: [Test] Add a unit test exposing lack of SCEV invalidation in LICM during code… (authored by skatkov).
[Test] Add a unit test exposing lack of SCEV invalidation in LICM during code…
Oct 31 2019, 3:26 AM
skatkov closed D69369: [NFC] Add a unit test exposing lack of SCEV invalidation in LICM during code hoisting.
Oct 31 2019, 3:26 AM · Restricted Project

Sep 25 2019

skatkov accepted D67359: [IVUser] Limit the iterations to check whether a loop has dedicated exits for extreme large case.

Thanks.

Sep 25 2019, 7:43 PM · Restricted Project
skatkov accepted D67838: [CodeGenPrepare] Mend "avoid crashing from replacing a phi twice" fix..
Sep 25 2019, 1:32 AM · Restricted Project

Sep 24 2019

skatkov added a comment to D67359: [IVUser] Limit the iterations to check whether a loop has dedicated exits for extreme large case.

The last thing. Would not you like to add a test examine the max-dedicate-exit-iterations functionality?

Sep 24 2019, 7:03 PM · Restricted Project

Sep 23 2019

skatkov added inline comments to D67359: [IVUser] Limit the iterations to check whether a loop has dedicated exits for extreme large case.
Sep 23 2019, 8:15 PM · Restricted Project

Sep 18 2019

skatkov committed rGa44768858c75: [Unroll] Add an option to control complete unrolling (authored by skatkov).
[Unroll] Add an option to control complete unrolling
Sep 18 2019, 11:57 PM
skatkov committed rL372305: [Unroll] Add an option to control complete unrolling.
[Unroll] Add an option to control complete unrolling
Sep 18 2019, 11:57 PM
skatkov closed D67701: [Unroll] Add an option to control complete unrolling.
Sep 18 2019, 11:57 PM · Restricted Project
skatkov updated the diff for D67701: [Unroll] Add an option to control complete unrolling.

More tests are added.

Sep 18 2019, 10:30 PM · Restricted Project
skatkov created D67701: [Unroll] Add an option to control complete unrolling.
Sep 18 2019, 3:40 AM · Restricted Project

Sep 11 2019

skatkov added a comment to D67207: [JumpThreading] Fix the AssertVH handling for debug builds..

Hello @skatkov , I'm sorry to hear you're dealing with an intermittent crash. If you find a reproducible .ll file you can feed into opt -jump-threading -S < input.ll that crashes I would be interested in examining it. The Deferred usage of DTU causes unexpected issues and it is entirely possible there is still a bug here.

(CC'ing @kuhar and @NutshellySima to keep them informed)

Sep 11 2019, 5:30 AM · Restricted Project

Sep 9 2019

skatkov added a comment to D67359: [IVUser] Limit the iterations to check whether a loop has dedicated exits for extreme large case.
In D67359#1664242, @wmi wrote:

I wonder whether the problem is in this function or in analysis itself?
If it is a problem of analysis it is better to restrict it but not an utility function.

I feel the problem is in the utility function. Currently the problem is exposed in IVUser pass but the same can happen anywhere else if only the function is called for a huge loop with many exits and with each exit having many predecessors.

Sep 9 2019, 9:32 PM · Restricted Project
skatkov added a comment to D67359: [IVUser] Limit the iterations to check whether a loop has dedicated exits for extreme large case.

I wonder whether the problem is in this function or in analysis itself?
If it is a problem of analysis it is better to restrict it but not an utility function.

Sep 9 2019, 9:11 PM · Restricted Project

Sep 5 2019

skatkov added a comment to D67207: [JumpThreading] Fix the AssertVH handling for debug builds..

Thank you guys, for feedback.

Sep 5 2019, 7:05 PM · Restricted Project
skatkov added a comment to D67207: [JumpThreading] Fix the AssertVH handling for debug builds..

Note: I've got the crash by changing the DomTreeUpdater form Lazy mode to Eager. Even with this fix it will not work because of LVI->eraseBlock(&BB);
It seems the code is written in the way DTU cannot be Eager.

Sep 5 2019, 2:50 AM · Restricted Project

Sep 4 2019

skatkov created D67207: [JumpThreading] Fix the AssertVH handling for debug builds..
Sep 4 2019, 9:26 PM · Restricted Project

Sep 2 2019

skatkov committed rL370626: Request commit access for skatkov.
Request commit access for skatkov
Sep 2 2019, 1:10 AM

Aug 26 2019

skatkov added a comment to rL369191: [CodeGen] Do the Simple Early Return in block-placement pass to optimize the….

Please provide a quick fix or revert the patch causing the crash due to transforming to incorrect IR.

Aug 26 2019, 8:11 PM
skatkov added a comment to D63972: [CodeGen] Do the Simple Early Return in block-placement pass to optimize the blocks.

Please provide a quick fix or revert the patch causing the crash due to transforming to incorrect IR.

Aug 26 2019, 8:11 PM · Restricted Project

Aug 22 2019

skatkov committed rG036e636aa7fc: [Loop Peeling] Fix silly bug in metadata update. (authored by skatkov).
[Loop Peeling] Fix silly bug in metadata update.
Aug 22 2019, 3:07 AM
skatkov committed rL369637: [Loop Peeling] Fix silly bug in metadata update..
[Loop Peeling] Fix silly bug in metadata update.
Aug 22 2019, 3:05 AM

Aug 2 2019

skatkov committed rGde67affd005d: [Loop Peeling] Introduce an option for profile based peeling disabling. (authored by skatkov).
[Loop Peeling] Introduce an option for profile based peeling disabling.
Aug 2 2019, 2:33 AM
skatkov committed rL367668: [Loop Peeling] Introduce an option for profile based peeling disabling..
[Loop Peeling] Introduce an option for profile based peeling disabling.
Aug 2 2019, 2:32 AM
skatkov closed D64983: [Loop Peeling] Introduce an option for full peeling disabling.
Aug 2 2019, 2:32 AM · Restricted Project

Aug 1 2019

skatkov committed rGbbdcc8211111: [Loop Peeling] Do not close further unroll/peel if profile based peeling was… (authored by skatkov).
[Loop Peeling] Do not close further unroll/peel if profile based peeling was…
Aug 1 2019, 9:32 PM
skatkov committed rL367647: [Loop Peeling] Do not close further unroll/peel if profile based peeling was….
[Loop Peeling] Do not close further unroll/peel if profile based peeling was…
Aug 1 2019, 9:28 PM
skatkov closed D64972: [Loop Peeling] Do not close further unroll/peel if profile based peeling was not used.
Aug 1 2019, 9:28 PM · Restricted Project
skatkov abandoned D65503: [Loop Peeling] Do not close further unroll/peel if profile based peeling was not used. Alternate to D64972.

Abandon in favor of https://reviews.llvm.org/D64972

Aug 1 2019, 7:46 PM · Restricted Project
skatkov abandoned D65501: [Loop Peeling] Introduce peeling levels.

Abandon in favor of https://reviews.llvm.org/D64972

Aug 1 2019, 7:45 PM · Restricted Project

Jul 31 2019

skatkov added a comment to D64972: [Loop Peeling] Do not close further unroll/peel if profile based peeling was not used.

Philip, please take a look at https://reviews.llvm.org/D65501 which introduces the peeling level as possible solution to handle your comment.

See https://reviews.llvm.org/D65503. It is the same patch but based on D65501.

Jul 31 2019, 2:23 AM · Restricted Project
skatkov added a comment to D64972: [Loop Peeling] Do not close further unroll/peel if profile based peeling was not used.

Philip, please take a look at https://reviews.llvm.org/D65501 which introduces the peeling level as possible solution to handle your comment.

Jul 31 2019, 1:57 AM · Restricted Project
skatkov added a parent revision for D65503: [Loop Peeling] Do not close further unroll/peel if profile based peeling was not used. Alternate to D64972: D65501: [Loop Peeling] Introduce peeling levels.
Jul 31 2019, 1:54 AM · Restricted Project
skatkov added a child revision for D65501: [Loop Peeling] Introduce peeling levels: D65503: [Loop Peeling] Do not close further unroll/peel if profile based peeling was not used. Alternate to D64972.
Jul 31 2019, 1:54 AM · Restricted Project
skatkov created D65503: [Loop Peeling] Do not close further unroll/peel if profile based peeling was not used. Alternate to D64972.
Jul 31 2019, 1:54 AM · Restricted Project
skatkov added a comment to D64972: [Loop Peeling] Do not close further unroll/peel if profile based peeling was not used.

Philip, please take a look at https://reviews.llvm.org/D65501 which introduces the peeling level as possible solution to handle your comment.

Jul 31 2019, 1:16 AM · Restricted Project
skatkov created D65501: [Loop Peeling] Introduce peeling levels.
Jul 31 2019, 1:16 AM · Restricted Project

Jul 30 2019

skatkov added a comment to D64972: [Loop Peeling] Do not close further unroll/peel if profile based peeling was not used.

Having both the enable flag and the AlreadyPeeled variable is really confusing. Is there a way we could combine them? Maybe replace the boolean with the AlreadyPeeledViaProfiling count or something?

Jul 30 2019, 7:36 PM · Restricted Project

Jul 26 2019

skatkov committed rG7f8c809592ed: [Loop Utils] Extend the scope of addStringMetadataToLoop. (authored by skatkov).
[Loop Utils] Extend the scope of addStringMetadataToLoop.
Jul 26 2019, 12:08 AM
skatkov committed rL367087: [Loop Utils] Extend the scope of addStringMetadataToLoop..
[Loop Utils] Extend the scope of addStringMetadataToLoop.
Jul 26 2019, 12:06 AM
skatkov closed D65265: [Loop Utils] Extend the scope of addStringMetadataToLoop.
Jul 26 2019, 12:06 AM · Restricted Project

Jul 25 2019

skatkov committed rG3c3a76527e4e: [Loop Utils] Move utilty addStringMetadataToLoop to LoopUtils.cpp. NFC. (authored by skatkov).
[Loop Utils] Move utilty addStringMetadataToLoop to LoopUtils.cpp. NFC.
Jul 25 2019, 11:16 PM