Page MenuHomePhabricator

dtemirbulatov (Dinar Temirbulatov)
User

Projects

User does not belong to any projects.

User Details

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

Recent Activity

Sun, Jan 12

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

Sun, Dec 29

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

Mon, Dec 23

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

Update once again.

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

oh, sorry, it l

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

Try to restore the context.

Mon, Dec 23, 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.

Mon, Dec 23, 12:06 AM · Restricted Project

Sun, Dec 22

dtemirbulatov committed rGa755ccefe679: [SLP] Replace NeedToGather variable with enum. (authored by dtemirbulatov).
[SLP] Replace NeedToGather variable with enum.
Sun, Dec 22, 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

Oct 17 2019

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Oct 17 2019, 5:07 AM · Restricted Project

Oct 15 2019

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

Rebased, Ping.

Oct 15 2019, 3:00 PM · Restricted Project

Oct 7 2019

dtemirbulatov closed D28907: [SLP] Fix for PR30787: Failure to beneficially vectorize 'copyable' elements in integer binary ops..
Oct 7 2019, 5:32 AM · Restricted Project

Oct 2 2019

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

Moved finding subtree logic out of getTreeCost() to tryPartialVectorization().

Oct 2 2019, 6:54 PM · Restricted Project

Oct 1 2019

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

Missed one change, removed braces at 3762.

Oct 1 2019, 11:07 AM · Restricted Project

Sep 30 2019

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Sep 30 2019, 2:01 AM · Restricted Project
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Sep 30 2019, 1:55 AM · Restricted Project

Sep 29 2019

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

Rebased, addressed remarks.

Sep 29 2019, 5:29 PM · Restricted Project

Sep 20 2019

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Sep 20 2019, 2:44 AM · Restricted Project

Sep 19 2019

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Sep 19 2019, 3:32 PM · Restricted Project
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Sep 19 2019, 12:45 PM · Restricted Project
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Sep 19 2019, 12:45 PM · Restricted Project

Sep 14 2019

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Sep 14 2019, 1:18 AM · Restricted Project

Sep 10 2019

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

Ping.

Sep 10 2019, 4:35 PM · Restricted Project

Sep 5 2019

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

Fixed all remarks. Also, add a solution for the same treeentry is used several times cost calculation at line 3615. Thanks for finding it.

Sep 5 2019, 2:38 AM · Restricted Project

Sep 3 2019

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

Will it work if the same treeentry is used several times in the tree? For example, in diamond merge? If the treeentry, used several times is not profitable?

I might be wrong, but I don't see any difference in terms of cost calculation for reused operations in partial or full vectorization. I mean, for example, if some group of operations has been vectorized and we plan to use those operations then we still need to calculate those operations costs, extract cost and etc. One another thing we don't want to calculate insert costs for the cost of gathering canceled elements(see getInsertCost()) for reused operations since those operations have been already vectorized anyway, I will fix that.

Sep 3 2019, 5:20 PM · Restricted Project

Sep 1 2019

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

Added link to the article.

Sep 1 2019, 2:05 PM · Restricted Project
dtemirbulatov added a comment to D37648: [SLPVectorizer] Fix PR21780 Expansion of 256 bit vector loads fails to fold into shuffles.

Abandon this? I think this is being handled by the (WIP) Attributor work to support dereference

no, I think I can rebase the change.

Sep 1 2019, 1:55 PM

Aug 31 2019

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Aug 31 2019, 7:32 PM · Restricted Project
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Fixed remarks, rebased.

Aug 31 2019, 7:18 PM · Restricted Project

Aug 25 2019

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

This was due to deciding to vectorize the whole tree(not partially) while revisiting seeds for partial vectorization. Fixed at line 3789.

oh, the decision for the whole vectorization was due to other changes in the BB.

