Page MenuHomePhabricator

danlark (Danila Kutenin)
User

Projects

User does not belong to any projects.

User Details

User Since
Nov 10 2017, 11:52 PM (118 w, 2 d)

Recent Activity

Mon, Jan 20

danlark added a comment to D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..

@spatel @lebedev.ri Ping

Mon, Jan 20, 4:07 AM · Restricted Project

Jan 14 2020

danlark added a comment to D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..

@lebedev.ri Friendly ping and see message from spatel@ above :)

Jan 14 2020, 9:55 AM · Restricted Project

Jan 9 2020

danlark added a comment to D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..

There's a lot going on here, and the patch doesn't apply cleanly to current source. Can you pre-commit any NFC changes/tests to make this patch smaller? For example, the udiv change/tests are not affected by the mul code?

Sorry - I didn't see earlier that this patch is part of a sequence.
I'm a bit skeptical about the need to extend the "udiv action" machine. Are the motivating cases really that complicated or could we get away with a simpler pattern match of mul(select...)?

I am not sure but I just reused the code for both division and multiplication -- from my perspective the idea is the same.

Also, I rebased a bit and made the patch smaller as you asked.

Jan 9 2020, 10:14 AM · Restricted Project
danlark added a comment to D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..

There's a lot going on here, and the patch doesn't apply cleanly to current source. Can you pre-commit any NFC changes/tests to make this patch smaller? For example, the udiv change/tests are not affected by the mul code?

Sorry - I didn't see earlier that this patch is part of a sequence.
I'm a bit skeptical about the need to extend the "udiv action" machine. Are the motivating cases really that complicated or could we get away with a simpler pattern match of mul(select...)?

Jan 9 2020, 9:45 AM · Restricted Project
danlark updated the diff for D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..

Rebase and make tests committed before

Jan 9 2020, 9:36 AM · Restricted Project
danlark updated the diff for D71567: [InstCombine] Add tests for `select + mul` for power of twos. NFC.

Rebase

Jan 9 2020, 9:36 AM · Restricted Project
danlark updated the diff for D71567: [InstCombine] Add tests for `select + mul` for power of twos. NFC.

Update tests

Jan 9 2020, 9:36 AM · Restricted Project
danlark updated the diff for D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..

Removing div tests, we don't need them

Jan 9 2020, 9:36 AM · Restricted Project
danlark added a comment to D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..

@spatel You are doing a lot of stuff around this code, PTAL.

Jan 9 2020, 7:34 AM · Restricted Project
danlark updated the diff for D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..

Applying m_ZExtOrSelf

Jan 9 2020, 7:34 AM · Restricted Project
danlark added a comment to D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..

@lebedev.ri Can you please take a look and possibly submit?

Jan 9 2020, 2:54 AM · Restricted Project

Jan 4 2020

danlark added a comment to D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..

Ping

Jan 4 2020, 5:00 AM · Restricted Project
danlark updated the diff for D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..

Replace finally everything with asserts

Jan 4 2020, 4:57 AM · Restricted Project

Jan 1 2020

danlark added a reviewer for D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos.: nikic.
Jan 1 2020, 6:34 AM · Restricted Project

Dec 30 2019

danlark updated the diff for D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..

Remove nullptr assignment

Dec 30 2019, 8:22 AM · Restricted Project
danlark updated the diff for D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..

Fix asserts

Dec 30 2019, 8:22 AM · Restricted Project
danlark added a comment to D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..

Another hopeless ping before NY

Dec 30 2019, 6:57 AM · Restricted Project

Dec 25 2019

danlark added a comment to D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..

Ping

Dec 25 2019, 8:13 AM · Restricted Project

Dec 22 2019

danlark added a comment to D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..

Ping.

Dec 22 2019, 11:26 AM · Restricted Project

Dec 19 2019

danlark added a comment to D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..

Ping

Dec 19 2019, 3:30 PM · Restricted Project

Dec 18 2019

danlark updated the diff for D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..

Don't add zero

