Page MenuHomePhabricator

dtemirbulatov (Dinar Temirbulatov)
User

Projects

User does not belong to any projects.

User Details

User Since
Sep 17 2015, 10:06 AM (265 w, 4 d)

Recent Activity

Tue, Oct 13

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Rebased. PING

Tue, Oct 13, 9:02 AM · Restricted Project

Tue, Oct 6

dtemirbulatov added a comment to D28907: [SLP] Fix for PR30787: Failure to beneficially vectorize 'copyable' elements in integer binary ops..

Reping

Tue, Oct 6, 7:42 AM · Restricted Project

Tue, Sep 29

dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

Ping

Tue, Sep 29, 3:47 PM · Restricted Project

Tue, Sep 22

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Tue, Sep 22, 8:12 AM · Restricted Project
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Tue, Sep 22, 8:09 AM · Restricted Project
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Rebased. Moved InternalTreeUses population out of (UseScalar != U || !InTreeUserNeedToExtract(Scalar, UserInst, TLI)) limitation, since we have to consider every interal user for partial vectorization.

Tue, Sep 22, 8:09 AM · Restricted Project

Sep 10 2020

dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

Good enough for initial implementation?

yes, For me, it looks like ready.

Sep 10 2020, 1:16 PM · Restricted Project

Sep 8 2020

dtemirbulatov requested review of D87295: Prefer vpxor over vpxorps for AVX2 PR36127.
Sep 8 2020, 10:04 AM · Restricted Project

Sep 2 2020

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Rebased. Ping.

Sep 2 2020, 5:31 AM · Restricted Project

Aug 23 2020

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Removed unnecessary check for "UserTE" at 3305.

Aug 23 2020, 7:57 AM · Restricted Project

Aug 21 2020

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Fixed remarks, rebased.

Aug 21 2020, 3:50 PM · Restricted Project
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Aug 21 2020, 3:23 PM · Restricted Project
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Aug 21 2020, 7:38 AM · Restricted Project

Aug 17 2020

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Corrected paper citation, added -slp-throttle=false to llvm/test/Transforms/SLPVectorizer/X86/slp-throttle.ll, rebased.

Aug 17 2020, 4:20 AM · Restricted Project

Aug 14 2020

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Rebased after rGb1600d8b8971

Aug 14 2020, 2:46 AM · Restricted Project

Aug 11 2020

dtemirbulatov committed rGb1600d8b8971: [NFC] Guard the cost report block of debug outputs with NDEBUG and (authored by dtemirbulatov).
[NFC] Guard the cost report block of debug outputs with NDEBUG and
Aug 11 2020, 7:35 AM
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Aug 11 2020, 3:12 AM · Restricted Project
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Aug 11 2020, 3:09 AM · Restricted Project
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

oh, I missed to fully remove from diff at 7269, Fixed

Aug 11 2020, 2:23 AM · Restricted Project

Aug 10 2020

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Rebased, Fixed.

Aug 10 2020, 10:54 AM · Restricted Project
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Fixed.

Aug 10 2020, 6:46 AM · Restricted Project
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Rebased, Ping

Aug 10 2020, 4:38 AM · Restricted Project

Jul 31 2020

dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

oh, sorry I misspelled:
For example, in the first loops, we could change from Entry1 TreeEntry::ProposedToGather to TreeEntry::NeedToGather status, but we later could encounter another use of this Entry1 and from another Entry2()let's say) with TreeEntry::Vectorize status and we could NOT tell difference with just canceled item and not considered to vectorize Entry. thus ExternalUses would not be properly populated.

Jul 31 2020, 11:55 AM · Restricted Project
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jul 31 2020, 11:53 AM · Restricted Project
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jul 31 2020, 11:43 AM · Restricted Project
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Rebased, addressed comments

Jul 31 2020, 11:35 AM · Restricted Project
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jul 31 2020, 11:32 AM · Restricted Project

Jul 25 2020

dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

ping

Jul 25 2020, 4:12 AM · Restricted Project

