Page MenuHomePhabricator

ebrevnov (Evgeniy)
User

Projects

User does not belong to any projects.

User Details

User Since
Jan 23 2018, 4:17 PM (103 w, 3 d)

Recent Activity

Yesterday

ebrevnov added a comment to D72832: [NFC][LoopUtils] Added regression test for getEstimatedTripCount..

@Ayal , would be nice if you find time to look at this patch since next two (accepted) patched depends on this one.

Fri, Jan 17, 1:21 AM · Restricted Project

Thu, Jan 16

ebrevnov updated the diff for D71990: [LoopUtils] Better accuracy for getLoopEstimatedTripCount..

Fixed comments.

Thu, Jan 16, 9:39 PM · Restricted Project
ebrevnov updated the diff for D67905: [LV] Vectorizer should adjust trip count in profile information.

Rebase

Thu, Jan 16, 4:09 AM · Restricted Project
ebrevnov updated the diff for D71990: [LoopUtils] Better accuracy for getLoopEstimatedTripCount..

Moved regression test to a separate review.

Thu, Jan 16, 4:03 AM · Restricted Project
ebrevnov edited parent revisions for D71990: [LoopUtils] Better accuracy for getLoopEstimatedTripCount., added: 1; removed: 1.
Thu, Jan 16, 3:53 AM · Restricted Project
ebrevnov added a child revision for D72832: [NFC][LoopUtils] Added regression test for getEstimatedTripCount.: D71990: [LoopUtils] Better accuracy for getLoopEstimatedTripCount..
Thu, Jan 16, 3:53 AM · Restricted Project
ebrevnov removed a child revision for D72029: [LoopUtils][NFC] Minor refactoring in getLoopEstimatedTripCount.: D71990: [LoopUtils] Better accuracy for getLoopEstimatedTripCount..
Thu, Jan 16, 3:53 AM · Restricted Project
ebrevnov added a reviewer for D72832: [NFC][LoopUtils] Added regression test for getEstimatedTripCount.: Ayal.
Thu, Jan 16, 3:53 AM · Restricted Project
ebrevnov created D72832: [NFC][LoopUtils] Added regression test for getEstimatedTripCount..
Thu, Jan 16, 3:53 AM · Restricted Project

Wed, Jan 15

ebrevnov added inline comments to D71990: [LoopUtils] Better accuracy for getLoopEstimatedTripCount..
Wed, Jan 15, 8:06 PM · Restricted Project
ebrevnov added inline comments to D67905: [LV] Vectorizer should adjust trip count in profile information.
Wed, Jan 15, 7:20 PM · Restricted Project
ebrevnov added a comment to D71990: [LoopUtils] Better accuracy for getLoopEstimatedTripCount..

ping @Ayal

Wed, Jan 15, 2:00 AM · Restricted Project
ebrevnov added a comment to D67905: [LV] Vectorizer should adjust trip count in profile information.

ping @Ayal

Wed, Jan 15, 2:00 AM · Restricted Project

Thu, Jan 9

ebrevnov added reviewers for D71053: [LV] Take overhead of run-time checks into account during vectorization.: Ayal, hsaito, fhahn, anna.
Thu, Jan 9, 4:45 AM · Restricted Project
ebrevnov retitled D71053: [LV] Take overhead of run-time checks into account during vectorization. from [WIP][LV] Take overhead of run-time checks into account during vectorization. to [LV] Take overhead of run-time checks into account during vectorization..
Thu, Jan 9, 4:42 AM · Restricted Project
ebrevnov updated the summary of D71053: [LV] Take overhead of run-time checks into account during vectorization..
Thu, Jan 9, 4:42 AM · Restricted Project
ebrevnov updated the summary of D71053: [LV] Take overhead of run-time checks into account during vectorization..
Thu, Jan 9, 4:42 AM · Restricted Project
ebrevnov updated the diff for D71053: [LV] Take overhead of run-time checks into account during vectorization..

Introduce control flag for the feature and disable by default + Rebase.

Thu, Jan 9, 2:44 AM · Restricted Project
ebrevnov closed D72029: [LoopUtils][NFC] Minor refactoring in getLoopEstimatedTripCount..

ebrevnov committed rGf0abe820eebf: [LoopUtils][NFC] Minor refactoring in getLoopEstimatedTripCount. (authored by ebrevnov).

Thu, Jan 9, 2:26 AM · Restricted Project
ebrevnov updated the diff for D67905: [LV] Vectorizer should adjust trip count in profile information.

Rebase

Thu, Jan 9, 2:26 AM · Restricted Project
ebrevnov updated the diff for D71990: [LoopUtils] Better accuracy for getLoopEstimatedTripCount..

