Page MenuHomePhabricator

skatkov (Serguei Katkov)
User

Projects

User does not belong to any projects.

User Details

User Since
Jan 25 2017, 1:38 AM (155 w, 3 d)

Recent Activity

Yesterday

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

Good catch.

Fri, Jan 17, 2:24 AM · Restricted Project

Wed, Jan 15

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

Tue, Jan 14

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.

Tue, Jan 14, 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?

Tue, Jan 14, 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
skatkov committed rL367085: [Loop Utils] Move utilty addStringMetadataToLoop to LoopUtils.cpp. NFC..
[Loop Utils] Move utilty addStringMetadataToLoop to LoopUtils.cpp. NFC.
Jul 25 2019, 11:13 PM
skatkov closed D65264: [Loop Utils] Move utilty addStringMetadataToLoop to LoopUtils.cpp. NFC..
Jul 25 2019, 11:13 PM · Restricted Project
skatkov committed rGcde00c02e11d: [Loop Peeling] Fix idom detection algorithm. (authored by skatkov).
[Loop Peeling] Fix idom detection algorithm.
Jul 25 2019, 12:33 PM
skatkov committed rL367044: [Loop Peeling] Fix idom detection algorithm..
[Loop Peeling] Fix idom detection algorithm.
Jul 25 2019, 12:32 PM
skatkov closed D65292: [Loop Peeling] Fix idom detection algorithm.
Jul 25 2019, 12:32 PM · Restricted Project
skatkov added inline comments to D65292: [Loop Peeling] Fix idom detection algorithm.
Jul 25 2019, 11:08 AM · Restricted Project
skatkov created D65292: [Loop Peeling] Fix idom detection algorithm.
Jul 25 2019, 10:32 AM · Restricted Project
skatkov added a parent revision for D64972: [Loop Peeling] Do not close further unroll/peel if profile based peeling was not used: D65265: [Loop Utils] Extend the scope of addStringMetadataToLoop.
Jul 25 2019, 1:32 AM · Restricted Project
skatkov added a child revision for D65265: [Loop Utils] Extend the scope of addStringMetadataToLoop: D64972: [Loop Peeling] Do not close further unroll/peel if profile based peeling was not used.
Jul 25 2019, 1:32 AM · Restricted Project
skatkov updated the diff for D64972: [Loop Peeling] Do not close further unroll/peel if profile based peeling was not used.

Added the guard to not exceed the UnrollPeelMaxCount limit.

Jul 25 2019, 1:32 AM · Restricted Project
skatkov added a child revision for D65264: [Loop Utils] Move utilty addStringMetadataToLoop to LoopUtils.cpp. NFC.: D65265: [Loop Utils] Extend the scope of addStringMetadataToLoop.
Jul 25 2019, 1:27 AM · Restricted Project
skatkov added a parent revision for D65265: [Loop Utils] Extend the scope of addStringMetadataToLoop: D65264: [Loop Utils] Move utilty addStringMetadataToLoop to LoopUtils.cpp. NFC..
Jul 25 2019, 1:27 AM · Restricted Project
skatkov created D65265: [Loop Utils] Extend the scope of addStringMetadataToLoop.
Jul 25 2019, 1:27 AM · Restricted Project
skatkov created D65264: [Loop Utils] Move utilty addStringMetadataToLoop to LoopUtils.cpp. NFC..
Jul 25 2019, 1:23 AM · Restricted Project

Jul 22 2019

skatkov updated the diff for D64983: [Loop Peeling] Introduce an option for full peeling disabling.

the variable and option name changed.

Jul 22 2019, 2:04 AM · Restricted Project
skatkov updated the diff for D64972: [Loop Peeling] Do not close further unroll/peel if profile based peeling was not used.

Test is updated to show what this patch changes.

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

I'm not quite sure this is the right macro approach.

The comment near the code your modifying makes me thing the whole reasoning behind disabling future peeling and unrolling after the first peel may be flawed. It doesn't make sense to "use up" profiling information. Assuming we correctly updated our profiling when doing the transform, the resulting profile for the loop should indicate that it's cold and thus not profitable to further peel/unroll. If that's not happening, maybe there's another issue in play? (I wonder if your other profile bug fix may help here?)

p.s. I'm opened to being convinced that this is a practical answer, even if not an ideal one. Just make the argument. :)

Jul 22 2019, 2:02 AM · Restricted Project

Jul 21 2019

skatkov committed rGc6c31da86773: [Loop Peeling] Fix the handling of branch weights of peeled off branches. (authored by skatkov).
[Loop Peeling] Fix the handling of branch weights of peeled off branches.
Jul 21 2019, 10:17 PM
skatkov committed rL366665: [Loop Peeling] Fix the handling of branch weights of peeled off branches..
[Loop Peeling] Fix the handling of branch weights of peeled off branches.
Jul 21 2019, 10:17 PM
skatkov closed D64235: [Loop Peeling] Fix the handling of branch weights of peeled off branches.
Jul 21 2019, 10:17 PM · Restricted Project

Jul 19 2019

