Page MenuHomePhabricator

vporpo (Vasileios Porpodas)
User

Projects

User does not belong to any projects.

User Details

User Since
Apr 12 2016, 8:44 PM (182 w, 4 d)

Recent Activity

Sat, Sep 14

vporpo added inline comments to D57779: [SLP] Add support for throttling..
Sat, Sep 14, 11:20 AM

Sep 13 2019

vporpo added inline comments to D57779: [SLP] Add support for throttling..
Sep 13 2019, 11:39 AM

Aug 22 2019

vporpo updated the diff for D63661: [SLPVectorizer] Operand reordering across multiple instructions..

Rebased.

Aug 22 2019, 10:38 AM · Restricted Project

Aug 19 2019

vporpo added a comment to D63661: [SLPVectorizer] Operand reordering across multiple instructions..

@RKSimon Yes, I will update this patch in a day or two.

Aug 19 2019, 5:17 PM · Restricted Project

Aug 16 2019

vporpo committed rG1d254f3dae64: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands. (authored by vporpo).
[SLPVectorizer] Make the scheduler aware of the TreeEntry operands.
Aug 16 2019, 10:27 AM
vporpo committed rL369131: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..
[SLPVectorizer] Make the scheduler aware of the TreeEntry operands.
Aug 16 2019, 10:26 AM
vporpo closed D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..
Aug 16 2019, 10:26 AM · Restricted Project

Aug 15 2019

vporpo updated the diff for D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..

Addressed latest comments

Aug 15 2019, 12:55 PM · Restricted Project

Aug 4 2019

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

Just a couple more comments.

Aug 4 2019, 1:07 PM · Restricted Project

Jul 31 2019

vporpo updated the diff for D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..

Addressed comments.

Jul 31 2019, 11:27 AM · Restricted Project

Jul 30 2019

vporpo updated the diff for D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..

Addressed comments.

Jul 30 2019, 11:08 AM · Restricted Project

Jul 29 2019

vporpo added inline comments to D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..
Jul 29 2019, 4:48 PM · Restricted Project
vporpo updated the diff for D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..

Addressed comments (and rebased).

Jul 29 2019, 4:47 PM · Restricted Project

Jul 15 2019

vporpo added inline comments to D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..
Jul 15 2019, 11:54 AM · Restricted Project

Jul 12 2019

vporpo added a comment to D64523: [SLPVectorizer] Fix getSpillCost() calculation.

No, there is no single BB. There can be more than one operand BBs that will have to be walked. For example, a TreeEntry in BB0 could have all its left operands in BB1 and all its right operands in BB2. In such case we would need to walk through both of them and perhaps keep the maximum cost? But anyway, given the lack of accuracy in the spill cost estimation I am not sure this is worth the trouble.

Jul 12 2019, 3:06 PM · Restricted Project
vporpo added a comment to D64523: [SLPVectorizer] Fix getSpillCost() calculation.

I guess it would be better if it visited all the BBs. You could traverse the VectorizableTree once and collect the BBs to be visited before you walk through them. Btw the TreeEntries now have operands, which can help you collect the BBs in the right order.
But I am not sure this is worth the trouble, because it looks to me that the spill cost estimation function is not very accurate in the first place. It only considers the spill cost over calls, and while doing so it is not comparing it against the spill cost of the scalar code, which if I am not mistaken could be equal to that of the vector code in many cases. Someone who knows more about the assumptions made here should probably comment on it.

Jul 12 2019, 2:20 PM · Restricted Project

Jul 3 2019

vporpo updated the diff for D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..

Rebased.

Jul 3 2019, 2:59 PM · Restricted Project
vporpo added a comment to D64142: [SLP] try to create vector loads from bitcasted scalar pointers.

Thanks for sharing the example.

Jul 3 2019, 12:11 PM · Restricted Project
vporpo added a comment to D64142: [SLP] try to create vector loads from bitcasted scalar pointers.

I am probably missing out something, but isn't this profitable only if we have more than one of these scalar loads extracting from the same vector load? Perhaps we could use these scalar loads as seeds and do short top-down SLP?
Also isn't it better to run this after vectorizeStoreChains() ?

