Page MenuHomePhabricator
Feed Advanced Search

Mar 15 2023

alonkom added a comment to D144947: [SCEV] Preserve divisibility and min/max information in applyLoopGuards.

@mkazantsev I made some changes due to the rebase on https://reviews.llvm.org/D145230 which was merged recently.
Should be ok, but let me know if it looks fine to you

Mar 15 2023, 8:39 AM · Restricted Project, Restricted Project
alonkom updated the diff for D144947: [SCEV] Preserve divisibility and min/max information in applyLoopGuards.
Mar 15 2023, 7:30 AM · Restricted Project, Restricted Project

Mar 13 2023

alonkom added a comment to D144947: [SCEV] Preserve divisibility and min/max information in applyLoopGuards.

@mkazantsev let me know if you have any other comments

Mar 13 2023, 11:38 PM · Restricted Project, Restricted Project

Mar 12 2023

alonkom updated the diff for D144947: [SCEV] Preserve divisibility and min/max information in applyLoopGuards.
Mar 12 2023, 6:41 AM · Restricted Project, Restricted Project

Mar 5 2023

alonkom added inline comments to D144947: [SCEV] Preserve divisibility and min/max information in applyLoopGuards.
Mar 5 2023, 1:51 AM · Restricted Project, Restricted Project
alonkom updated the diff for D144947: [SCEV] Preserve divisibility and min/max information in applyLoopGuards.
Mar 5 2023, 1:51 AM · Restricted Project, Restricted Project

Mar 1 2023

alonkom added a reviewer for D144947: [SCEV] Preserve divisibility and min/max information in applyLoopGuards: mkazantsev.
Mar 1 2023, 1:13 AM · Restricted Project, Restricted Project

Feb 28 2023

alonkom requested review of D144947: [SCEV] Preserve divisibility and min/max information in applyLoopGuards.
Feb 28 2023, 2:08 AM · Restricted Project, Restricted Project

Feb 26 2023

alonkom updated the diff for D141850: [SCEV] Preserve divisibility and min/max information in applyLoopGuards.
Feb 26 2023, 1:38 AM · Restricted Project, Restricted Project

Feb 25 2023

alonkom added a comment to D141850: [SCEV] Preserve divisibility and min/max information in applyLoopGuards.

Why was this reverted?

Feb 25 2023, 11:06 PM · Restricted Project, Restricted Project

Feb 23 2023

alonkom added inline comments to D141850: [SCEV] Preserve divisibility and min/max information in applyLoopGuards.
Feb 23 2023, 12:02 AM · Restricted Project, Restricted Project

Feb 21 2023

alonkom updated the diff for D141850: [SCEV] Preserve divisibility and min/max information in applyLoopGuards.
Feb 21 2023, 11:07 PM · Restricted Project, Restricted Project
alonkom updated the diff for D141850: [SCEV] Preserve divisibility and min/max information in applyLoopGuards.
Feb 21 2023, 4:59 AM · Restricted Project, Restricted Project

Feb 20 2023

alonkom added a comment to D141850: [SCEV] Preserve divisibility and min/max information in applyLoopGuards.

@mkazantsev Let me know if you have any other comments

Feb 20 2023, 6:00 AM · Restricted Project, Restricted Project

Feb 12 2023

alonkom updated the diff for D141850: [SCEV] Preserve divisibility and min/max information in applyLoopGuards.
Feb 12 2023, 5:49 AM · Restricted Project, Restricted Project

Feb 9 2023

alonkom requested review of D143644: [SCEV] Add a test where the trip count can't be calculated.
Feb 9 2023, 6:25 AM · Restricted Project, Restricted Project
alonkom added inline comments to D141850: [SCEV] Preserve divisibility and min/max information in applyLoopGuards.
Feb 9 2023, 4:07 AM · Restricted Project, Restricted Project
alonkom updated the diff for D141850: [SCEV] Preserve divisibility and min/max information in applyLoopGuards.
Feb 9 2023, 4:07 AM · Restricted Project, Restricted Project

Feb 6 2023

alonkom added inline comments to D141850: [SCEV] Preserve divisibility and min/max information in applyLoopGuards.
Feb 6 2023, 5:08 AM · Restricted Project, Restricted Project

Feb 5 2023

alonkom added a comment to D143337: [SCEV] Add tests where multiple assumes can be used to improve trip multiple.

@mkazantsev can you commit on my behalf? I'm still having some github issues

Feb 5 2023, 5:18 AM · Restricted Project, Restricted Project
alonkom updated the summary of D143337: [SCEV] Add tests where multiple assumes can be used to improve trip multiple.
Feb 5 2023, 3:59 AM · Restricted Project, Restricted Project
alonkom added inline comments to D141850: [SCEV] Preserve divisibility and min/max information in applyLoopGuards.
Feb 5 2023, 3:58 AM · Restricted Project, Restricted Project
alonkom requested review of D143337: [SCEV] Add tests where multiple assumes can be used to improve trip multiple.
Feb 5 2023, 3:57 AM · Restricted Project, Restricted Project