Dec 18 2019, 8:47 AM · Restricted Project

Dec 17 2019

danlark updated the diff for D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..

Also add NUW

Dec 17 2019, 5:29 PM · Restricted Project
danlark added a comment to D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..

Thank you for working on this.

Dec 17 2019, 5:09 PM · Restricted Project
danlark updated the diff for D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..

Fix overflow in shifting and further propagation

Dec 17 2019, 5:09 PM · Restricted Project
danlark added inline comments to D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..
Dec 17 2019, 5:09 PM · Restricted Project
danlark added a comment to D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..

Now I think review is in a good shape

Dec 17 2019, 10:24 AM · Restricted Project
danlark updated the diff for D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..

Rebase and style

Dec 17 2019, 3:00 AM · Restricted Project
danlark added inline comments to D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..
Dec 17 2019, 2:32 AM · Restricted Project
danlark updated the diff for D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..

Update vector test

Dec 17 2019, 2:32 AM · Restricted Project
danlark added inline comments to D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..
Dec 17 2019, 1:54 AM · Restricted Project
danlark added inline comments to D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..
Dec 17 2019, 1:54 AM · Restricted Project
danlark updated the diff for D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..

undef should return zero in select+shl

Dec 17 2019, 1:54 AM · Restricted Project
danlark updated the diff for D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..

Correct INT_MIN test

Dec 17 2019, 12:57 AM · Restricted Project
danlark updated the diff for D71567: [InstCombine] Add tests for `select + mul` for power of twos. NFC.

Correct INT_MIN test

Dec 17 2019, 12:57 AM · Restricted Project

Dec 16 2019

danlark updated the diff for D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..

Rebase

Dec 16 2019, 4:53 PM · Restricted Project
danlark updated the diff for D71567: [InstCombine] Add tests for `select + mul` for power of twos. NFC.

More robust zext tests

Dec 16 2019, 4:53 PM · Restricted Project
danlark updated the diff for D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..

Even more robust tests

Dec 16 2019, 4:44 PM · Restricted Project
danlark updated the diff for D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..

More robust zext tests

Dec 16 2019, 4:44 PM · Restricted Project
danlark updated the diff for D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..

Add zext test

Dec 16 2019, 4:34 PM · Restricted Project
danlark updated the diff for D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..

Add simple min integer test

Dec 16 2019, 4:07 PM · Restricted Project
danlark added inline comments to D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..
Dec 16 2019, 3:57 PM · Restricted Project
danlark added a comment to D71567: [InstCombine] Add tests for `select + mul` for power of twos. NFC.

You probably want to throw in some vector undef tests as well.
(e.g. a singled lane in one of constants, the same lane in both, different lanes in each)

Dec 16 2019, 3:57 PM · Restricted Project
danlark updated the diff for D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..

Fix the issues and rebase

Dec 16 2019, 3:57 PM · Restricted Project
danlark updated the diff for D71567: [InstCombine] Add tests for `select + mul` for power of twos. NFC.

Rebase

Dec 16 2019, 3:57 PM · Restricted Project
danlark updated the diff for D71567: [InstCombine] Add tests for `select + mul` for power of twos. NFC.
Dec 16 2019, 2:44 PM · Restricted Project
danlark updated the diff for D71567: [InstCombine] Add tests for `select + mul` for power of twos. NFC.

Add nsw+nuw tests

Dec 16 2019, 2:39 PM · Restricted Project
danlark added a comment to D71561: [InstCombine] Refactor FoldUDivAction for future usage with multiplication. NFC.

There's a lot of changes in the diff.
Please can you split this into preparatory NFC cleanup, and the actual change?

Dec 16 2019, 2:16 PM · Restricted Project
danlark updated the diff for D71567: [InstCombine] Add tests for `select + mul` for power of twos. NFC.

Finally readable chain review

Dec 16 2019, 2:16 PM · Restricted Project
danlark updated the diff for D71567: [InstCombine] Add tests for `select + mul` for power of twos. NFC.

