Page MenuHomePhabricator

igor.kirillov (Igor Kirillov)
User

Projects

User does not belong to any projects.

User Details

User Since
Sep 10 2021, 3:24 AM (72 w, 2 d)

Recent Activity

Oct 4 2022

igor.kirillov added a comment to D133687: [LoopVectorize][Fix] Crash when invariant store address is calculated inside loop.

Did you add the extra test for the regression in the original version of the patch? It looks like it wasn't included in 2d60d7ba1a26/

Oct 4 2022, 9:52 AM · Restricted Project, Restricted Project

Oct 3 2022

igor.kirillov committed rGa94a85552c9c: [LoopVectorize] Add missing test for D133687 (authored by igor.kirillov).
[LoopVectorize] Add missing test for D133687
Oct 3 2022, 6:54 AM · Restricted Project, Restricted Project

Sep 28 2022

igor.kirillov committed rG2d60d7ba1a26: [LoopVectorize][Fix] Crash when invariant store address is calculated inside… (authored by igor.kirillov).
[LoopVectorize][Fix] Crash when invariant store address is calculated inside…
Sep 28 2022, 2:38 AM · Restricted Project, Restricted Project
igor.kirillov closed D133687: [LoopVectorize][Fix] Crash when invariant store address is calculated inside loop.
Sep 28 2022, 2:38 AM · Restricted Project, Restricted Project

Sep 26 2022

igor.kirillov updated the diff for D133687: [LoopVectorize][Fix] Crash when invariant store address is calculated inside loop.

