Page MenuHomePhabricator

skatkov (Serguei Katkov)
User

Projects

User does not belong to any projects.

User Details

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

Recent Activity

Wed, Sep 18

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

More tests are added.

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

Wed, Sep 11

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)

Wed, Sep 11, 5:30 AM · Restricted Project

Mon, Sep 9

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.

Mon, Sep 9, 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.

Mon, Sep 9, 9:11 PM · Restricted Project

Thu, Sep 5

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

Thank you guys, for feedback.

Thu, Sep 5, 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.

Thu, Sep 5, 2:50 AM · Restricted Project

Wed, Sep 4

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

Mon, Sep 2

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

Mon, Aug 26

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.

Mon, Aug 26, 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.

Mon, Aug 26, 8:11 PM · Restricted Project

Thu, Aug 22

skatkov committed rG036e636aa7fc: [Loop Peeling] Fix silly bug in metadata update. (authored by skatkov).
[Loop Peeling] Fix silly bug in metadata update.
Thu, Aug 22, 3:07 AM
skatkov committed rL369637: [Loop Peeling] Fix silly bug in metadata update..
[Loop Peeling] Fix silly bug in metadata update.
Thu, Aug 22, 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
skatkov closed D63923: [Loop Peeling] Enable peeling for loops with multiple exits.
Jul 15 2019, 1:28 AM · Restricted Project

Jul 14 2019

skatkov committed rG45c43e7d04d3: [LoopUtils] Extend the scope of getLoopEstimatedTripCount (authored by skatkov).
[LoopUtils] Extend the scope of getLoopEstimatedTripCount
Jul 14 2019, 11:44 PM
skatkov committed rL366042: [LoopUtils] Extend the scope of getLoopEstimatedTripCount.
[LoopUtils] Extend the scope of getLoopEstimatedTripCount
Jul 14 2019, 11:42 PM
skatkov closed D64553: [LoopUtils] Extend the scope of getLoopEstimatedTripCount.
Jul 14 2019, 11:42 PM · Restricted Project
skatkov committed rGf1ee04c42a43: [LoopInfo] Introduce getUniqueNonLatchExitBlocks utility function (authored by skatkov).
[LoopInfo] Introduce getUniqueNonLatchExitBlocks utility function
Jul 14 2019, 10:55 PM
skatkov committed rL366040: [LoopInfo] Introduce getUniqueNonLatchExitBlocks utility function.
[LoopInfo] Introduce getUniqueNonLatchExitBlocks utility function
Jul 14 2019, 10:51 PM
skatkov closed D64548: [LoopInfo] Introduce getUniqueNonLatchExitBlocks utility function.
Jul 14 2019, 10:51 PM · Restricted Project
skatkov added inline comments to D64618: [Loop Peeling] Fix the bug with IDom setting for exit loops.
Jul 14 2019, 10:09 PM · Restricted Project
skatkov added a child revision for D64618: [Loop Peeling] Fix the bug with IDom setting for exit loops: D64619: [Loop Peeling] Enable peeling of multiple exits by default.
Jul 14 2019, 9:42 PM · Restricted Project
skatkov added a parent revision for D64619: [Loop Peeling] Enable peeling of multiple exits by default: D64618: [Loop Peeling] Fix the bug with IDom setting for exit loops.
Jul 14 2019, 9:42 PM · Restricted Project
skatkov added a comment to D64548: [LoopInfo] Introduce getUniqueNonLatchExitBlocks utility function.

I decided to avoid using public API with predicate due to it will require introducing template function in template class and effectively moving implementation to LoopInfo.h

Jul 14 2019, 9:04 PM · Restricted Project
skatkov updated the diff for D64548: [LoopInfo] Introduce getUniqueNonLatchExitBlocks utility function.

Make getUniqueExitBlocksHelper more general with using filter predicate.
Unit test is added.

Jul 14 2019, 8:59 PM · Restricted Project
skatkov added inline comments to D64553: [LoopUtils] Extend the scope of getLoopEstimatedTripCount.
Jul 14 2019, 8:45 PM · Restricted Project

Jul 12 2019

skatkov added a comment to D64553: [LoopUtils] Extend the scope of getLoopEstimatedTripCount.

May be good to have a test.

Jul 12 2019, 3:01 AM · Restricted Project
skatkov created D64619: [Loop Peeling] Enable peeling of multiple exits by default.
Jul 12 2019, 1:52 AM · Restricted Project
skatkov added a parent revision for D64618: [Loop Peeling] Fix the bug with IDom setting for exit loops: D63923: [Loop Peeling] Enable peeling for loops with multiple exits.
Jul 12 2019, 1:50 AM · Restricted Project