Page MenuHomePhabricator

vdmitrie (Valeriy Dmitriev)
User

Projects

User does not belong to any projects.

User Details

User Since
Aug 30 2018, 9:33 AM (117 w, 6 d)

Recent Activity

Wed, Nov 25

vdmitrie added a comment to D90445: [SLP] Make SLPVectorizer to use `llvm.masked.gather` intrinsic.

It sounds like throttling patch should resolve this issue as cutting out ScatterVectorize entry with high cost will effectively return to previous behavior.

Wed, Nov 25, 9:42 AM · Restricted Project

Mon, Nov 23

vdmitrie added a comment to D90445: [SLP] Make SLPVectorizer to use `llvm.masked.gather` intrinsic.

Current SLP has significant drawback with regard to its cost modeling. And this patch highlights it.
Consider we have four scalar loads of i8 type. With prior approach (vectorization overhead) we had cost for such entry 4 (x86 target).
With this new approach we have two entries instead of one: ScatterVectorize loads + NeedToGather GEPs. And costs for these entries are 6 and 10 respectively, thus cost increased from 4 to 16.
And the problem here is once we put this pattern into the tree it pulls cost up for the entire tree. If we have multiple such patterns over the tree their effect is magnified. These entries finally outweigh possible profit of vectorization for remaining portion of the tree and we end up not vectorizing it at all (even if downstream optimizations could probably change it into optimal code). If SLP could make choice vectorization overhead vs gather intrinsic based in their costs while building vectorizable tree the outcome could be different.

Mon, Nov 23, 11:13 AM · Restricted Project

Fri, Nov 13

vdmitrie added a comment to D82227: SLP: honor requested max vector size merging PHIs.

I am afraid that this patch actually has a bad impact on performance on SystemZ, and unfortunately this was not known until now. It would be very appreciated if we could rework this and get back the old behaviour on SystemZ somehow...

See https://bugs.llvm.org/show_bug.cgi?id=48155

Fri, Nov 13, 3:42 PM · Restricted Project

Jul 14 2020

vdmitrie added inline comments to D82444: [SLP] Make sure instructions are ordered when computing spill cost..
Jul 14 2020, 9:36 AM · Restricted Project

Jul 10 2020

vdmitrie added inline comments to D82574: Merge TableGen files used for clang options.
Jul 10 2020, 9:20 AM · Restricted Project

Jun 24 2020

vdmitrie added inline comments to D81736: [openmp] Base of tablegen generated OpenMP common declaration.
Jun 24 2020, 3:47 PM · Restricted Project, Restricted Project, Restricted Project

Jun 20 2020

vdmitrie updated subscribers of D81661: [VectorCombine] scalarize compares with insertelement operand(s).

Vector combine dies on assertion with this test case.

Jun 20 2020, 11:38 AM · Restricted Project

May 29 2020

vdmitrie committed rGa45688a72c63: [SLP] Apply external to vectorizable tree users cost adjustment for relevant… (authored by vdmitrie).
[SLP] Apply external to vectorizable tree users cost adjustment for relevant…
May 29 2020, 3:54 PM
vdmitrie closed D80773: [SLP] Apply external to vectorizable tree users cost adjustment for relevant aggregate build instructions only (UserCost)..
May 29 2020, 3:53 PM · Restricted Project
vdmitrie updated the diff for D80773: [SLP] Apply external to vectorizable tree users cost adjustment for relevant aggregate build instructions only (UserCost)..

replaced \param with \p

May 29 2020, 2:46 PM · Restricted Project
vdmitrie updated the diff for D80773: [SLP] Apply external to vectorizable tree users cost adjustment for relevant aggregate build instructions only (UserCost)..

Thank you, Alexey. I addressed your comments in new upload.

May 29 2020, 11:26 AM · Restricted Project

May 28 2020

vdmitrie created D80773: [SLP] Apply external to vectorizable tree users cost adjustment for relevant aggregate build instructions only (UserCost)..
May 28 2020, 6:43 PM · Restricted Project
vdmitrie committed rG38727bab6f13: [NFC][SLP] Add test case exposing SLP cost model bug. The bug is related to… (authored by vdmitrie).
[NFC][SLP] Add test case exposing SLP cost model bug. The bug is related to…
May 28 2020, 5:39 PM
vdmitrie closed D80682: [NFC][SLP] Add test case exposing SLP cost model bug..
May 28 2020, 5:38 PM · Restricted Project
vdmitrie added inline comments to D80682: [NFC][SLP] Add test case exposing SLP cost model bug..
May 28 2020, 5:38 PM · Restricted Project
vdmitrie updated the diff for D80682: [NFC][SLP] Add test case exposing SLP cost model bug..