skatkov added a parent revision for D64983: [Loop Peeling] Introduce an option for full peeling disabling: D64972: [Loop Peeling] Do not close further unroll/peel if profile based peeling was not used.
Jul 19 2019, 2:37 AM · Restricted Project
skatkov added a child revision for D64972: [Loop Peeling] Do not close further unroll/peel if profile based peeling was not used: D64983: [Loop Peeling] Introduce an option for full peeling disabling.
Jul 19 2019, 2:37 AM · Restricted Project
skatkov created D64983: [Loop Peeling] Introduce an option for full peeling disabling.
Jul 19 2019, 2:35 AM · Restricted Project
skatkov committed rGbde33af85a1b: [Loop Peeling] Enable peeling of multiple exits by default. (authored by skatkov).
[Loop Peeling] Enable peeling of multiple exits by default.
Jul 19 2019, 1:37 AM
skatkov committed rL366542: [Loop Peeling] Enable peeling of multiple exits by default..
[Loop Peeling] Enable peeling of multiple exits by default.
Jul 19 2019, 1:36 AM
skatkov closed D64619: [Loop Peeling] Enable peeling of multiple exits by default.
Jul 19 2019, 1:36 AM · Restricted Project

Jul 18 2019

skatkov added a child revision for D64235: [Loop Peeling] Fix the handling of branch weights of peeled off branches: D64972: [Loop Peeling] Do not close further unroll/peel if profile based peeling was not used.
Jul 18 2019, 11:51 PM · Restricted Project
skatkov added a parent revision for D64972: [Loop Peeling] Do not close further unroll/peel if profile based peeling was not used: D64235: [Loop Peeling] Fix the handling of branch weights of peeled off branches.
Jul 18 2019, 11:51 PM · Restricted Project
skatkov created D64972: [Loop Peeling] Do not close further unroll/peel if profile based peeling was not used.
Jul 18 2019, 11:51 PM · Restricted Project
skatkov updated the diff for D64235: [Loop Peeling] Fix the handling of branch weights of peeled off branches.

Please, take a look.

Jul 18 2019, 3:12 AM · Restricted Project
skatkov committed rG0ffa833d5470: [LoopInfo] Use early return in branch weight update functions. NFC. (authored by skatkov).
[LoopInfo] Use early return in branch weight update functions. NFC.
Jul 18 2019, 12:37 AM
skatkov committed rL366411: [LoopInfo] Use early return in branch weight update functions. NFC..
[LoopInfo] Use early return in branch weight update functions. NFC.
Jul 18 2019, 12:37 AM

Jul 17 2019

skatkov planned changes to D64235: [Loop Peeling] Fix the handling of branch weights of peeled off branches.

Hi Philip, Thank you for review. I'll update a patch.

Jul 17 2019, 9:48 PM · Restricted Project
skatkov updated the diff for D64235: [Loop Peeling] Fix the handling of branch weights of peeled off branches.
Jul 17 2019, 2:32 AM · Restricted Project
skatkov committed rG587d13d4c235: [LoopInfo] Fix getUniqueNonLatchExitBlocks (authored by skatkov).
[LoopInfo] Fix getUniqueNonLatchExitBlocks
Jul 17 2019, 12:12 AM
skatkov committed rL366294: [LoopInfo] Fix getUniqueNonLatchExitBlocks.
[LoopInfo] Fix getUniqueNonLatchExitBlocks
Jul 17 2019, 12:12 AM
skatkov closed D64787: [LoopInfo] Fix getUniqueNonLatchExitBlocks.
Jul 17 2019, 12:12 AM · Restricted Project

Jul 16 2019

skatkov abandoned D63918: [LoopPeeling] Better handling of branch weights for small values.

Abandon in a favor of https://reviews.llvm.org/D64235

Jul 16 2019, 10:42 PM
skatkov created D64787: [LoopInfo] Fix getUniqueNonLatchExitBlocks.
Jul 16 2019, 12:59 AM · Restricted Project
skatkov added inline comments to D64553: [LoopUtils] Extend the scope of getLoopEstimatedTripCount.
Jul 16 2019, 12:59 AM · Restricted Project

Jul 15 2019

skatkov added inline comments to D64553: [LoopUtils] Extend the scope of getLoopEstimatedTripCount.
Jul 15 2019, 8:51 PM · Restricted Project
skatkov added inline comments to D64553: [LoopUtils] Extend the scope of getLoopEstimatedTripCount.
Jul 15 2019, 8:18 PM · Restricted Project
skatkov updated subscribers of rL366048: [Loop Peeling] Enable peeling for loops with multiple exits.

Thanks to @davezarzycki who fixed it in
commit 12400b97838d78386920cbda3c9dadb9f8727ce3
Author: David Zarzycki <dave@znu.io>
Date: Mon Jul 15 14:12:35 2019 +0000

Jul 15 2019, 7:58 PM
skatkov committed rGd021ad9fbeb6: [Loop Peeling] Fix the bug with IDom setting for exit loops (authored by skatkov).
[Loop Peeling] Fix the bug with IDom setting for exit loops
Jul 15 2019, 2:14 AM
skatkov committed rL366050: [Loop Peeling] Fix the bug with IDom setting for exit loops.
[Loop Peeling] Fix the bug with IDom setting for exit loops
Jul 15 2019, 2:13 AM
skatkov closed D64618: [Loop Peeling] Fix the bug with IDom setting for exit loops.
Jul 15 2019, 2:13 AM · Restricted Project
skatkov committed rG3ed93b4673b9: [Loop Peeling] Enable peeling for loops with multiple exits (authored by skatkov).
[Loop Peeling] Enable peeling for loops with multiple exits
Jul 15 2019, 1:29 AM
skatkov committed rL366048: [Loop Peeling] Enable peeling for loops with multiple exits.
[Loop Peeling] Enable peeling for loops with multiple exits
Jul 15 2019, 1:28 AM