Fixed raised issue + Rebase.

Thu, Jan 9, 2:26 AM · Restricted Project
ebrevnov added inline comments to D71990: [LoopUtils] Better accuracy for getLoopEstimatedTripCount..
Thu, Jan 9, 2:17 AM · Restricted Project
ebrevnov committed rGf0abe820eebf: [LoopUtils][NFC] Minor refactoring in getLoopEstimatedTripCount. (authored by ebrevnov).
[LoopUtils][NFC] Minor refactoring in getLoopEstimatedTripCount.
Thu, Jan 9, 1:52 AM

Wed, Jan 8

ebrevnov updated the diff for D67905: [LV] Vectorizer should adjust trip count in profile information.

Rebase

Wed, Jan 8, 11:21 PM · Restricted Project
ebrevnov updated the diff for D72029: [LoopUtils][NFC] Minor refactoring in getLoopEstimatedTripCount..

Comments addressed.

Wed, Jan 8, 9:54 PM · Restricted Project
ebrevnov added inline comments to D72029: [LoopUtils][NFC] Minor refactoring in getLoopEstimatedTripCount..
Wed, Jan 8, 9:47 PM · Restricted Project

Mon, Dec 30

ebrevnov added inline comments to D67905: [LV] Vectorizer should adjust trip count in profile information.
Mon, Dec 30, 11:48 PM · Restricted Project
ebrevnov added a parent revision for D71990: [LoopUtils] Better accuracy for getLoopEstimatedTripCount.: D72029: [LoopUtils][NFC] Minor refactoring in getLoopEstimatedTripCount..
Mon, Dec 30, 11:48 PM · Restricted Project
ebrevnov added a child revision for D72029: [LoopUtils][NFC] Minor refactoring in getLoopEstimatedTripCount.: D71990: [LoopUtils] Better accuracy for getLoopEstimatedTripCount..
Mon, Dec 30, 11:48 PM · Restricted Project
ebrevnov added a reviewer for D72029: [LoopUtils][NFC] Minor refactoring in getLoopEstimatedTripCount.: Ayal.
Mon, Dec 30, 11:48 PM · Restricted Project
ebrevnov created D72029: [LoopUtils][NFC] Minor refactoring in getLoopEstimatedTripCount..
Mon, Dec 30, 11:48 PM · Restricted Project
ebrevnov updated the diff for D71990: [LoopUtils] Better accuracy for getLoopEstimatedTripCount..

Factor out NFC stuff + rebase

Mon, Dec 30, 11:48 PM · Restricted Project
ebrevnov edited parent revisions for D67905: [LV] Vectorizer should adjust trip count in profile information, added: 1; removed: 1.
Mon, Dec 30, 4:35 AM · Restricted Project
ebrevnov added a child revision for D71990: [LoopUtils] Better accuracy for getLoopEstimatedTripCount.: D67905: [LV] Vectorizer should adjust trip count in profile information.
Mon, Dec 30, 4:35 AM · Restricted Project
ebrevnov removed a child revision for D67805: [LV] Allow vectorization of hot short trip count loops with epilog: D67905: [LV] Vectorizer should adjust trip count in profile information.
Mon, Dec 30, 4:35 AM · Restricted Project
ebrevnov updated the diff for D67905: [LV] Vectorizer should adjust trip count in profile information.

One more round of updates.

Mon, Dec 30, 4:35 AM · Restricted Project
ebrevnov updated the diff for D71990: [LoopUtils] Better accuracy for getLoopEstimatedTripCount..

Rebase.

Mon, Dec 30, 4:31 AM · Restricted Project
ebrevnov closed D71047: [LV][NFC] Keep dominator tree up to date during vectorization..

ebrevnov committed rG948e745270de: [LV][NFC] Keep dominator tree up to date during vectorization. (authored by ebrevnov).

Mon, Dec 30, 4:27 AM · Restricted Project
ebrevnov added an edge to rG948e745270de: [LV][NFC] Keep dominator tree up to date during vectorization.: D71047: [LV][NFC] Keep dominator tree up to date during vectorization..
Mon, Dec 30, 4:26 AM
ebrevnov closed D71055: [LV][NFC] Some refactoring and renaming to facilitate next change..

ebrevnov committed rG1b6286b945a5: [LV][NFC] Some refactoring and renaming to facilitate next change. (authored by ebrevnov).