Thank you for prompt review.
Updated patch to address your comments.

May 28 2020, 9:15 AM · Restricted Project

May 27 2020

vdmitrie created D80682: [NFC][SLP] Add test case exposing SLP cost model bug..
May 27 2020, 6:02 PM · Restricted Project

Apr 28 2020

vdmitrie abandoned D76956: [TTI][SLP] Add TTI interface to estimate cost of chain of vector inserts/extracts..
Apr 28 2020, 1:28 PM · Restricted Project

Apr 27 2020

vdmitrie added inline comments to D78216: [TTI] Add DemandedElts to getScalarizationOverhead.
Apr 27 2020, 3:39 PM · Restricted Project

Apr 15 2020

vdmitrie added a comment to D76956: [TTI][SLP] Add TTI interface to estimate cost of chain of vector inserts/extracts..

@vdmitrie I've created D78216 to demonstrate the approach I had in mind.

Apr 15 2020, 10:24 AM · Restricted Project

Apr 9 2020

vdmitrie added inline comments to D76956: [TTI][SLP] Add TTI interface to estimate cost of chain of vector inserts/extracts..
Apr 9 2020, 10:31 AM · Restricted Project
vdmitrie added inline comments to D76956: [TTI][SLP] Add TTI interface to estimate cost of chain of vector inserts/extracts..
Apr 9 2020, 10:26 AM · Restricted Project
vdmitrie added inline comments to D76956: [TTI][SLP] Add TTI interface to estimate cost of chain of vector inserts/extracts..
Apr 9 2020, 10:10 AM · Restricted Project

Apr 8 2020

vdmitrie added inline comments to D76956: [TTI][SLP] Add TTI interface to estimate cost of chain of vector inserts/extracts..
Apr 8 2020, 5:24 PM · Restricted Project

Apr 7 2020

vdmitrie added a comment to D76956: [TTI][SLP] Add TTI interface to estimate cost of chain of vector inserts/extracts..

ping

Apr 7 2020, 9:12 AM · Restricted Project

Mar 31 2020

vdmitrie updated the diff for D76956: [TTI][SLP] Add TTI interface to estimate cost of chain of vector inserts/extracts..

Addressed comments.

Mar 31 2020, 9:22 AM · Restricted Project
vdmitrie added inline comments to D76956: [TTI][SLP] Add TTI interface to estimate cost of chain of vector inserts/extracts..
Mar 31 2020, 9:22 AM · Restricted Project

Mar 30 2020

vdmitrie updated the diff for D76956: [TTI][SLP] Add TTI interface to estimate cost of chain of vector inserts/extracts..

clang-format

Mar 30 2020, 7:41 PM · Restricted Project
vdmitrie updated the diff for D76956: [TTI][SLP] Add TTI interface to estimate cost of chain of vector inserts/extracts..

Updated getScalarizationOverhead to use new TTI API for chained inserts/extracts.
This reduced cost overestimates in many cases brought with https://reviews.llvm.org/D74976.
Cost model tests adjusted to reflect that.
Tests Transforms/SLPVectorizer/X86/resched.ll and Transforms/LoopVectorize/X86/strided_load_cost.ll reverted to state prior to D74976.

Mar 30 2020, 5:29 PM · Restricted Project
vdmitrie added a comment to D76956: [TTI][SLP] Add TTI interface to estimate cost of chain of vector inserts/extracts..

We already have getScalarizationOverhead - can't we extend that instead?

Mar 30 2020, 10:16 AM · Restricted Project

Mar 27 2020

vdmitrie updated the diff for D76956: [TTI][SLP] Add TTI interface to estimate cost of chain of vector inserts/extracts..

Fixed format and test failures.

Mar 27 2020, 6:12 PM · Restricted Project
vdmitrie created D76956: [TTI][SLP] Add TTI interface to estimate cost of chain of vector inserts/extracts..
Mar 27 2020, 3:27 PM · Restricted Project