Jul 3 2019, 11:21 AM · Restricted Project

Jul 2 2019

vporpo committed rGcf47ff5ffb1a: [SLP] Recommit: Look-ahead operand reordering heuristic. (authored by vporpo).
[SLP] Recommit: Look-ahead operand reordering heuristic.
Jul 2 2019, 1:21 PM
vporpo committed rL364964: [SLP] Recommit: Look-ahead operand reordering heuristic..
[SLP] Recommit: Look-ahead operand reordering heuristic.
Jul 2 2019, 1:21 PM
vporpo closed D60897: [SLP] Look-ahead operand reordering heuristic..
Jul 2 2019, 1:21 PM · Restricted Project

Jul 1 2019

vporpo abandoned D63948: [SLP] Limit compilation time of look-ahead operand reordering heuristic..

Abandoning this patch. The fix can now be found in D60897.

Jul 1 2019, 3:13 PM · Restricted Project
vporpo updated the diff for D60897: [SLP] Look-ahead operand reordering heuristic..

Fixed the compilation-time issue with the introduction of the user budget limit from D63948. Also added lit test for it.

Jul 1 2019, 3:07 PM · Restricted Project
vporpo added a comment to D63948: [SLP] Limit compilation time of look-ahead operand reordering heuristic..

OK let me try to create a test that causes a change in the IR.

Jul 1 2019, 12:29 PM · Restricted Project
vporpo added a comment to D63948: [SLP] Limit compilation time of look-ahead operand reordering heuristic..

Not sure what kind of test would be suitable for this change. It simply restricts the look-ahead heuristic to not visit more than 2 operands and 2 uses, which is not something visible in the output IR.

Jul 1 2019, 12:05 PM · Restricted Project
vporpo added a comment to D63948: [SLP] Limit compilation time of look-ahead operand reordering heuristic..

Let's ping some of the reviewers.
@RKSimon @ABataev @dtemirbulatov any comments?

Jul 1 2019, 11:51 AM · Restricted Project

Jun 28 2019

vporpo updated the diff for D63948: [SLP] Limit compilation time of look-ahead operand reordering heuristic..

Updated option variable names.

Jun 28 2019, 5:03 PM · Restricted Project
vporpo added inline comments to D63948: [SLP] Limit compilation time of look-ahead operand reordering heuristic..
Jun 28 2019, 5:02 PM · Restricted Project
vporpo added a comment to D60897: [SLP] Look-ahead operand reordering heuristic..

The fix for the compilation-time issue reported by @phosek is in D63948 .

Jun 28 2019, 4:15 PM · Restricted Project
vporpo added reviewers for D63948: [SLP] Limit compilation time of look-ahead operand reordering heuristic.: dtemirbulatov, ABataev, spatel, lebedev.ri.
Jun 28 2019, 3:45 PM · Restricted Project
vporpo added a comment to D63948: [SLP] Limit compilation time of look-ahead operand reordering heuristic..

Thank you @phosek for testing it, I am glad it fixed the issue.
Let me add reviewers. I will push the change as soon as it gets approved by someone.

Jun 28 2019, 3:45 PM · Restricted Project
vporpo added a comment to D63948: [SLP] Limit compilation time of look-ahead operand reordering heuristic..

Oops sorry about that @phosek . I wonder how none of the lit tests failed. Please try this one.

Jun 28 2019, 2:12 PM · Restricted Project
vporpo updated the diff for D63948: [SLP] Limit compilation time of look-ahead operand reordering heuristic..

Fixed the failure.

Jun 28 2019, 2:12 PM · Restricted Project
vporpo added a comment to D63948: [SLP] Limit compilation time of look-ahead operand reordering heuristic..

Yes, I agree @lebedev.ri they should be options with some documentation describing what they do.
Let's first get a confirmation that this is the actual cause of the compilation-time increase.