Jul 21 2020

dtemirbulatov added inline comments to D57059: [SLP] Initial support for the vectorization of the non-power-of-2 vectors..
Jul 21 2020, 3:27 PM · Restricted Project
dtemirbulatov added inline comments to D57059: [SLP] Initial support for the vectorization of the non-power-of-2 vectors..
Jul 21 2020, 3:02 PM · Restricted Project
dtemirbulatov added inline comments to D57059: [SLP] Initial support for the vectorization of the non-power-of-2 vectors..
Jul 21 2020, 2:52 PM · Restricted Project

Jul 19 2020

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jul 19 2020, 4:15 AM · Restricted Project
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Addressed remarks, rebased.

Jul 19 2020, 4:14 AM · Restricted Project

Jul 13 2020

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Addressed comments, rebased.

Jul 13 2020, 7:09 PM · Restricted Project
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jul 13 2020, 7:08 PM · Restricted Project

Jul 10 2020

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Addressed remarks, rebased.

Jul 10 2020, 2:19 AM · Restricted Project
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jul 10 2020, 2:17 AM · Restricted Project

Jul 7 2020

dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

ping

Jul 7 2020, 4:23 PM · Restricted Project

Jun 29 2020

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

I found type and unformatted changes.

Jun 29 2020, 4:49 AM · Restricted Project
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jun 29 2020, 2:39 AM · Restricted Project

Jun 28 2020

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jun 28 2020, 7:04 AM · Restricted Project
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Rebased, addressed the comments.

Jun 28 2020, 7:04 AM · Restricted Project

Jun 23 2020

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jun 23 2020, 2:36 AM · Restricted Project

Jun 19 2020

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jun 19 2020, 7:01 AM · Restricted Project
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Resolved comments

Jun 19 2020, 6:27 AM · Restricted Project

Jun 18 2020

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jun 18 2020, 2:15 PM · Restricted Project
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jun 18 2020, 2:15 PM · Restricted Project
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Rebased, Address comments.

Jun 18 2020, 12:34 PM · Restricted Project

Jun 16 2020

dtemirbulatov added a reviewer for D57059: [SLP] Initial support for the vectorization of the non-power-of-2 vectors.: anton-afanasyev.
Jun 16 2020, 8:49 AM · Restricted Project
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jun 16 2020, 8:15 AM · Restricted Project
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jun 16 2020, 8:15 AM · Restricted Project
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jun 16 2020, 7:42 AM · Restricted Project
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Addressed the comment

Why do you need to compare flow and operation instructions count? Also, why use hardcoded 3 as a limit of vectorizable nodes?

and I removed any limitation and introduced TreeState to avoid rebuilding the tree repeatedly. Now without limitations, I could not see any regressions on compilable CPU2006 FP and Int.

Jun 16 2020, 6:04 AM · Restricted Project

May 27 2020

dtemirbulatov updated subscribers of D57779: [SLP] Add support for throttling..
May 27 2020, 5:22 AM · Restricted Project

May 22 2020

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Ping, Rebased.

May 22 2020, 6:23 AM · Restricted Project

May 21 2020

dtemirbulatov committed rGdf3b95bc0ae0: [SLP][NFC] PR45269 getVectorElementSize() is slow (authored by dtemirbulatov).
[SLP][NFC] PR45269 getVectorElementSize() is slow
May 21 2020, 8:36 AM
dtemirbulatov closed D80241: [SLP] PR45269 Fix getVectorElementSize() is slow.
May 21 2020, 8:36 AM · Restricted Project

May 20 2020

dtemirbulatov updated the diff for D80241: [SLP] PR45269 Fix getVectorElementSize() is slow.

Restoring accidentally removed comment.

May 20 2020, 12:02 PM · Restricted Project
dtemirbulatov updated the diff for D80241: [SLP] PR45269 Fix getVectorElementSize() is slow.

Addressed comments.