Feb 28 2020

vdmitrie committed rGd723ec4f0403: [SLP][NFC] Assert that tree entry operands completed when scheduler looks for… (authored by vdmitrie).
[SLP][NFC] Assert that tree entry operands completed when scheduler looks for…
Feb 28 2020, 10:42 AM
vdmitrie closed D75296: [SLP][NFC] Assert that tree entry operands completed when scheduler looks for dependencies..
Feb 28 2020, 10:41 AM · Restricted Project
vdmitrie committed rG02e5e47e170c: [SLP][NFC] Delete some unreachable code. (authored by vdmitrie).
[SLP][NFC] Delete some unreachable code.
Feb 28 2020, 9:28 AM
vdmitrie closed D75276: [SLP][NFC] Delete some unreachable code..
Feb 28 2020, 9:28 AM · Restricted Project

Feb 27 2020

vdmitrie added inline comments to D57059: [SLP] Initial support for the vectorization of the non-power-of-2 vectors..
Feb 27 2020, 1:48 PM · Restricted Project
vdmitrie added a comment to D75296: [SLP][NFC] Assert that tree entry operands completed when scheduler looks for dependencies..

SO, we have correct implementation and this is just a check to prevent possible bugs in the future?

Feb 27 2020, 1:46 PM · Restricted Project
vdmitrie added a comment to D75296: [SLP][NFC] Assert that tree entry operands completed when scheduler looks for dependencies..

Maybe it is better to implement the two-steps approach? If it may lead to a crash, it will definitely cause a crash somewhere

Feb 27 2020, 1:30 PM · Restricted Project
vdmitrie created D75296: [SLP][NFC] Assert that tree entry operands completed when scheduler looks for dependencies..
Feb 27 2020, 1:04 PM · Restricted Project
vdmitrie created D75276: [SLP][NFC] Delete some unreachable code..
Feb 27 2020, 11:35 AM · Restricted Project

Jan 17 2020

vdmitrie added inline comments to D57059: [SLP] Initial support for the vectorization of the non-power-of-2 vectors..
Jan 17 2020, 4:08 PM · Restricted Project
vdmitrie added inline comments to D57059: [SLP] Initial support for the vectorization of the non-power-of-2 vectors..
Jan 17 2020, 1:55 PM · Restricted Project

Jan 15 2020

vdmitrie added inline comments to D57059: [SLP] Initial support for the vectorization of the non-power-of-2 vectors..
Jan 15 2020, 5:20 PM · Restricted Project

Jan 13 2020

vdmitrie added inline comments to D57059: [SLP] Initial support for the vectorization of the non-power-of-2 vectors..
Jan 13 2020, 4:03 PM · Restricted Project

Dec 26 2019

vdmitrie added inline comments to D57059: [SLP] Initial support for the vectorization of the non-power-of-2 vectors..
Dec 26 2019, 3:40 PM · Restricted Project
vdmitrie added inline comments to D57059: [SLP] Initial support for the vectorization of the non-power-of-2 vectors..
Dec 26 2019, 12:05 PM · Restricted Project

Dec 12 2019

vdmitrie added a comment to D57059: [SLP] Initial support for the vectorization of the non-power-of-2 vectors..

Thanks for the reproducer. Does this one produce an incorrect result, crashes compiler or something else? What exactly?

Dec 12 2019, 11:34 AM · Restricted Project
vdmitrie added a comment to D57059: [SLP] Initial support for the vectorization of the non-power-of-2 vectors..

There is still problem with extracts.
This case shows it:
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

Dec 12 2019, 10:51 AM · Restricted Project

Dec 6 2019

vdmitrie added inline comments to D57059: [SLP] Initial support for the vectorization of the non-power-of-2 vectors..
Dec 6 2019, 9:27 AM · Restricted Project

Nov 4 2019

vdmitrie added a comment to D69812: [SLP] - Add couple safety checks to TreeEntry::dump(). NFC.

Update: I have spent some time investigating unit tests infra and finally came to conclusion that it is not quite possible to create a unit test that calls BoUpSLP::dumpVectorizableTree() as we need to construct BoUpSLP object. We are unable to do that having class forward declaration only.