Jun 28 2019, 12:50 PM · Restricted Project
vporpo added a reviewer for D63948: [SLP] Limit compilation time of look-ahead operand reordering heuristic.: RKSimon.
Jun 28 2019, 11:50 AM · Restricted Project
vporpo added a comment to D63948: [SLP] Limit compilation time of look-ahead operand reordering heuristic..

Please try this patch @phosek . Please let us know if it fixes the compilation-time issue. Thanks!

Jun 28 2019, 11:44 AM · Restricted Project
vporpo created D63948: [SLP] Limit compilation time of look-ahead operand reordering heuristic..
Jun 28 2019, 11:43 AM · Restricted Project
vporpo added a comment to D60897: [SLP] Look-ahead operand reordering heuristic..

Thanks, that would be really helpful @phosek . Let me create the quick patch.

Jun 28 2019, 11:15 AM · Restricted Project
vporpo added a comment to D60897: [SLP] Look-ahead operand reordering heuristic..

I think There are two possible causes for the compilation time increase:

  1. Line 901 : We can restrict the number of operands to a max of 2
  2. Line 820: We can restrict the visited users to a ma x of 2.

I can either create a quick patch, or I can revert it. Either is fine.

Jun 28 2019, 10:00 AM · Restricted Project

Jun 27 2019

vporpo updated the diff for D63661: [SLPVectorizer] Operand reordering across multiple instructions..

Rebased.

Jun 27 2019, 11:33 AM · Restricted Project
vporpo updated the diff for D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..

Rebased.

Jun 27 2019, 11:07 AM · Restricted Project

Jun 26 2019

vporpo committed rG574cb0eb3a7a: [SLP] Look-ahead operand reordering heuristic. (authored by vporpo).
[SLP] Look-ahead operand reordering heuristic.
Jun 26 2019, 2:31 PM
vporpo committed rL364478: [SLP] Look-ahead operand reordering heuristic..
[SLP] Look-ahead operand reordering heuristic.
Jun 26 2019, 2:30 PM
vporpo closed D60897: [SLP] Look-ahead operand reordering heuristic..
Jun 26 2019, 2:30 PM · Restricted Project

Jun 25 2019

vporpo updated the diff for D63661: [SLPVectorizer] Operand reordering across multiple instructions..

Addressed comments and rebased.

Jun 25 2019, 11:06 AM · Restricted Project
vporpo added inline comments to D63661: [SLPVectorizer] Operand reordering across multiple instructions..
Jun 25 2019, 11:06 AM · Restricted Project
vporpo added inline comments to D60897: [SLP] Look-ahead operand reordering heuristic..
Jun 25 2019, 1:18 AM · Restricted Project
vporpo updated the diff for D60897: [SLP] Look-ahead operand reordering heuristic..

Fixed crash in chromium reported by @rnk.

Jun 25 2019, 1:08 AM · Restricted Project
vporpo added a comment to D60897: [SLP] Look-ahead operand reordering heuristic..

Yes, @RKSimon . It was posted in llvm-commits. I did reproduce it and I will update the patch with the fix + lit test.

Jun 25 2019, 12:36 AM · Restricted Project
vporpo reopened D60897: [SLP] Look-ahead operand reordering heuristic..

This was reverted in r364111 since it was causing a failure in Chromium reported by @rnk.

Jun 25 2019, 12:07 AM · Restricted Project

Jun 24 2019

vporpo committed rG3081f78776ac: [SLP] NFC: Fixed typo in comment (authored by vporpo).
[SLP] NFC: Fixed typo in comment
Jun 24 2019, 2:42 PM
vporpo committed rL364237: [SLP] NFC: Fixed typo in comment.
[SLP] NFC: Fixed typo in comment
Jun 24 2019, 2:41 PM

Jun 21 2019

vporpo added a comment to D63664: [SLPVectorizer] Precommit of supernode.ll test for D63661.

Please commit the patch, I don't have commit access.

Jun 21 2019, 12:33 PM · Restricted Project
vporpo created D63664: [SLPVectorizer] Precommit of supernode.ll test for D63661.
Jun 21 2019, 12:31 PM · Restricted Project
vporpo created D63661: [SLPVectorizer] Operand reordering across multiple instructions..
Jun 21 2019, 11:50 AM · Restricted Project
vporpo updated the diff for D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..