Aug 25 2019, 8:25 PM · Restricted Project
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Fixed regression issue on 401.bzip2 and others. This was due to deciding to vectorize the whole tree(not partially) while revisiting seeds for partial vectorization. Fixed at line 3789.
Here are Spec 2006 INT results:
before:
400.perlbench 9770 249 39.3 *
401.bzip2 9650 311 31.1 *
403.gcc 8050 191 42.1 *
429.mcf 9120 217 42.0 *
445.gobmk 10490 330 31.8 *
456.hmmer 9330 267 35.0 *
458.sjeng 12100 394 30.7 *
462.libquantum 20720 241 85.9 *
464.h264ref 22130 334 66.2 *
471.omnetpp 6250 249 25.1 *
473.astar 7020 284 24.7 *
483.xalancbmk 6900 170 40.7 *
Est. SPECint(R)_base2006 38.5
Est. SPECint2006 Not Run

Aug 25 2019, 7:15 PM · Restricted Project

Aug 23 2019

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

Some of the results are worse than without the patch. Can we investigate why?

yes, I will focus on 401.bzip2, 429.mcf. but this SLP throttling supposes be off by default and it on here just to show the impact on tests.

Even if it off by default, I don't think it is a good idea to have the code that may lead to regressions when we could avoid that.

Aug 23 2019, 5:06 AM · Restricted Project
dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

Some of the results are worse than without the patch. Can we investigate why?

yes, I will focus on 401.bzip2, 429.mcf. but this SLP throttling supposes be off by default and it on here just to show the impact on tests.

Aug 23 2019, 4:38 AM · Restricted Project
dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

Here is SPEC CPU 2006 INT results:

Aug 23 2019, 3:48 AM · Restricted Project

Aug 22 2019

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

ping

Aug 22 2019, 6:51 AM · Restricted Project

Aug 19 2019

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

rebased.

Aug 19 2019, 5:51 PM · Restricted Project
dtemirbulatov committed rG081c57989e88: [SLP][NFC] Avoid repetitive calls to getSameOpcode() (authored by dtemirbulatov).
[SLP][NFC] Avoid repetitive calls to getSameOpcode()
Aug 19 2019, 5:24 PM
dtemirbulatov added a comment to D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..

ping

Aug 19 2019, 5:02 AM · Restricted Project
dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

I wanted to see if this patch would help with a problem that I'm looking at, but I get this error when trying to build:

Yes, it should be "llvm::" , I will rebase the patch and I am thinking to suggest to you this solution in D64142.

Aug 19 2019, 5:02 AM · Restricted Project

Aug 16 2019

dtemirbulatov updated the diff for D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..

Rebased.

Aug 16 2019, 3:33 PM · Restricted Project
dtemirbulatov added a comment to D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..

Ping.

Aug 16 2019, 12:31 PM · Restricted Project

Aug 15 2019

dtemirbulatov added a comment to D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..

looks good to me.

Aug 15 2019, 4:34 AM · Restricted Project

Aug 14 2019

dtemirbulatov updated the diff for D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..

rebased.

Aug 14 2019, 2:01 PM · Restricted Project
dtemirbulatov committed rGda0435a69007: [SLP][NFC] Use pointers to address to ScalarToTreeEntry elements, instead of… (authored by dtemirbulatov).
[SLP][NFC] Use pointers to address to ScalarToTreeEntry elements, instead of…
Aug 14 2019, 12:48 PM
dtemirbulatov updated the diff for D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..

fixed formatting issue at line 1308.

Aug 14 2019, 8:08 AM · Restricted Project
dtemirbulatov updated the diff for D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..

Fixed remarks.

Aug 14 2019, 7:31 AM · Restricted Project
dtemirbulatov added inline comments to D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..
Aug 14 2019, 6:13 AM · Restricted Project

Aug 12 2019

dtemirbulatov updated the diff for D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..

Fixed remarks.

Aug 12 2019, 2:09 PM · Restricted Project

Aug 5 2019

dtemirbulatov updated the diff for D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..

Fixed all previous remarks, rebased.

Aug 5 2019, 12:57 AM · Restricted Project

Aug 2 2019

dtemirbulatov added a comment to D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..

Ping

Aug 2 2019, 5:38 AM · Restricted Project

Jul 30 2019

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

Fixed typo at line 123.

Jul 30 2019, 5:49 AM · Restricted Project

Jul 28 2019

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

rebased.

Jul 28 2019, 6:33 AM · Restricted Project

Jul 26 2019

dtemirbulatov updated the diff for D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..