Trying to make chain review

Dec 16 2019, 2:11 PM · Restricted Project
danlark updated the diff for D71567: [InstCombine] Add tests for `select + mul` for power of twos. NFC.
Dec 16 2019, 2:07 PM · Restricted Project
danlark updated the diff for D71567: [InstCombine] Add tests for `select + mul` for power of twos. NFC.
Dec 16 2019, 2:07 PM · Restricted Project
danlark updated the diff for D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..
Dec 16 2019, 2:07 PM · Restricted Project
danlark updated the diff for D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..

Remove TODO

Dec 16 2019, 1:58 PM · Restricted Project
danlark added a child revision for D71567: [InstCombine] Add tests for `select + mul` for power of twos. NFC: D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..
Dec 16 2019, 1:52 PM · Restricted Project
danlark added a child revision for D71561: [InstCombine] Refactor FoldUDivAction for future usage with multiplication. NFC: D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..
Dec 16 2019, 1:52 PM · Restricted Project
danlark added parent revisions for D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos.: D71567: [InstCombine] Add tests for `select + mul` for power of twos. NFC, D71561: [InstCombine] Refactor FoldUDivAction for future usage with multiplication. NFC.
Dec 16 2019, 1:52 PM · Restricted Project
danlark created D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..
Dec 16 2019, 1:52 PM · Restricted Project
danlark added a child revision for D71561: [InstCombine] Refactor FoldUDivAction for future usage with multiplication. NFC: D71567: [InstCombine] Add tests for `select + mul` for power of twos. NFC.
Dec 16 2019, 1:33 PM · Restricted Project
danlark added a parent revision for D71567: [InstCombine] Add tests for `select + mul` for power of twos. NFC: D71561: [InstCombine] Refactor FoldUDivAction for future usage with multiplication. NFC.
Dec 16 2019, 1:33 PM · Restricted Project
danlark retitled D71567: [InstCombine] Add tests for `select + mul` for power of twos. NFC from [InstCombine] Refactor FoldUDivAction for future usage with multiplication. NFC to [InstCombine] Add tests for `select + mul` for power of twos. NFC.
Dec 16 2019, 1:33 PM · Restricted Project
danlark created D71567: [InstCombine] Add tests for `select + mul` for power of twos. NFC.
Dec 16 2019, 1:33 PM · Restricted Project
danlark updated the diff for D71561: [InstCombine] Refactor FoldUDivAction for future usage with multiplication. NFC.

FoldOperandAction -> OperandFoldAction

Dec 16 2019, 1:30 PM · Restricted Project
danlark retitled D71561: [InstCombine] Refactor FoldUDivAction for future usage with multiplication. NFC from [InstCombine] `select + mul` -> `select + shl` with power of 2s. to [InstCombine] Refactor FoldUDivAction for future usage with multiplication. NFC.
Dec 16 2019, 1:24 PM · Restricted Project
danlark updated the diff for D71561: [InstCombine] Refactor FoldUDivAction for future usage with multiplication. NFC.

Some style

Dec 16 2019, 1:24 PM · Restricted Project
danlark updated the diff for D71561: [InstCombine] Refactor FoldUDivAction for future usage with multiplication. NFC.

Make the change NFC

Dec 16 2019, 1:21 PM · Restricted Project
danlark added a comment to D71561: [InstCombine] Refactor FoldUDivAction for future usage with multiplication. NFC.

There's a lot of changes in the diff.
Please can you split this into preparatory NFC cleanup, and the actual change?

Dec 16 2019, 12:07 PM · Restricted Project
danlark added a reviewer for D71561: [InstCombine] Refactor FoldUDivAction for future usage with multiplication. NFC: lebedev.ri.
Dec 16 2019, 11:58 AM · Restricted Project
danlark updated the summary of D71561: [InstCombine] Refactor FoldUDivAction for future usage with multiplication. NFC.
Dec 16 2019, 11:58 AM · Restricted Project
danlark created D71561: [InstCombine] Refactor FoldUDivAction for future usage with multiplication. NFC.
Dec 16 2019, 11:49 AM · Restricted Project
danlark updated the summary of D71561: [InstCombine] Refactor FoldUDivAction for future usage with multiplication. NFC.
Dec 16 2019, 11:49 AM · Restricted Project