Jan 31 2023

alonkom added inline comments to D141850: [SCEV] Preserve divisibility and min/max information in applyLoopGuards.
Jan 31 2023, 11:45 PM · Restricted Project, Restricted Project
alonkom updated the diff for D141850: [SCEV] Preserve divisibility and min/max information in applyLoopGuards.
Jan 31 2023, 12:28 AM · Restricted Project, Restricted Project
alonkom added a comment to D141850: [SCEV] Preserve divisibility and min/max information in applyLoopGuards.
After this patch, depending on the assume processing order applyLoopGuards could create the following SCEV:
max(min((8 * (TC / 8)) , 96), 8)

This example looks wrong. I think min/max should be switched. Should be

min(max((8 * (TC / 8)), 96), 8)

Please update description.


In terms of overall approach, I'm not sure. Feels a bit hacky to have custom logic to check that an expressions is a min/max of mul/div. I'll let others chime in here.

Jan 31 2023, 12:27 AM · Restricted Project, Restricted Project

Jan 19 2023

alonkom added a comment to D141850: [SCEV] Preserve divisibility and min/max information in applyLoopGuards.

The improved trip multiples from the test results look good. Ordering in applyLoopGuards is an issue. However, I think we can simplify this down a bit. What if we always applied min/max first, before we apply divisibility guards? For example, given:

__builtin_assume(TC % 8 == 0);
__builtin_assume(TC > 0);
__builtin_assume(TC < 100);
  1. apply max: umax(1, TC)
  2. apply min: umin(100, umax(1, TC))
  3. apply divisibility info: 8 * (umin(100, umax(1, TC))) / 8

This makes divisibility info obvious. And traversing the SCEV, we can still see TC > 0 and TC < 100. I believe that if we always apply max/min first, we will never lose this info. This approach seems much simpler and easier to understand.

FYI. I haven't been around that long, and this change is non-trivial enough where I prefer a longstanding developer to give the final approval. I will still be around to give my thoughts.

Jan 19 2023, 1:00 AM · Restricted Project, Restricted Project

Jan 18 2023

alonkom added a reviewer for D141850: [SCEV] Preserve divisibility and min/max information in applyLoopGuards: fhahn.
Jan 18 2023, 1:33 AM · Restricted Project, Restricted Project
alonkom updated the diff for D141850: [SCEV] Preserve divisibility and min/max information in applyLoopGuards.
Jan 18 2023, 1:33 AM · Restricted Project, Restricted Project

Jan 17 2023

alonkom requested review of D141991: [SCEV] Add a reproducer where SCEV doesn't conclude divisibility..
Jan 17 2023, 11:23 PM · Restricted Project, Restricted Project
alonkom added a comment to D141850: [SCEV] Preserve divisibility and min/max information in applyLoopGuards.

What is the relation to https://reviews.llvm.org/D128701? Seems maybe you should close the other one.

Can you make the commit title more specific, and add more info in the commit message? In particular, I would like to see something like:

after applyLoopGuards, turns <A> into <B>

where A and B are SCEV expressions.

Other information like, what the problem was before, and how you address it, is also helpful. I would suggest looking at the git log of ScalarEvolution.cpp for examples of descriptive commit messages. This will save the reviewers time, and will be helpful when people look at the git log/blame.

Jan 17 2023, 5:57 AM · Restricted Project, Restricted Project
alonkom retitled D141850: [SCEV] Preserve divisibility and min/max information in applyLoopGuards from [SCEV] Preserve information in applyLoopGuards to [SCEV] Preserve divisibility and min/max information in applyLoopGuards.
Jan 17 2023, 4:24 AM · Restricted Project, Restricted Project
alonkom abandoned D128701: [SCEV] Preserve information in applyLoopGuards.
Jan 17 2023, 4:01 AM · Restricted Project, Restricted Project

Jan 16 2023

alonkom requested review of D141850: [SCEV] Preserve divisibility and min/max information in applyLoopGuards.
Jan 16 2023, 7:01 AM · Restricted Project, Restricted Project

Aug 8 2022

alonkom added a comment to D128701: [SCEV] Preserve information in applyLoopGuards.

Ping. Can you please address this change?

Aug 8 2022, 3:28 AM · Restricted Project, Restricted Project
alonkom added a comment to D130014: [ValueTypes] Define MVT for v3i8.

@alonkom Please can you send me your email details for the git commit message?

Aug 8 2022, 3:17 AM · Restricted Project, Restricted Project

Aug 2 2022

alonkom added a comment to D130014: [ValueTypes] Define MVT for v3i8.

LGTM - I still expect we'll end up having to add MVT::v3i1 at some point - but since we've done without it with various v3iX types already it can probably wait for now.