Rebased.

Jun 21 2019, 11:16 AM · Restricted Project
vporpo added a comment to D60897: [SLP] Look-ahead operand reordering heuristic..

Thank you for the reviews. Please commit the patch.

Jun 21 2019, 9:27 AM · Restricted Project

Jun 20 2019

vporpo updated the diff for D60897: [SLP] Look-ahead operand reordering heuristic..

Rebased

Jun 20 2019, 11:17 AM · Restricted Project

Jun 13 2019

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

@ABataev @RKSimon any comments?

Jun 13 2019, 2:18 PM · Restricted Project

Jun 12 2019

vporpo added inline comments to D57779: [SLP] Add support for throttling..
Jun 12 2019, 7:58 PM
vporpo added a comment to D60897: [SLP] Look-ahead operand reordering heuristic..

Hmm I am now getting the same failure as you @dtemirbulatov . I am not sure what was wrong before, but it seems that the change in PR39774.ll is no longer needed.

Jun 12 2019, 7:50 PM · Restricted Project
vporpo updated the diff for D60897: [SLP] Look-ahead operand reordering heuristic..

Removed changes in PR39774.ll.

Jun 12 2019, 7:45 PM · Restricted Project

Jun 11 2019

vporpo updated the diff for D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..

Rebased.

Jun 11 2019, 2:28 PM · Restricted Project
vporpo added inline comments to D57779: [SLP] Add support for throttling..
Jun 11 2019, 1:40 PM
vporpo added inline comments to D57779: [SLP] Add support for throttling..
Jun 11 2019, 11:30 AM

Jun 5 2019

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

I am not sure about the value safety assumptions here. Is there any unsafe-math flag that would allow us to override the integer overflow flags?

Jun 5 2019, 9:10 PM
vporpo updated the diff for D60897: [SLP] Look-ahead operand reordering heuristic..

Rebased.

Jun 5 2019, 1:43 PM · Restricted Project

Jun 4 2019

vporpo added a comment to D62427: [SLP] Fix regression in broadcasts caused by operand reordering patch D59973..

Thank you for the reviews. Please commit it if @ABataev is also happy with it.

Jun 4 2019, 11:03 AM · Restricted Project

May 31 2019

vporpo updated subscribers of D62427: [SLP] Fix regression in broadcasts caused by operand reordering patch D59973..
May 31 2019, 4:33 PM · Restricted Project
vporpo updated subscribers of D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..
May 31 2019, 4:02 PM · Restricted Project
vporpo updated the diff for D60897: [SLP] Look-ahead operand reordering heuristic..

I investigated the two AArch64 failing tests. These tests feature the exact problem that we are trying to solve with this look-ahead heuristic. A commutative instruction had operands of the same opcode that the current heuristic has no way of reordering in an informed way. The current reordering was just lucky to pick the proper one, while the look-ahead heuristic was reordering the operands according to the score. However, the problem was that the score calculation was not considering external uses and was therefore favoring a sub-optimal operand ordering.

May 31 2019, 2:55 PM · Restricted Project

May 30 2019

vporpo updated the diff for D62427: [SLP] Fix regression in broadcasts caused by operand reordering patch D59973..

Addressed the review comments.

May 30 2019, 1:35 PM · Restricted Project
vporpo added inline comments to D62427: [SLP] Fix regression in broadcasts caused by operand reordering patch D59973..
May 30 2019, 1:32 PM · Restricted Project
vporpo added inline comments to D62427: [SLP] Fix regression in broadcasts caused by operand reordering patch D59973..
May 30 2019, 12:16 PM · Restricted Project

May 29 2019

vporpo updated the diff for D62427: [SLP] Fix regression in broadcasts caused by operand reordering patch D59973..

Rebased.

May 29 2019, 11:37 AM · Restricted Project

May 28 2019

vporpo added inline comments to D62272: [LoopUtils][SLPVectorizer] clean up management of fast-math-flags.
May 28 2019, 3:49 PM · Restricted Project
vporpo updated the diff for D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..