Dec 11 2019

danlark added a comment to D71177: [ValueTracking] Use the assumption that if the pointer was loaded/stored, then it is nonnull..

As two people agreed on the patch in the comments, waiting for LGTM and submit from somebody else (email and github account are in the comments above)

Dec 11 2019, 12:52 AM · Restricted Project
danlark added inline comments to D71177: [ValueTracking] Use the assumption that if the pointer was loaded/stored, then it is nonnull..
Dec 11 2019, 12:40 AM · Restricted Project
danlark updated the diff for D71177: [ValueTracking] Use the assumption that if the pointer was loaded/stored, then it is nonnull..
Extract address space inside the condition
Dec 11 2019, 12:40 AM · Restricted Project
danlark added a comment to D71177: [ValueTracking] Use the assumption that if the pointer was loaded/stored, then it is nonnull..
Dec 11 2019, 12:40 AM · Restricted Project
danlark updated the diff for D71177: [ValueTracking] Use the assumption that if the pointer was loaded/stored, then it is nonnull..
Dec 11 2019, 12:31 AM · Restricted Project
danlark updated the diff for D71177: [ValueTracking] Use the assumption that if the pointer was loaded/stored, then it is nonnull..

As D71181 was submitted, I need to change some things as my code relied on function accepting pointer.

Dec 11 2019, 12:31 AM · Restricted Project

Dec 9 2019

danlark updated the diff for D71177: [ValueTracking] Use the assumption that if the pointer was loaded/stored, then it is nonnull..
Dec 9 2019, 12:53 PM · Restricted Project
danlark added a comment to D71177: [ValueTracking] Use the assumption that if the pointer was loaded/stored, then it is nonnull..

Also, I don't have commit rights.

@lebedev.ri From my perspective this is fine. Feel free to accept and commit this.

I also currently don't have any further counter-examples here.

@danlark please specify who <e@ma.il> to be used for the change.

I don't get what you mean, in the commit message it is said to state my name and that's all. https://llvm.org/docs/DeveloperPolicy.html#commit-messages

Now that the repo is using git, it is possible to not just mention the original patch's author textually,
but actually specify the actual git commit author, #commit-messages isn't up-to-date about that.

Dec 9 2019, 12:53 PM · Restricted Project
danlark updated the summary of D71177: [ValueTracking] Use the assumption that if the pointer was loaded/stored, then it is nonnull..
Dec 9 2019, 12:53 PM · Restricted Project
danlark updated the summary of D71177: [ValueTracking] Use the assumption that if the pointer was loaded/stored, then it is nonnull..
Dec 9 2019, 12:44 PM · Restricted Project
danlark updated the summary of D71177: [ValueTracking] Use the assumption that if the pointer was loaded/stored, then it is nonnull..
Dec 9 2019, 12:34 PM · Restricted Project
danlark added a comment to D71177: [ValueTracking] Use the assumption that if the pointer was loaded/stored, then it is nonnull..

Also, I don't have commit rights.

@lebedev.ri From my perspective this is fine. Feel free to accept and commit this.

I also currently don't have any further counter-examples here.

@danlark please specify who <e@ma.il> to be used for the change.

Dec 9 2019, 12:34 PM · Restricted Project
danlark updated the summary of D71177: [ValueTracking] Use the assumption that if the pointer was loaded/stored, then it is nonnull..
Dec 9 2019, 8:52 AM · Restricted Project
danlark updated the summary of D71177: [ValueTracking] Use the assumption that if the pointer was loaded/stored, then it is nonnull..
Dec 9 2019, 12:41 AM · Restricted Project

Dec 8 2019