May 20 2020, 8:10 AM · Restricted Project
dtemirbulatov added inline comments to D80241: [SLP] PR45269 Fix getVectorElementSize() is slow.
May 20 2020, 7:04 AM · Restricted Project

May 19 2020

dtemirbulatov updated the diff for D80241: [SLP] PR45269 Fix getVectorElementSize() is slow.

Fix typo.

May 19 2020, 2:19 PM · Restricted Project
dtemirbulatov created D80241: [SLP] PR45269 Fix getVectorElementSize() is slow.
May 19 2020, 2:18 PM · Restricted Project

May 10 2020

dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

ping

May 10 2020, 2:22 PM · Restricted Project

May 2 2020

dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

The CPU2006 testing was done on a dedicated machine with i7-6700HQ (turbo disabled) with at least 30 repeats and "-march=core-avx2 -m64" flag applied.

May 2 2020, 9:12 PM · Restricted Project
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Rebased, reestablished limiter to partially vectorize since I removed it a couple of revisions back. I have SPEC CPU 2006 ~1% improvement in 464.h264ref and ~0.3% 433.milc and 482.sphinx3. Looks like I don't have any performance regressions at C and C++ compilable and runnable CPU2006 tests. With this revision, I fixed regressions compared to my previous change at the following tests: 471.omnetpp, 450.soplex, 482.sphinx3, 433.milc. Also estimated runtime increase for the SLP pass overall for SPECINT is the same as before from ~0.1% to 0.3%.

May 2 2020, 3:40 AM · Restricted Project

Apr 21 2020

dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..
Apr 21 2020, 5:21 PM · Restricted Project

Apr 19 2020

dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

I measured the total time increase for SPEC2006 INT using "-ftime-trace" just for the SLP pass with "-mllvm -slp-throttle=true" and "-mllvm -slp-throttle=false" for the same compiler and the difference is about ~0.1%. This is for the last revision.

Apr 19 2020, 5:05 PM · Restricted Project

Apr 15 2020

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

I found a build error with 453.povray, I was missed to set successful vectorization status, this revision fixes the issue.

Apr 15 2020, 4:34 PM · Restricted Project

Apr 12 2020

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Rebased, removed limiter to minimal subtree hight of 3 elements after correcting getInsertCost() now those examples look good on benchmarking, added cost base estimations when to avoid throttling: "Tree cost" + "All reducible cost" > -SLPCostThreshold, corrected the error in findSubTree() to sort all positive elements from a tree instead of first n-elements.

Apr 12 2020, 8:00 AM · Restricted Project

Apr 4 2020

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Rebased, removed isGoodSubTreeToVectorize() function because there is just one user to this function. Now, I think the change is ready to review, Please review this revision.

Apr 4 2020, 11:58 PM · Restricted Project
dtemirbulatov retitled D57779: [SLP] Add support for throttling. from [SLP] Add support for throttling. [WIP] to [SLP] Add support for throttling..
Apr 4 2020, 11:58 PM · Restricted Project
dtemirbulatov retitled D57779: [SLP] Add support for throttling. from [SLP] Add support for throttling. to [SLP] Add support for throttling. [WIP].
Apr 4 2020, 12:20 AM · Restricted Project

Apr 1 2020

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Rebased, added the following changes:

  • removed TreeState from the proposed change since after fixing getInsertCost I could not observe any regressions.
  • reduced default number of cost recalculations to 32 after noticing the new approach to find a subtree works efficiently.
  • added support for reductions.
Apr 1 2020, 12:23 PM · Restricted Project

Mar 19 2020

Herald added a reviewer for D57779: [SLP] Add support for throttling.: aartbik.

Changed getInsetCost() to correct insert cost calculation by allowing getEntryCost to handle entries that proposed to gather similarly as NeedToGather entries.

Mar 19 2020, 5:00 PM · Restricted Project
dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..
Mar 19 2020, 3:54 PM · Restricted Project
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..
Mar 19 2020, 3:22 PM · Restricted Project
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Mar 19 2020, 5:54 AM · Restricted Project