Rebased, fixed previous remarks. Here we still have InstructionsState and I have the full change with the state in TreeEntry but I prefer to break it in several reviews.

Jul 26 2019, 3:47 AM · Restricted Project

Jul 23 2019

dtemirbulatov added a comment to D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..

Looks good to me, just tryScheduleBundle() function type. I think we could simplify it later, @RKSimon @ABataev any comments?

Jul 23 2019, 9:00 AM · Restricted Project

Jul 22 2019

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

Ping, if approved I am going to commit with "slp-throttling" disabled by default, it is enabled just to show the impact on the test.

Jul 22 2019, 4:06 PM · Restricted Project

Jul 15 2019

dtemirbulatov added inline comments to D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..
Jul 15 2019, 3:47 PM · Restricted Project

Jul 13 2019

dtemirbulatov created D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..
Jul 13 2019, 7:24 PM · Restricted Project

Jul 12 2019

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

Ping

Jul 12 2019, 10:32 AM · Restricted Project

Jul 6 2019

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jul 6 2019, 7:00 PM · Restricted Project
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Rebased.

Jul 6 2019, 6:54 PM · Restricted Project

Jul 3 2019

dtemirbulatov added a comment to D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..

Overall, I don't see any issues with linking TreeEntry and SchedularData with lane information.

Jul 3 2019, 4:53 PM · Restricted Project
dtemirbulatov added a comment to D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..
Jul 3 2019, 4:51 PM · Restricted Project

Jul 2 2019

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

Rebased, updated incorrect comment in treeTraversal() function.

Jul 2 2019, 11:28 AM · Restricted Project

Jun 29 2019

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

Fixed issue with visiting the same node twice also added the assertation that we are not visiting any node twice and the assertion that all proposed nodes were visited.

Jun 29 2019, 5:42 PM · Restricted Project
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Fixed incorrect algorithm implementation in findSubTree() fundction.

Jun 29 2019, 7:26 AM · Restricted Project

Jun 26 2019

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

Rebased and addressed previous remarks.

Jun 26 2019, 4:32 PM · Restricted Project

Jun 13 2019

dtemirbulatov accepted D60897: [SLP] Look-ahead operand reordering heuristic..

LGTM.

Jun 13 2019, 5:39 AM · Restricted Project

Jun 12 2019

dtemirbulatov added a comment to D60897: [SLP] Look-ahead operand reordering heuristic..

hmm, I have another failure with this change on my setup, now it is PR39774.ll. Probably, it might be sort algorithm differents of similar, since it just swap of two inserts. I don't have this failure if PR39774.ll is intact.

Jun 12 2019, 6:07 PM · Restricted Project
dtemirbulatov committed rGb2f45ba1e8ac: [SLP] Update propagate_ir_flags.ll test to check that we do retain the common… (authored by dtemirbulatov).
[SLP] Update propagate_ir_flags.ll test to check that we do retain the common…
Jun 12 2019, 5:19 PM
dtemirbulatov added a comment to D62938: [SLP] Forbid to vectorize bundles with same opcode but different IR flags.

Please can you add a better explanation of the problem to the description of the patch?
I'm not sure what the problem is, you are allowed to drop nuw/nsw flags: https://rise4fun.com/Alive/plNm
So the new vectorized binop should simply take the smallest common subset of flags, which likely most often means no flags.

@dtemirbulatov It might be worth adding tests that check that we do retain the common subset?

Jun 12 2019, 5:18 PM
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jun 12 2019, 11:26 AM · Restricted Project
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jun 12 2019, 11:15 AM · Restricted Project
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jun 12 2019, 8:23 AM · Restricted Project

Jun 11 2019

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jun 11 2019, 12:35 PM · Restricted Project
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jun 11 2019, 12:27 PM · Restricted Project
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jun 11 2019, 12:21 PM · Restricted Project
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jun 11 2019, 11:19 AM · Restricted Project
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jun 11 2019, 11:15 AM · Restricted Project
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

fixed a typo.

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

Rebased, fixed all remarks.

Jun 11 2019, 10:32 AM · Restricted Project

Jun 6 2019