Aug 2 2022, 5:42 AM · Restricted Project, Restricted Project

Jul 21 2022

alonkom added a comment to D130014: [ValueTypes] Define MVT for v3i8.

which target is this from - and does a MVT::v3i1 need adding at the same time?

Jul 21 2022, 4:28 AM · Restricted Project, Restricted Project

Jul 19 2022

alonkom retitled D130014: [ValueTypes] Define MVT for v3i8 from [ValueTypes] Define MVTs for v3i8 to [ValueTypes] Define MVT for v3i8.
Jul 19 2022, 12:07 AM · Restricted Project, Restricted Project

Jul 18 2022

alonkom updated the diff for D130014: [ValueTypes] Define MVT for v3i8.
Jul 18 2022, 8:02 AM · Restricted Project, Restricted Project
alonkom requested review of D130014: [ValueTypes] Define MVT for v3i8.
Jul 18 2022, 8:00 AM · Restricted Project, Restricted Project

Jun 27 2022

alonkom added a reviewer for D128701: [SCEV] Preserve information in applyLoopGuards: Florian.
Jun 27 2022, 11:43 PM · Restricted Project, Restricted Project
alonkom requested review of D128701: [SCEV] Preserve information in applyLoopGuards.
Jun 27 2022, 11:42 PM · Restricted Project, Restricted Project

Jun 14 2022

alonkom added a comment to D126460: [SCEV] Add tests where assumes can be used to improve trip multiple..

LGTM, thanks!

Can you please submit it on my behalf?
I still have commit permission issues

Sure, please let me know what name & email to use for the git authorship.

Jun 14 2022, 2:04 AM · Restricted Project, Restricted Project

Jun 13 2022

alonkom added a comment to D126460: [SCEV] Add tests where assumes can be used to improve trip multiple..

LGTM, thanks!

Jun 13 2022, 10:15 PM · Restricted Project, Restricted Project

Jun 12 2022

alonkom updated the diff for D126460: [SCEV] Add tests where assumes can be used to improve trip multiple..
Jun 12 2022, 10:17 PM · Restricted Project, Restricted Project
alonkom updated the summary of D126460: [SCEV] Add tests where assumes can be used to improve trip multiple..
Jun 12 2022, 6:33 AM · Restricted Project, Restricted Project

May 28 2022

alonkom added inline comments to D126502: [SCEV] Apply conditions involving constants first in applyLoopGuards..
May 28 2022, 11:22 PM · Restricted Project, Restricted Project

May 26 2022

alonkom requested review of D126460: [SCEV] Add tests where assumes can be used to improve trip multiple..
May 26 2022, 5:21 AM · Restricted Project, Restricted Project

Sep 9 2020

alonkom added a comment to D87088: [MachinePipeliner] Fix II_setByPragma initialization.

I'm having Github commit permission issues so I would appreciate if someone can submit it on behalf of me

Sep 9 2020, 2:12 AM · Restricted Project

Sep 3 2020

alonkom requested review of D87088: [MachinePipeliner] Fix II_setByPragma initialization.
Sep 3 2020, 6:24 AM · Restricted Project

Oct 20 2019

alonkom committed rL375359: Added my username.
Added my username
Oct 20 2019, 6:53 AM

Jan 10 2019

alonkom added a comment to D56270: [DAGCombiner] Allow target to control combine with illegal types..

How do you get your target to be able to type legalize an abs of any type? The interface for enabling custom legalization requires calling setOperation with a specific type does it not?

Jan 10 2019, 5:16 AM
alonkom added a comment to D56270: [DAGCombiner] Allow target to control combine with illegal types..

Do you do custom type legalization for ABS in your target? There's no support for legalizing it in the target type independent legalizer.

Jan 10 2019, 4:01 AM

Jan 3 2019

alonkom created D56270: [DAGCombiner] Allow target to control combine with illegal types..
Jan 3 2019, 7:28 AM

Sep 14 2017

alonkom committed rL313237: [LV] Fix maximum legal VF calculation.
[LV] Fix maximum legal VF calculation
Sep 14 2017, 12:43 AM
alonkom closed D37507: Fix maximum legal VF calculation by committing rL313237: [LV] Fix maximum legal VF calculation.
Sep 14 2017, 12:42 AM

Sep 11 2017

alonkom updated the diff for D37507: Fix maximum legal VF calculation.

The test is now placed in memdep.ll

Sep 11 2017, 5:13 AM

Sep 10 2017

alonkom updated the diff for D37507: Fix maximum legal VF calculation.
Sep 10 2017, 11:38 PM
alonkom added inline comments to D37507: Fix maximum legal VF calculation.
Sep 10 2017, 6:41 AM

Sep 6 2017

alonkom created D37507: Fix maximum legal VF calculation.
Sep 6 2017, 12:35 AM