Refactor `isInvariantStoreOfReduction' check

Sep 26 2022, 2:46 PM · Restricted Project, Restricted Project

Sep 22 2022

igor.kirillov updated the diff for D133687: [LoopVectorize][Fix] Crash when invariant store address is calculated inside loop.

Update commit message

Sep 22 2022, 10:14 AM · Restricted Project, Restricted Project
igor.kirillov updated the diff for D133687: [LoopVectorize][Fix] Crash when invariant store address is calculated inside loop.

Fixes

Sep 22 2022, 5:54 AM · Restricted Project, Restricted Project

Sep 13 2022

igor.kirillov added reviewers for D133687: [LoopVectorize][Fix] Crash when invariant store address is calculated inside loop: fhahn, david-arm.
Sep 13 2022, 3:59 AM · Restricted Project, Restricted Project

Sep 12 2022

igor.kirillov updated the diff for D133687: [LoopVectorize][Fix] Crash when invariant store address is calculated inside loop.

Add an empty line to the test and a reference to the github issue

Sep 12 2022, 5:08 AM · Restricted Project, Restricted Project
igor.kirillov added a comment to D133687: [LoopVectorize][Fix] Crash when invariant store address is calculated inside loop.

This is a bug fix for - https://github.com/llvm/llvm-project/issues/57572

Sep 12 2022, 5:02 AM · Restricted Project, Restricted Project
igor.kirillov requested review of D133687: [LoopVectorize][Fix] Crash when invariant store address is calculated inside loop.
Sep 12 2022, 4:59 AM · Restricted Project, Restricted Project

Jun 7 2022

igor.kirillov added a comment to D126533: [LAA] Relax pointer dependency with runtime pointer checks .

This patch actually also enables support for the cases where we have potentially conflicting accesses that have different strides (well invariant read is technically stride equal to zero). Here's one more real-live example:

Jun 7 2022, 8:18 AM · Restricted Project, Restricted Project
igor.kirillov added a comment to D126772: [LoopVectorize] Add support for invariant stores of ordered reductions.

@igor.kirillov do you remember why this was restriction was added originally?

Jun 7 2022, 3:13 AM · Restricted Project, Restricted Project

May 5 2022

igor.kirillov committed rT2a41ecd23309: Add unit test with invariant store for vectorizer memory runtime checks (authored by igor.kirillov).
Add unit test with invariant store for vectorizer memory runtime checks
May 5 2022, 12:18 AM · Restricted Project
igor.kirillov closed D124609: Add unit test with invariant store for vectorizer memory runtime checks.
May 5 2022, 12:18 AM · Restricted Project

May 3 2022

igor.kirillov updated the diff for D124609: Add unit test with invariant store for vectorizer memory runtime checks.

Address 'nits' requests

May 3 2022, 2:36 AM · Restricted Project
igor.kirillov committed rG4e5e042d9a4a: [LoopVectorize] Support reductions that store intermediary result (authored by igor.kirillov).
[LoopVectorize] Support reductions that store intermediary result
May 3 2022, 2:13 AM · Restricted Project, Restricted Project
igor.kirillov closed D110235: [LoopVectorize] Support reductions that store intermediary result.
May 3 2022, 2:13 AM · Restricted Project, Restricted Project

Apr 28 2022

igor.kirillov added inline comments to D110235: [LoopVectorize] Support reductions that store intermediary result.
Apr 28 2022, 5:54 AM · Restricted Project, Restricted Project
igor.kirillov added a reviewer for D124609: Add unit test with invariant store for vectorizer memory runtime checks: fhahn.
Apr 28 2022, 5:49 AM · Restricted Project
igor.kirillov requested review of D124609: Add unit test with invariant store for vectorizer memory runtime checks.
Apr 28 2022, 5:47 AM · Restricted Project

Apr 27 2022

igor.kirillov added inline comments to D110235: [LoopVectorize] Support reductions that store intermediary result.
Apr 27 2022, 6:34 AM · Restricted Project, Restricted Project
igor.kirillov updated the diff for D110235: [LoopVectorize] Support reductions that store intermediary result.

Lots of updates related to the recent comments

Apr 27 2022, 6:27 AM · Restricted Project, Restricted Project

Apr 25 2022

igor.kirillov added a comment to D110235: [LoopVectorize] Support reductions that store intermediary result.

@fhahn, @david-arm ping. Also I run lnt test-suite and everything is fine and 17 more loops were vectorized according to -stats

Apr 25 2022, 3:31 AM · Restricted Project, Restricted Project

Mar 28 2022

igor.kirillov added a comment to D110235: [LoopVectorize] Support reductions that store intermediary result.

@fhahn, gentle ping :)

Mar 28 2022, 9:47 AM · Restricted Project, Restricted Project

Mar 15 2022

igor.kirillov added inline comments to D110235: [LoopVectorize] Support reductions that store intermediary result.
Mar 15 2022, 1:33 PM · Restricted Project, Restricted Project
igor.kirillov updated the diff for D110235: [LoopVectorize] Support reductions that store intermediary result.

Fix incorrectly processed case when reduction value stored in invariant could be overwritten inside loop

Mar 15 2022, 1:28 PM · Restricted Project, Restricted Project

Feb 17 2022

igor.kirillov added inline comments to D110235: [LoopVectorize] Support reductions that store intermediary result.
Feb 17 2022, 8:46 AM · Restricted Project, Restricted Project
igor.kirillov updated the diff for D110235: [LoopVectorize] Support reductions that store intermediary result.

Add full vector.body and middle.block checks for reduc_store and reduc_store_inside_unrolled tests

Feb 17 2022, 8:39 AM · Restricted Project, Restricted Project

Feb 7 2022

igor.kirillov committed rG4ae885b1e3e7: [OpenMP] kmp_atomic_float10_max_min.c test should only be executed on x86… (authored by igor.kirillov).
[OpenMP] kmp_atomic_float10_max_min.c test should only be executed on x86…
Feb 7 2022, 2:16 AM
igor.kirillov closed D118988: [OpenMP] kmp_atomic_float10_max_min.c test should only be executed on x86 platform.
Feb 7 2022, 2:16 AM · Restricted Project

Feb 4 2022

igor.kirillov added a comment to D118988: [OpenMP] kmp_atomic_float10_max_min.c test should only be executed on x86 platform.

@kkwli0 Hi, is it useful to run this test outside of x86? We on aarch64 had the same problem as the on addressed by a64797b5b81963a8d4bc73eaacabfee67c85c679. Alternatively I can just // UNSUPPORTED: aarch64 instead of // REQUIRES: x86-registered-target but there is a chance those clauses will be needed for the other architectures too.

Feb 4 2022, 7:45 AM · Restricted Project
igor.kirillov added inline comments to D110235: [LoopVectorize] Support reductions that store intermediary result.
Feb 4 2022, 6:47 AM · Restricted Project, Restricted Project
igor.kirillov updated the diff for D110235: [LoopVectorize] Support reductions that store intermediary result.

Add fix that prevents vectorization for the case when not a final reduction value stored in a loop invariant address.
Add test for this case.
Remove some unused code and rename a couple of IR variables in the reduction-with-invariant-store.ll test.
Fix incorrect phi node in reduc_store_inside_unrolled and reduc_double_invariant_store tests.

Feb 4 2022, 6:45 AM · Restricted Project, Restricted Project
igor.kirillov added a reviewer for D118988: [OpenMP] kmp_atomic_float10_max_min.c test should only be executed on x86 platform: AndreyChurbanov.
Feb 4 2022, 5:29 AM · Restricted Project
igor.kirillov requested review of D118988: [OpenMP] kmp_atomic_float10_max_min.c test should only be executed on x86 platform.
Feb 4 2022, 5:28 AM · Restricted Project

Jan 27 2022

igor.kirillov added inline comments to D110235: [LoopVectorize] Support reductions that store intermediary result.
Jan 27 2022, 1:29 PM · Restricted Project, Restricted Project
igor.kirillov updated the diff for D110235: [LoopVectorize] Support reductions that store intermediary result.

Add invariant store information to VReductionRecipe::print output

Jan 27 2022, 1:24 PM · Restricted Project, Restricted Project

Jan 25 2022

igor.kirillov updated the diff for D110235: [LoopVectorize] Support reductions that store intermediary result.

Update tests

Jan 25 2022, 2:00 AM · Restricted Project, Restricted Project

Jan 24 2022

igor.kirillov committed rGd3932c690d97: [LoopVectorize] Add tests with reductions that are stored in invariant address (authored by igor.kirillov).
[LoopVectorize] Add tests with reductions that are stored in invariant address
Jan 24 2022, 1:29 PM
igor.kirillov closed D117213: [LoopVectorize] Add tests with reductions that are stored in invariant address.
Jan 24 2022, 1:29 PM · Restricted Project
igor.kirillov added a comment to D117213: [LoopVectorize] Add tests with reductions that are stored in invariant address.

@fhahn, yes, I have access, I'll submit changes in a moment.

Jan 24 2022, 6:44 AM · Restricted Project
igor.kirillov updated the diff for D117213: [LoopVectorize] Add tests with reductions that are stored in invariant address.

Final updates

Jan 24 2022, 3:36 AM · Restricted Project

Jan 20 2022

igor.kirillov added a comment to D110235: [LoopVectorize] Support reductions that store intermediary result.

@fhahn ping

Jan 20 2022, 6:42 AM · Restricted Project, Restricted Project

Jan 13 2022

igor.kirillov added a comment to D110235: [LoopVectorize] Support reductions that store intermediary result.

@lebedev.ri This patch addresses a different problem. Here we try to handle when a reduction value is stored in some address and if this address is invariant plus other lucky conditions are satisfied we manage to vectorize. In your example address where value is stored is not invariant at all. Nevertheless, the case is interesting.

Jan 13 2022, 5:24 AM · Restricted Project, Restricted Project
igor.kirillov added a comment to D110235: [LoopVectorize] Support reductions that store intermediary result.

@fhahn I created the review with tests only here - https://reviews.llvm.org/D117213. Once it is merged I'll update this one.

Jan 13 2022, 5:09 AM · Restricted Project, Restricted Project
igor.kirillov added a reviewer for D117213: [LoopVectorize] Add tests with reductions that are stored in invariant address: fhahn.
Jan 13 2022, 5:06 AM · Restricted Project
igor.kirillov requested review of D117213: [LoopVectorize] Add tests with reductions that are stored in invariant address.
Jan 13 2022, 5:05 AM · Restricted Project
igor.kirillov added inline comments to D110235: [LoopVectorize] Support reductions that store intermediary result.
Jan 13 2022, 12:47 AM · Restricted Project, Restricted Project
igor.kirillov updated the diff for D110235: [LoopVectorize] Support reductions that store intermediary result.

Update tests, move invariant store tests into separate file, add more comments

Jan 13 2022, 12:46 AM · Restricted Project, Restricted Project

Dec 21 2021

igor.kirillov added a comment to D110235: [LoopVectorize] Support reductions that store intermediary result.

@fhahn ping

Dec 21 2021, 3:09 AM · Restricted Project, Restricted Project

Dec 6 2021

igor.kirillov added a comment to D110235: [LoopVectorize] Support reductions that store intermediary result.

Hi, @fhahn! Since there have been several quite serious changes in the patch after your last review, I would be happy to receive you approval before merge (even though status is accepted now).

Dec 6 2021, 12:09 PM · Restricted Project, Restricted Project

Nov 29 2021

igor.kirillov added inline comments to D110235: [LoopVectorize] Support reductions that store intermediary result.
Nov 29 2021, 11:09 AM · Restricted Project, Restricted Project
igor.kirillov updated the diff for D110235: [LoopVectorize] Support reductions that store intermediary result.

Lots of updates related to the recent comments

Nov 29 2021, 11:03 AM · Restricted Project, Restricted Project

Nov 26 2021

igor.kirillov committed rG08d45e6f4da0: [AArch64][SVEIntrinsicOpts] Fix: predicated SVE mul/fmul are not commutative (authored by igor.kirillov).
[AArch64][SVEIntrinsicOpts] Fix: predicated SVE mul/fmul are not commutative
Nov 26 2021, 4:42 AM
igor.kirillov closed D114577: [AArch64][SVEIntrinsicOpts] Fix: predicated SVE mul/fmul are not commutative.
Nov 26 2021, 4:41 AM · Restricted Project

Nov 25 2021

igor.kirillov updated the diff for D114577: [AArch64][SVEIntrinsicOpts] Fix: predicated SVE mul/fmul are not commutative.

Update comment

Nov 25 2021, 11:42 AM · Restricted Project
igor.kirillov added reviewers for D114577: [AArch64][SVEIntrinsicOpts] Fix: predicated SVE mul/fmul are not commutative: bsmith, peterwaller-arm, paulwalker-arm.
Nov 25 2021, 8:34 AM · Restricted Project
igor.kirillov requested review of D114577: [AArch64][SVEIntrinsicOpts] Fix: predicated SVE mul/fmul are not commutative.
Nov 25 2021, 3:42 AM · Restricted Project

Nov 23 2021

igor.kirillov updated the diff for D110235: [LoopVectorize] Support reductions that store intermediary result.

Fix typo

Nov 23 2021, 2:48 AM · Restricted Project, Restricted Project

Nov 22 2021

igor.kirillov updated the diff for D110235: [LoopVectorize] Support reductions that store intermediary result.

Little extension in a new test

Nov 22 2021, 6:49 AM · Restricted Project, Restricted Project
igor.kirillov updated the diff for D110235: [LoopVectorize] Support reductions that store intermediary result.

Add scalable reduction test

Nov 22 2021, 6:03 AM · Restricted Project, Restricted Project

Nov 18 2021

igor.kirillov added inline comments to D110235: [LoopVectorize] Support reductions that store intermediary result.
Nov 18 2021, 7:22 AM · Restricted Project, Restricted Project
igor.kirillov updated the diff for D110235: [LoopVectorize] Support reductions that store intermediary result.

Refactoring a bit

Nov 18 2021, 6:58 AM · Restricted Project, Restricted Project
igor.kirillov added inline comments to D110235: [LoopVectorize] Support reductions that store intermediary result.
Nov 18 2021, 3:30 AM · Restricted Project, Restricted Project
igor.kirillov updated the diff for D110235: [LoopVectorize] Support reductions that store intermediary result.

Add test

Nov 18 2021, 3:30 AM · Restricted Project, Restricted Project
igor.kirillov added inline comments to D110235: [LoopVectorize] Support reductions that store intermediary result.
Nov 18 2021, 3:06 AM · Restricted Project, Restricted Project
igor.kirillov updated the diff for D110235: [LoopVectorize] Support reductions that store intermediary result.

Update tests

Nov 18 2021, 1:21 AM · Restricted Project, Restricted Project

Nov 10 2021

igor.kirillov committed rG4860f6cb25bd: [OpenMP] Fix: opposite attributes could be set by -fno-inline (authored by igor.kirillov).
[OpenMP] Fix: opposite attributes could be set by -fno-inline
Nov 10 2021, 8:56 AM
igor.kirillov closed D112645: [OpenMP] Fix: opposite attributes could be set by -fno-inline.
Nov 10 2021, 8:56 AM · Restricted Project

Nov 9 2021

igor.kirillov added inline comments to D110235: [LoopVectorize] Support reductions that store intermediary result.
Nov 9 2021, 7:24 AM · Restricted Project, Restricted Project
igor.kirillov updated the diff for D110235: [LoopVectorize] Support reductions that store intermediary result.

Update intermediate store check for ordered fadd vectorization

Nov 9 2021, 7:22 AM · Restricted Project, Restricted Project

Nov 7 2021

igor.kirillov updated the summary of D110235: [LoopVectorize] Support reductions that store intermediary result.
Nov 7 2021, 5:02 AM · Restricted Project, Restricted Project
igor.kirillov added a comment to D110235: [LoopVectorize] Support reductions that store intermediary result.

Hi @igor.kirillov, is it also possible to get this working for ordered reductions, i.e.

float sum = 0;
for(i=0..N) {
  sum += src[i];
  dst[42] = sum;
}

when building with -O3? I think it might mean updating checkOrderedReductions to look through the store. If it looks too difficult to do as part of this patch we can always follow-up with a patch later.

Nov 7 2021, 5:01 AM · Restricted Project, Restricted Project
igor.kirillov updated the diff for D110235: [LoopVectorize] Support reductions that store intermediary result.

Update commit message and comments
Move storeToSameAddress to ScalarEvolution
Add fadd fast test
Do not apply patch for ordered fadd reductions

Nov 7 2021, 4:53 AM · Restricted Project, Restricted Project

Nov 1 2021

igor.kirillov updated the diff for D112645: [OpenMP] Fix: opposite attributes could be set by -fno-inline.

Remove my old test for the change

Nov 1 2021, 2:42 PM · Restricted Project
igor.kirillov updated the diff for D112645: [OpenMP] Fix: opposite attributes could be set by -fno-inline.

Update test, remove redundant code

Nov 1 2021, 2:37 PM · Restricted Project
igor.kirillov added inline comments to D112645: [OpenMP] Fix: opposite attributes could be set by -fno-inline.
Nov 1 2021, 11:54 AM · Restricted Project
igor.kirillov updated subscribers of D112645: [OpenMP] Fix: opposite attributes could be set by -fno-inline.
Nov 1 2021, 3:50 AM · Restricted Project

Oct 27 2021

igor.kirillov added inline comments to D112645: [OpenMP] Fix: opposite attributes could be set by -fno-inline.
Oct 27 2021, 11:55 AM · Restricted Project
igor.kirillov requested review of D112645: [OpenMP] Fix: opposite attributes could be set by -fno-inline.
Oct 27 2021, 11:46 AM · Restricted Project

Oct 13 2021

igor.kirillov added a comment to D110235: [LoopVectorize] Support reductions that store intermediary result.

It seems like the main problem is that we potentially bail out too early at the moment when checking for reductions due to the store, but once we generate runtime checks, sinking the store may become legal (see inline comment about loads to the same address)? If that's the case, ideally we'd just sink any such loads/stores before detecting reductions once we know they can be sunk due to runtime checks, but unfortunately I do not think that's possible with the current structure/ordering.

Oct 13 2021, 2:15 PM · Restricted Project, Restricted Project

Oct 10 2021

igor.kirillov added inline comments to D110235: [LoopVectorize] Support reductions that store intermediary result.
Oct 10 2021, 6:42 AM · Restricted Project, Restricted Project
igor.kirillov updated the diff for D110235: [LoopVectorize] Support reductions that store intermediary result.

Update comment

Oct 10 2021, 6:25 AM · Restricted Project, Restricted Project
igor.kirillov updated the diff for D110235: [LoopVectorize] Support reductions that store intermediary result.

Updating D110235

Oct 10 2021, 6:19 AM · Restricted Project, Restricted Project

Sep 27 2021

igor.kirillov added a reviewer for D110235: [LoopVectorize] Support reductions that store intermediary result: fhahn.
Sep 27 2021, 9:13 AM · Restricted Project, Restricted Project

Sep 22 2021

igor.kirillov added inline comments to D110235: [LoopVectorize] Support reductions that store intermediary result.
Sep 22 2021, 6:30 AM · Restricted Project, Restricted Project
igor.kirillov requested review of D110235: [LoopVectorize] Support reductions that store intermediary result.
Sep 22 2021, 5:51 AM · Restricted Project, Restricted Project