dtemirbulatov added a comment to D62938: [SLP] Forbid to vectorize bundles with same opcode but different IR flags.

Please can you add a better explanation of the problem to the description of the patch?
I'm not sure what the problem is, you are allowed to drop nuw/nsw flags: https://rise4fun.com/Alive/plNm
So the new vectorized binop should simply take the smallest common subset of flags, which likely most often means no flags.

@dtemirbulatov It might be worth adding tests that check that we do retain the common subset?

Jun 6 2019, 4:42 PM
dtemirbulatov abandoned D62938: [SLP] Forbid to vectorize bundles with same opcode but different IR flags.

Please can you add a better explanation of the problem to the description of the patch?
I'm not sure what the problem is, you are allowed to drop nuw/nsw flags: https://rise4fun.com/Alive/plNm
So the new vectorized binop should simply take the smallest common subset of flags, which likely most often means no flags.

Jun 6 2019, 12:06 PM

Jun 5 2019

dtemirbulatov created D62938: [SLP] Forbid to vectorize bundles with same opcode but different IR flags.
Jun 5 2019, 6:57 PM
dtemirbulatov committed rG15c657d13d6f: [SLP] Fix regression in broadcasts caused by operand reordering patch D59973. (authored by dtemirbulatov).
[SLP] Fix regression in broadcasts caused by operand reordering patch D59973.
Jun 5 2019, 8:25 AM

Jun 4 2019

dtemirbulatov accepted D62427: [SLP] Fix regression in broadcasts caused by operand reordering patch D59973..

LGTM.

Jun 4 2019, 7:06 AM · Restricted Project
dtemirbulatov added a comment to D62427: [SLP] Fix regression in broadcasts caused by operand reordering patch D59973..

looks good to me.

Jun 4 2019, 7:03 AM · Restricted Project

Jun 3 2019

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jun 3 2019, 6:01 AM · Restricted Project

Jun 1 2019

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

Addressing last remarks, rebased.

Jun 1 2019, 9:49 PM · Restricted Project

May 28 2019

dtemirbulatov added inline comments to D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..
May 28 2019, 2:49 PM · Restricted Project
dtemirbulatov added inline comments to D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..
May 28 2019, 12:54 PM · Restricted Project
dtemirbulatov added inline comments to D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..
May 28 2019, 12:22 PM · Restricted Project

May 23 2019

dtemirbulatov added a comment to D60897: [SLP] Look-ahead operand reordering heuristic..

oh, I notice some regression with the change for AArch64/matmul.ll and AArch64/transpose.ll. Maybe there is a way to isolate it with heuristics?

May 23 2019, 12:00 PM · Restricted Project

May 22 2019

dtemirbulatov added inline comments to D60897: [SLP] Look-ahead operand reordering heuristic..
May 22 2019, 12:28 PM · Restricted Project

May 21 2019

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

I think the first throttling patch should implement a very simple and fast algorithm for finding the cut:

  1. Add new fields to TreeEntry for Cost, ExtractCost and PredecessorsCost.
  2. During getTreeCost() set the TE.Cost and TE.ExtractCost (as you did in an earlier version of the patch if I am not mistaken)
  3. Do a single top-down traversal of the tree in reverse postorder and set the TE.PredecessorsCost equal to the cost of all the predecessor's costs until TE. While doing so, you can compare the cost of cutting just below TE by comparing the gather cost of TE versus the Cost + PredecessorsCost. This is very fast as you only need to visit each TreeEntry node once, so the complexity is linear to the size of the tree.

    For example, in slp-throttle.ll the bundle that needs to be scalarized [%add19, %sub22] has costs of Cost=1, ExtractCost = 0, PredecessorsCost=1 (because of bundle [%mul18, undef]). Cutting below the bundle has a cost of +1, while keeping it vectorized has a cost of +2 (Cost=1 + PredecessorsCost=1).

    This should be good-enough for most simple cases. We can improve it later, if needed, with follow-up patches. What do you think?

yes, Looks good.

May 21 2019, 6:33 AM · Restricted Project

May 20 2019

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
May 20 2019, 5:11 PM · Restricted Project
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
May 20 2019, 5:08 PM · Restricted Project