Nov 4 2019, 5:42 PM · Restricted Project
vdmitrie added a comment to D69812: [SLP] - Add couple safety checks to TreeEntry::dump(). NFC.

Something like llvm/unittests/IR/DominatorTreeBatchUpdatesTest.cpp?

Nov 4 2019, 2:26 PM · Restricted Project
vdmitrie added a comment to D69812: [SLP] - Add couple safety checks to TreeEntry::dump(). NFC.

Do you have any ideas how a test might look?

unittests?

Nov 4 2019, 12:22 PM · Restricted Project
vdmitrie added a comment to D69812: [SLP] - Add couple safety checks to TreeEntry::dump(). NFC.

Tests?

Nov 4 2019, 11:07 AM · Restricted Project
vdmitrie created D69812: [SLP] - Add couple safety checks to TreeEntry::dump(). NFC.
Nov 4 2019, 10:28 AM · Restricted Project

Jun 24 2019

vdmitrie committed rGe5aaaf7bfbf7: Merge branch 'master' into intel (authored by vdmitrie).
Merge branch 'master' into intel
Jun 24 2019, 11:58 AM

May 30 2019

vdmitrie committed rG9c98ea0b4670: Merge branch 'intel' into private/sync_to_llvm_fc40cbd9d8_v2 Sync to LLVM… (authored by vdmitrie).
Merge branch 'intel' into private/sync_to_llvm_fc40cbd9d8_v2 Sync to LLVM…
May 30 2019, 8:14 AM
vdmitrie committed rG3385b53e61c0: Merge branch 'intel' into private/sync_to_llvm_fc40cbd9d8_v2 Sync to LLVM… (authored by vdmitrie).
Merge branch 'intel' into private/sync_to_llvm_fc40cbd9d8_v2 Sync to LLVM…
May 30 2019, 8:13 AM
vdmitrie committed rG429525941047: Merge branch 'private/sync_to_llvm_fc40cbd9d8_v2' of github.com:otcshare/llvm… (authored by vdmitrie).
Merge branch 'private/sync_to_llvm_fc40cbd9d8_v2' of github.com:otcshare/llvm…
May 30 2019, 8:13 AM
vdmitrie committed rGc15e387cd7a6: Merge branch 'master' into intel (authored by vdmitrie).
Merge branch 'master' into intel
May 30 2019, 8:13 AM

Dec 21 2018

vdmitrie abandoned D51552: Libraries added with add_llvm_loadable_module macro to have their component name.

Abandoned as issue was fixed with D51748

Dec 21 2018, 2:58 PM

Sep 7 2018

vdmitrie added a comment to D51552: Libraries added with add_llvm_loadable_module macro to have their component name.

I've just updated the patch with some fixes, can you try again?

Sep 7 2018, 5:49 PM
vdmitrie added a comment to D51552: Libraries added with add_llvm_loadable_module macro to have their component name.

What CMake arguments were you using?

cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD="X86" -DCMAKE_INSTALL_PREFIX="/your/install/dir" "/local/ll.org/source/root/llvm"

Sep 7 2018, 4:15 PM
vdmitrie added a comment to D51552: Libraries added with add_llvm_loadable_module macro to have their component name.

D51748 proposes refactoring this whole function and effectively makes the same change. Would you be able to test this to see if it helps your uses case?

Sep 7 2018, 2:03 PM
vdmitrie added a comment to D51552: Libraries added with add_llvm_loadable_module macro to have their component name.
In D51552#1227791, @rnk wrote:

I looked at the documentation for the cmake install command, but I still have no idea what a component is or what effect this option has. Can you elaborate on that?

Sep 7 2018, 1:25 PM
vdmitrie added a reviewer for D51552: Libraries added with add_llvm_loadable_module macro to have their component name: rnk.
Sep 7 2018, 9:10 AM

Sep 6 2018

vdmitrie added a reviewer for D51552: Libraries added with add_llvm_loadable_module macro to have their component name: chandlerc.
Sep 6 2018, 9:34 AM

Aug 31 2018

vdmitrie added reviewers for D51552: Libraries added with add_llvm_loadable_module macro to have their component name: chapuni, bogner.
Aug 31 2018, 1:17 PM
vdmitrie created D51552: Libraries added with add_llvm_loadable_module macro to have their component name.
Aug 31 2018, 11:53 AM