Mar 17 2020

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Rebased, Removed tree traversal approach and implemented suggestion by Alexey Bataev : "Did you think about recalculating the cost of the reduced tree instead of using a scheme with cost subtraction?", This looks like more efficient than tree traversal.

Mar 17 2020, 9:36 PM · Restricted Project

Mar 16 2020

dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

Do you have any plan to support throttling for horizontal reduction?

yes, I noticed some regression with my first implementation, but certainly, it worth adding after basic functionality.

Mar 16 2020, 3:51 PM · Restricted Project

Mar 11 2020

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Mar 11 2020, 11:18 AM · Restricted Project

Mar 10 2020

dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

Did you think about recalculating the cost of the reduced tree instead of using a scheme with cost subtraction? This looks to be a lot more natural way. I mean, in the same loop, where we try to vectorize the original tree, try to reduce the tree (+, maybe, check that the cost for the removed nodes is going to be negative) and then just recalculate the cost of the reduced tree? The current scheme looks >overcomplicated. This is just a suggestion.

I am doing now the whole tree cost substruction in the main cutPath() loop, except spill cost and we usually don't need it unless CallInst occurs. And I am thinking it is better to follow the tree structure.

Mar 10 2020, 8:39 AM · Restricted Project
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Replaced to remove_if at 5207

Mar 10 2020, 5:48 AM · Restricted Project
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Replaced auto with "SmallVector<std::unique_ptr<TreeState>, 8>::iterator " at 5207

Mar 10 2020, 4:29 AM · Restricted Project
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Mar 10 2020, 4:29 AM · Restricted Project

Mar 9 2020

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Rebased, fix regression in pr35497.ll with extra extract instruction, it was caused by partial vectorization preventing the reduction by changing BB too early. Added functionality of doing throttling as the last one but without rebuilding tree again. It is done by saving tree states for profitable trees, this could allow us to estimate which vectorization to choose based on the cost in the future.

Mar 9 2020, 1:30 PM · Restricted Project

Feb 25 2020

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Feb 25 2020, 4:06 AM · Restricted Project

Feb 22 2020

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Resolved previous remarks, except that we are still using "cost subtraction" and we don't need now to call getTreeCost() all the time we can now subtract all cost components, except spill cost, in the main path traversing loop. Fixed issue with incorrect cost calculation in getInsertCost().

Feb 22 2020, 3:54 PM · Restricted Project

Jan 12 2020

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jan 12 2020, 11:43 AM · Restricted Project

Dec 29 2019

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Dec 29 2019, 4:10 PM · Restricted Project

Dec 23 2019

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Update once again.

Dec 23 2019, 11:36 AM · Restricted Project
dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

oh, sorry, it l

Dec 23 2019, 11:33 AM · Restricted Project
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Try to restore the context.

Dec 23 2019, 11:23 AM · Restricted Project
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Rebased after committing the first part as NFC, it looks like resolved all remarks.

Dec 23 2019, 12:06 AM · Restricted Project

Dec 22 2019

dtemirbulatov committed rGa755ccefe679: [SLP] Replace NeedToGather variable with enum. (authored by dtemirbulatov).
[SLP] Replace NeedToGather variable with enum.
Dec 22 2019, 11:29 PM

Dec 19 2019

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Removed record seeds functionality.

Dec 19 2019, 12:43 PM · Restricted Project
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Dec 19 2019, 9:13 AM · Restricted Project

Dec 16 2019

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Addressed remarks.

Dec 16 2019, 11:31 PM · Restricted Project

Nov 11 2019

dtemirbulatov added inline comments to D70068: [SLP] Enhance SLPVectorizer to vectorize vector aggregate.
Nov 11 2019, 5:38 AM · Restricted Project
dtemirbulatov added inline comments to D70068: [SLP] Enhance SLPVectorizer to vectorize vector aggregate.
Nov 11 2019, 5:02 AM · Restricted Project

Nov 10 2019

dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

Re-ping

Nov 10 2019, 11:35 AM · Restricted Project