danlark updated the summary of D71177: [ValueTracking] Use the assumption that if the pointer was loaded/stored, then it is nonnull..
Dec 8 2019, 4:03 PM · Restricted Project
danlark updated the diff for D71177: [ValueTracking] Use the assumption that if the pointer was loaded/stored, then it is nonnull..

Add more tests on different address spaces and instruction dominating

Dec 8 2019, 2:05 PM · Restricted Project
danlark added a comment to D71177: [ValueTracking] Use the assumption that if the pointer was loaded/stored, then it is nonnull..

There were behavior-changing alterations, but no test changes?

If I understand correctly, yes.

It was another way of saying: "there's no test coverage for that change, it'll break and no one will notice until it miscompiles, tests should be added"

test_null_after_{load,store} fail without that change

What i'm asking is - are there tests that ensure we don't erroneously deduce nonnull
from load/store when NullPointerIsDefined() returned true? (there should be such tests).
Also, DT->dominates() could use a few more tests.

Dec 8 2019, 2:05 PM · Restricted Project
danlark updated the diff for D71177: [ValueTracking] Use the assumption that if the pointer was loaded/stored, then it is nonnull..

Remove nonnull attribute from memcpy-addrspace test

Dec 8 2019, 1:30 PM · Restricted Project
danlark updated the diff for D71177: [ValueTracking] Use the assumption that if the pointer was loaded/stored, then it is nonnull..

Check NullPointerIsDefined function for address spaces

Dec 8 2019, 1:20 PM · Restricted Project
danlark added a comment to D71177: [ValueTracking] Use the assumption that if the pointer was loaded/stored, then it is nonnull..

There were behavior-changing alterations, but no test changes?

If I understand correctly, yes.

It was another way of saying: "there's no test coverage for that change, it'll break and no one will notice until it miscompiles, tests should be added"

Dec 8 2019, 1:11 PM · Restricted Project
danlark added a comment to D71177: [ValueTracking] Use the assumption that if the pointer was loaded/stored, then it is nonnull..

There were behavior-changing alterations, but no test changes?

Dec 8 2019, 1:02 PM · Restricted Project
danlark added inline comments to D71177: [ValueTracking] Use the assumption that if the pointer was loaded/stored, then it is nonnull..
Dec 8 2019, 12:53 PM · Restricted Project
danlark updated the diff for D71177: [ValueTracking] Use the assumption that if the pointer was loaded/stored, then it is nonnull..

Checking the address space to be default.

Dec 8 2019, 12:53 PM · Restricted Project
danlark added inline comments to D71177: [ValueTracking] Use the assumption that if the pointer was loaded/stored, then it is nonnull..
Dec 8 2019, 12:35 PM · Restricted Project
danlark added reviewers for D71177: [ValueTracking] Use the assumption that if the pointer was loaded/stored, then it is nonnull.: nikic, nlopes, mkazantsev, spatel, lebedev.ri.
Dec 8 2019, 12:17 PM · Restricted Project
Herald updated subscribers of D71177: [ValueTracking] Use the assumption that if the pointer was loaded/stored, then it is nonnull..
Dec 8 2019, 12:16 PM · Restricted Project
danlark created D71177: [ValueTracking] Use the assumption that if the pointer was loaded/stored, then it is nonnull..
Dec 8 2019, 12:16 PM · Restricted Project

Feb 11 2019

danlark abandoned D58023: [libcxx] MSVC does not provide constexpr for typeid and typeid is probably not constexpr.
Feb 11 2019, 12:33 AM
danlark added a comment to D58021: Win32 does not have popcnt64 function and fix bug with defines in ctz function.

LGTM other than inline nits.

Feb 11 2019, 12:21 AM

Feb 10 2019

danlark added a comment to D58022: __builtin_strlen is not supported for MSVC e.g and it is not correct to use it without knowledge of this "builtin" in advance.

MSVC on godbolt provides a constexpr __builtin_strlen. https://godbolt.org/z/n_3vRY

Feb 10 2019, 11:49 PM