Mon, Dec 30, 4:26 AM · Restricted Project
ebrevnov added 1 commit(s) for D71047: [LV][NFC] Keep dominator tree up to date during vectorization.: rG948e745270de: [LV][NFC] Keep dominator tree up to date during vectorization..
Mon, Dec 30, 4:26 AM · Restricted Project
ebrevnov committed rG948e745270de: [LV][NFC] Keep dominator tree up to date during vectorization. (authored by ebrevnov).
[LV][NFC] Keep dominator tree up to date during vectorization.
Mon, Dec 30, 3:41 AM
ebrevnov committed rG1b6286b945a5: [LV][NFC] Some refactoring and renaming to facilitate next change. (authored by ebrevnov).
[LV][NFC] Some refactoring and renaming to facilitate next change.
Mon, Dec 30, 3:41 AM
ebrevnov added reviewers for D71990: [LoopUtils] Better accuracy for getLoopEstimatedTripCount.: Ayal, fhahn.
Mon, Dec 30, 12:52 AM · Restricted Project
ebrevnov created D71990: [LoopUtils] Better accuracy for getLoopEstimatedTripCount..
Mon, Dec 30, 12:44 AM · Restricted Project

Thu, Dec 26

ebrevnov added a comment to D67905: [LV] Vectorizer should adjust trip count in profile information.

Hi @Ayal. Thanks for you input. I fixed all places as you suggested. Please check.

Thu, Dec 26, 3:34 AM · Restricted Project
ebrevnov updated the diff for D67905: [LV] Vectorizer should adjust trip count in profile information.

Updated as requested.

Thu, Dec 26, 3:32 AM · Restricted Project
ebrevnov added inline comments to D67905: [LV] Vectorizer should adjust trip count in profile information.
Thu, Dec 26, 3:32 AM · Restricted Project

Wed, Dec 25

ebrevnov updated the diff for D71249: [LV] Set name for vector preheader and trip count check blocks.

Rebase

Wed, Dec 25, 2:26 AM · Restricted Project
ebrevnov updated the diff for D71047: [LV][NFC] Keep dominator tree up to date during vectorization..

Rebase

Wed, Dec 25, 2:26 AM · Restricted Project
ebrevnov added inline comments to D71055: [LV][NFC] Some refactoring and renaming to facilitate next change..
Wed, Dec 25, 2:23 AM · Restricted Project
ebrevnov updated the diff for D71055: [LV][NFC] Some refactoring and renaming to facilitate next change..

Updated according to comments.

Wed, Dec 25, 2:23 AM · Restricted Project

Sun, Dec 22

ebrevnov added inline comments to D71047: [LV][NFC] Keep dominator tree up to date during vectorization..
Sun, Dec 22, 8:05 PM · Restricted Project
ebrevnov added a comment to D71047: [LV][NFC] Keep dominator tree up to date during vectorization..

LGTM thanks!

Sun, Dec 22, 7:57 PM · Restricted Project
ebrevnov updated the summary of D71047: [LV][NFC] Keep dominator tree up to date during vectorization..
Sun, Dec 22, 7:56 PM · Restricted Project
ebrevnov added a comment to D71055: [LV][NFC] Some refactoring and renaming to facilitate next change..

ping @fhahn, @Ayal, @hsaito @anna

Sun, Dec 22, 7:30 PM · Restricted Project

Fri, Dec 20

ebrevnov retitled D71047: [LV][NFC] Keep dominator tree up to date during vectorization. from [LV] Keep dominator tree up to date during vectorization. to [LV][NFC] Keep dominator tree up to date during vectorization..
Fri, Dec 20, 10:25 PM · Restricted Project

Dec 18 2019

ebrevnov added a comment to D67905: [LV] Vectorizer should adjust trip count in profile information.

ping @Ayal

Dec 18 2019, 12:17 AM · Restricted Project

Dec 17 2019

ebrevnov updated the diff for D71250: [LV] Create new vector loop preheader so it contains vectorizer generated code only..

Rebase.

Dec 17 2019, 12:19 AM · Restricted Project
ebrevnov updated the diff for D71249: [LV] Set name for vector preheader and trip count check blocks.

Tests update

Dec 17 2019, 12:09 AM · Restricted Project
ebrevnov added a comment to D71047: [LV][NFC] Keep dominator tree up to date during vectorization..

Ping @fhahn

Dec 17 2019, 12:09 AM · Restricted Project
ebrevnov updated the diff for D71047: [LV][NFC] Keep dominator tree up to date during vectorization..

Nope.

Dec 17 2019, 12:09 AM · Restricted Project

Dec 16 2019

ebrevnov updated the summary of D71055: [LV][NFC] Some refactoring and renaming to facilitate next change..
Dec 16 2019, 11:59 PM · Restricted Project
ebrevnov added a comment to D71055: [LV][NFC] Some refactoring and renaming to facilitate next change..