Addressed @dtemirbulatov 's comment.

May 28 2019, 3:12 PM · Restricted Project
vporpo added inline comments to D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..
May 28 2019, 3:02 PM · Restricted Project
vporpo added inline comments to D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..
May 28 2019, 1:23 PM · Restricted Project
vporpo added a comment to D62427: [SLP] Fix regression in broadcasts caused by operand reordering patch D59973..

Thanks for committing the test @RKSimon . I will follow up on this soon.

May 28 2019, 12:55 PM · Restricted Project
vporpo added inline comments to D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..
May 28 2019, 12:43 PM · Restricted Project

May 24 2019

vporpo updated the diff for D62427: [SLP] Fix regression in broadcasts caused by operand reordering patch D59973..

Minor comment update.

May 24 2019, 5:26 PM · Restricted Project
vporpo created D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..
May 24 2019, 3:45 PM · Restricted Project
vporpo created D62427: [SLP] Fix regression in broadcasts caused by operand reordering patch D59973..
May 24 2019, 2:11 PM · Restricted Project

May 23 2019

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

Yes, I will take a look. Maybe it is worth using TTI for the scores after all.

May 23 2019, 12:15 PM · Restricted Project

May 21 2019

vporpo updated the diff for D60897: [SLP] Look-ahead operand reordering heuristic..

Rebased.

May 21 2019, 12:07 PM · Restricted Project

May 20 2019

vporpo 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.
May 20 2019, 2:38 PM

May 18 2019

vporpo added a comment to D61795: [SLP] Refactoring of EdgeInfo and UserTreeIdx in buildTree_rec()..

Thanks for the review. Please commit the change.

May 18 2019, 5:31 PM · Restricted Project

May 17 2019

vporpo updated the diff for D61795: [SLP] Refactoring of EdgeInfo and UserTreeIdx in buildTree_rec()..

Minor change: Fixed double printing of TreeEntry index in the dumpVectorizableTree() debug function.

May 17 2019, 4:28 PM · Restricted Project

May 10 2019

vporpo created D61795: [SLP] Refactoring of EdgeInfo and UserTreeIdx in buildTree_rec()..
May 10 2019, 11:17 AM · Restricted Project
vporpo added a comment to D61706: [SLP] Refactor VectorizableTree to use unique_ptr..

Thanks for the review. Please commit the change, I don't have commit access.

May 10 2019, 8:33 AM · Restricted Project

May 9 2019

vporpo updated the diff for D61706: [SLP] Refactor VectorizableTree to use unique_ptr..

Fixed the formatting issue.

May 9 2019, 10:42 PM · Restricted Project

May 8 2019

vporpo created D61706: [SLP] Refactor VectorizableTree to use unique_ptr..
May 8 2019, 4:26 PM · Restricted Project

May 7 2019

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

Please try not to introduce a new Node structure or a new graph. You can use TreeEntry instead and you can add any necessary fields to it.

May 7 2019, 7:51 PM

May 3 2019

vporpo updated the diff for D60897: [SLP] Look-ahead operand reordering heuristic..

Updated getBestOperand() to use getLookAheadScore() for Load and Constant, not just Opcode.

May 3 2019, 6:42 PM · Restricted Project

May 1 2019

vporpo updated the diff for D60897: [SLP] Look-ahead operand reordering heuristic..

Addressed comments and updated lit test.

May 1 2019, 6:40 PM · Restricted Project
vporpo added inline comments to D60897: [SLP] Look-ahead operand reordering heuristic..
May 1 2019, 6:40 PM · Restricted Project

Apr 30 2019

vporpo updated the diff for D60897: [SLP] Look-ahead operand reordering heuristic..

Rebased.

Apr 30 2019, 10:23 AM · Restricted Project

Apr 29 2019

vporpo added a comment to D61283: [SLP] Lit test that cannot get vectorized due to lack of look-ahead operand reordering heuristic. .

@ABataev requested this to be checked in before the look-ahead patch. Please commit this if it looks good, I don't have commit access.

Apr 29 2019, 3:52 PM · Restricted Project