Ping

Dec 16 2019, 11:59 PM · Restricted Project
ebrevnov updated the diff for D71055: [LV][NFC] Some refactoring and renaming to facilitate next change..

Minor update.

Dec 16 2019, 11:50 PM · Restricted Project

Dec 11 2019

ebrevnov added a comment to D71249: [LV] Set name for vector preheader and trip count check blocks.

This change may conflict with your other two. How are we supposed to review them? Are they a set?

If so, what's the order in which they have to be applied?

Yes there are a dependencies between change sets. Especially this and next one. The order is defined by parent/child relationship and can be found at "Revision Contents" section Stack tab.

Dec 11 2019, 8:10 PM · Restricted Project

Dec 10 2019

ebrevnov added inline comments to D71250: [LV] Create new vector loop preheader so it contains vectorizer generated code only..
Dec 10 2019, 9:10 PM · Restricted Project
ebrevnov added a comment to D71250: [LV] Create new vector loop preheader so it contains vectorizer generated code only..

This change introduces a number of new branches in the code. While not necessarily the hottest code, it may prove significant on short loops, especially nested loops. Without evidence in the form of benchmarks etc. it's hard to justify.

These extra branches are very short leaved and optimized out by SimplifyCFG which happens just 3 passes after the vectorizer. Thus I don't believe it can cause any harm to the performance. I double check that LLVM's test-suite has no regressions.

Dec 10 2019, 9:01 PM · Restricted Project
ebrevnov added a child revision for D71250: [LV] Create new vector loop preheader so it contains vectorizer generated code only.: D71053: [LV] Take overhead of run-time checks into account during vectorization..
Dec 10 2019, 4:03 AM · Restricted Project
ebrevnov removed a child revision for D71047: [LV][NFC] Keep dominator tree up to date during vectorization.: D71053: [LV] Take overhead of run-time checks into account during vectorization..
Dec 10 2019, 4:03 AM · Restricted Project
ebrevnov retitled D71053: [LV] Take overhead of run-time checks into account during vectorization. from [LV] Take overhead of run-time checks into account during vectorization. to [WIP][LV] Take overhead of run-time checks into account during vectorization..
Dec 10 2019, 4:03 AM · Restricted Project
ebrevnov added a child revision for D71047: [LV][NFC] Keep dominator tree up to date during vectorization.: D71249: [LV] Set name for vector preheader and trip count check blocks.
Dec 10 2019, 4:03 AM · Restricted Project
ebrevnov edited parent revisions for D71053: [LV] Take overhead of run-time checks into account during vectorization., added: 1; removed: 1.
Dec 10 2019, 4:03 AM · Restricted Project
ebrevnov edited parent revisions for D71249: [LV] Set name for vector preheader and trip count check blocks, added: 1; removed: 1.
Dec 10 2019, 4:03 AM · Restricted Project
ebrevnov removed a child revision for D71053: [LV] Take overhead of run-time checks into account during vectorization.: D71249: [LV] Set name for vector preheader and trip count check blocks.
Dec 10 2019, 4:03 AM · Restricted Project
ebrevnov added a parent revision for D71249: [LV] Set name for vector preheader and trip count check blocks: D71053: [LV] Take overhead of run-time checks into account during vectorization..
Dec 10 2019, 3:55 AM · Restricted Project
ebrevnov added a child revision for D71053: [LV] Take overhead of run-time checks into account during vectorization.: D71249: [LV] Set name for vector preheader and trip count check blocks.
Dec 10 2019, 3:55 AM · Restricted Project
ebrevnov added a parent revision for D71250: [LV] Create new vector loop preheader so it contains vectorizer generated code only.: D71249: [LV] Set name for vector preheader and trip count check blocks.
Dec 10 2019, 3:54 AM · Restricted Project
ebrevnov added a child revision for D71249: [LV] Set name for vector preheader and trip count check blocks: D71250: [LV] Create new vector loop preheader so it contains vectorizer generated code only..
Dec 10 2019, 3:54 AM · Restricted Project
ebrevnov added reviewers for D71250: [LV] Create new vector loop preheader so it contains vectorizer generated code only.: hsaito, Ayal, fhahn, rengolin, anna.
Dec 10 2019, 3:54 AM · Restricted Project
ebrevnov created D71250: [LV] Create new vector loop preheader so it contains vectorizer generated code only..
Dec 10 2019, 3:53 AM · Restricted Project
ebrevnov updated the summary of D71249: [LV] Set name for vector preheader and trip count check blocks.
Dec 10 2019, 3:35 AM · Restricted Project
ebrevnov retitled D71249: [LV] Set name for vector preheader and trip count check blocks from [LV] Set and preserve name of vector preheader block. to [LV] Set name for vector preheader and trip count check blocks.
Dec 10 2019, 3:35 AM · Restricted Project
ebrevnov created D71249: [LV] Set name for vector preheader and trip count check blocks.
Dec 10 2019, 3:26 AM · Restricted Project

Dec 9 2019

ebrevnov updated the diff for D71047: [LV][NFC] Keep dominator tree up to date during vectorization..

Updating as requested by Florian.

Dec 9 2019, 2:21 AM · Restricted Project
ebrevnov added a comment to D71047: [LV][NFC] Keep dominator tree up to date during vectorization..

IIUC ideally there should be no changes to the tests required to update the DT handling.

Dec 9 2019, 2:12 AM · Restricted Project
ebrevnov updated the diff for D67905: [LV] Vectorizer should adjust trip count in profile information.

Typo fixed.

Dec 9 2019, 2:03 AM · Restricted Project
ebrevnov updated the diff for D67905: [LV] Vectorizer should adjust trip count in profile information.

Addressing issues raised by Ayal.

Dec 9 2019, 2:03 AM · Restricted Project
ebrevnov added a comment to D67905: [LV] Vectorizer should adjust trip count in profile information.

Still think it would be better to provide this as a standalone function in Transforms/Utils/LoopUtils, for potential benefit of loop unroll (and jam) passes in addition to LV. Having agreed to ignore foldTail and requiresScalarEpilog, there's nothing vectorization-specific to do here. There's still an issue though with the fact that LV may use the scalar loop for both the remaining TC%(VF*UF) iterations when running the vector loop, and for all TC iterations when runtime guards bypass the vector loop. In absence of information, each such guard could be assigned 0.5 probability, or one could be aggressively optimistic and hope vector loop is always reached. In any case this deserves a comment.

Suggesting further variable name changes for the three Orig, Unrolled, and Remainder Loops, each having a LoopEntry==LoopExit edge weight, a Backedge weight, a HeaderBlock weight, and an AverageTripCount. The actual weights are recorded as TrueVal and FalseVal of the latch branches.

Patch needs to be clang-format'ed.

Dec 9 2019, 1:55 AM · Restricted Project

Dec 6 2019

ebrevnov updated the diff for D71047: [LV][NFC] Keep dominator tree up to date during vectorization..

Minor naming update

Dec 6 2019, 2:19 AM · Restricted Project
ebrevnov updated the diff for D71047: [LV][NFC] Keep dominator tree up to date during vectorization..

Use SplitBlock utility to automatically udpate DT and LI.

Dec 6 2019, 2:10 AM · Restricted Project
ebrevnov updated the diff for D71047: [LV][NFC] Keep dominator tree up to date during vectorization..

Minor formatting update.

Dec 6 2019, 2:10 AM · Restricted Project

Dec 5 2019

ebrevnov added a comment to D71053: [LV] Take overhead of run-time checks into account during vectorization..

Is this change inspired by a real world case? If so, how relevant / pervasive is this case?

Yes, this case came from the real world benchmark. This change gives +15% on it.

Dec 5 2019, 7:02 PM · Restricted Project
ebrevnov added inline comments to D71047: [LV][NFC] Keep dominator tree up to date during vectorization..
Dec 5 2019, 3:55 AM · Restricted Project
ebrevnov updated the diff for D71047: [LV][NFC] Keep dominator tree up to date during vectorization..

Restore lost change.

Dec 5 2019, 3:52 AM · Restricted Project
ebrevnov updated the diff for D71047: [LV][NFC] Keep dominator tree up to date during vectorization..

Extracted formatting and renaming to a separate review.

Dec 5 2019, 3:45 AM · Restricted Project
ebrevnov added a child revision for D71055: [LV][NFC] Some refactoring and renaming to facilitate next change.: D71047: [LV][NFC] Keep dominator tree up to date during vectorization..
Dec 5 2019, 3:43 AM · Restricted Project
ebrevnov added a parent revision for D71047: [LV][NFC] Keep dominator tree up to date during vectorization.: D71055: [LV][NFC] Some refactoring and renaming to facilitate next change..
Dec 5 2019, 3:43 AM · Restricted Project
ebrevnov added reviewers for D71055: [LV][NFC] Some refactoring and renaming to facilitate next change.: fhahn, Ayal, hsaito, anna.
Dec 5 2019, 3:36 AM · Restricted Project
ebrevnov created D71055: [LV][NFC] Some refactoring and renaming to facilitate next change..
Dec 5 2019, 3:34 AM · Restricted Project