apilipenko (Artur Pilipenko)
User

Projects

User does not belong to any projects.

User Details

User Since
Apr 16 2015, 3:05 AM (105 w, 5 d)

Recent Activity

Sat, Apr 22

apilipenko committed rL301070: Fix for PR32740 - Invalid floating type, unreachable between r300969 and r301029.
Fix for PR32740 - Invalid floating type, unreachable between r300969 and r301029
Sat, Apr 22, 12:37 AM

Fri, Apr 21

apilipenko committed rL301018: [InstCombine] fadd double (sitofp x), y check that the promotion is valid.
[InstCombine] fadd double (sitofp x), y check that the promotion is valid
Fri, Apr 21, 11:58 AM
apilipenko closed D31182: [InstCombine] fadd double (sitofp x), y check that the promotion is valid by committing rL301018: [InstCombine] fadd double (sitofp x), y check that the promotion is valid.
Fri, Apr 21, 11:58 AM
apilipenko added a comment to D31182: [InstCombine] fadd double (sitofp x), y check that the promotion is valid .

@andrew.w.kaylor - ping, do you have any comments about the latest revision?

Fri, Apr 21, 3:50 AM

Thu, Apr 13

apilipenko updated the diff for D31182: [InstCombine] fadd double (sitofp x), y check that the promotion is valid .

Add the comment about overly conservative legality check, add the test demonstrating it.

Thu, Apr 13, 6:06 AM

Thu, Mar 30

apilipenko added a comment to D31182: [InstCombine] fadd double (sitofp x), y check that the promotion is valid .

Ping.

Thu, Mar 30, 2:46 AM

Mar 23 2017

apilipenko added inline comments to D31182: [InstCombine] fadd double (sitofp x), y check that the promotion is valid .
Mar 23 2017, 12:12 PM
apilipenko updated the diff for D31182: [InstCombine] fadd double (sitofp x), y check that the promotion is valid .

Address review comments.

Mar 23 2017, 12:12 PM

Mar 22 2017

apilipenko added a comment to D31182: [InstCombine] fadd double (sitofp x), y check that the promotion is valid .

Before getting to any details about the patch, we need to address the question raised in PR27036: why are we doing this transform in InstCombine at all? The assumption is that an integer add is more canonical and/or cheaper than an FP add. Is that universally true?

It's difficult to tell. Even if FP addition is cheaper the second combine also saves us one sitofp conversion. It should be also taken into account.

Mar 22 2017, 9:10 AM

Mar 21 2017

apilipenko created D31182: [InstCombine] fadd double (sitofp x), y check that the promotion is valid .
Mar 21 2017, 5:00 AM
apilipenko committed rL298359: NFC. InstCombiner::visitFAdd extract LHSIntVal/RHSIntVal local variables.
NFC. InstCombiner::visitFAdd extract LHSIntVal/RHSIntVal local variables
Mar 21 2017, 4:44 AM

Mar 10 2017

apilipenko accepted D30790: [LVI] Add an LVI printer pass to capture test LVI cache after transformations.
Mar 10 2017, 9:55 AM
apilipenko added inline comments to D30790: [LVI] Add an LVI printer pass to capture test LVI cache after transformations.
Mar 10 2017, 9:06 AM
apilipenko added a comment to D30790: [LVI] Add an LVI printer pass to capture test LVI cache after transformations.

It's worth noting for others that the motivation for the change is a bug we found in JumpThreading LVI cache invalidation. The bug is easily triggered with our downstream changes, but is difficult to trigger it upstream. We need the printer pass to write an isolated upstream test case for this problem.

Mar 10 2017, 3:04 AM

Mar 1 2017

apilipenko committed rL296651: [DAGCombiner] Support {a|s}ext, {a|z|s}ext load nodes in load combine.
[DAGCombiner] Support {a|s}ext, {a|z|s}ext load nodes in load combine
Mar 1 2017, 10:24 AM

Feb 27 2017

apilipenko committed rL296345: Loop predication expand both sides of the widened condition.
Loop predication expand both sides of the widened condition
Feb 27 2017, 7:56 AM
apilipenko closed D30099: Loop predication expand both sides of the widened condition by committing rL296345: Loop predication expand both sides of the widened condition.
Feb 27 2017, 7:56 AM
apilipenko committed rL296336: [DAGCombine] Fix for a load combine bug with non-zero offset patterns on BE….
[DAGCombine] Fix for a load combine bug with non-zero offset patterns on BE…
Feb 27 2017, 5:16 AM
apilipenko committed rL296332: [DAGCombine] NFC. MatchLoadCombine extract MemoryByteOffset lambda helper.
[DAGCombine] NFC. MatchLoadCombine extract MemoryByteOffset lambda helper
Feb 27 2017, 3:54 AM
apilipenko committed rL296331: [DAGCombine] NFC. MatchLoadCombine remember the first byte provider, not the….
[DAGCombine] NFC. MatchLoadCombine remember the first byte provider, not the…
Feb 27 2017, 3:52 AM

Feb 17 2017

apilipenko created D30099: Loop predication expand both sides of the widened condition.
Feb 17 2017, 8:13 AM

Feb 16 2017

apilipenko committed rL295336: [DAGCombiner] Support {a|s}ext, {a|z|s}ext load nodes in load combine.
[DAGCombiner] Support {a|s}ext, {a|z|s}ext load nodes in load combine
Feb 16 2017, 9:19 AM
apilipenko committed rL295316: Rever -r295314 "[DAGCombiner] Support {a|s}ext, {a|z|s}ext load nodes in load….
Rever -r295314 "[DAGCombiner] Support {a|s}ext, {a|z|s}ext load nodes in load…
Feb 16 2017, 5:16 AM
apilipenko committed rL295314: [DAGCombiner] Support {a|s}ext, {a|z|s}ext load nodes in load combine.
[DAGCombiner] Support {a|s}ext, {a|z|s}ext load nodes in load combine
Feb 16 2017, 5:05 AM
apilipenko closed D29591: [DAGCombiner] Support {a|s}ext, {a|z|s}ext load nodes in load combine by committing rL295314: [DAGCombiner] Support {a|s}ext, {a|z|s}ext load nodes in load combine.
Feb 16 2017, 5:05 AM

Feb 9 2017

apilipenko committed rL294591: Add DAGCombiner load combine tests for partially available values.
Add DAGCombiner load combine tests for partially available values
Feb 9 2017, 7:25 AM
apilipenko committed rL294582: [DAGCombiner] Support non-zero offset in load combine.
[DAGCombiner] Support non-zero offset in load combine
Feb 9 2017, 4:18 AM
apilipenko closed D29394: [DAGCombiner] Support non-zero offset in load combine by committing rL294582: [DAGCombiner] Support non-zero offset in load combine.
Feb 9 2017, 4:17 AM

Feb 8 2017

apilipenko committed rL294494: [DAGCombiner] NFC. Mark ByteProvider accessors as const.
[DAGCombiner] NFC. Mark ByteProvider accessors as const
Feb 8 2017, 10:11 AM
apilipenko updated the diff for D29394: [DAGCombiner] Support non-zero offset in load combine.

Add an assert as suggested.

Feb 8 2017, 7:48 AM

Feb 7 2017

apilipenko added a dependency for D29591: [DAGCombiner] Support {a|s}ext, {a|z|s}ext load nodes in load combine: D29394: [DAGCombiner] Support non-zero offset in load combine.
Feb 7 2017, 7:16 AM
apilipenko added a dependent revision for D29394: [DAGCombiner] Support non-zero offset in load combine: D29591: [DAGCombiner] Support {a|s}ext, {a|z|s}ext load nodes in load combine.
Feb 7 2017, 7:16 AM
apilipenko added inline comments to D29591: [DAGCombiner] Support {a|s}ext, {a|z|s}ext load nodes in load combine.
Feb 7 2017, 7:15 AM
apilipenko updated the diff for D29591: [DAGCombiner] Support {a|s}ext, {a|z|s}ext load nodes in load combine.
  • Land tests separately and rebase the patch against it.
  • Remove addrspace(1) from the test cases.
  • Change CHECK pattern matching in fp16-promote.ll test_extractelement slightly.
Feb 7 2017, 7:04 AM
apilipenko committed rL294305: Add DAGCombiner load combine tests for {a|s}ext, {a|z|s}ext load nodes.
Add DAGCombiner load combine tests for {a|s}ext, {a|z|s}ext load nodes
Feb 7 2017, 6:21 AM

Feb 6 2017

apilipenko created D29591: [DAGCombiner] Support {a|s}ext, {a|z|s}ext load nodes in load combine.
Feb 6 2017, 10:06 AM
apilipenko committed rL294201: [DAGCombiner] Support bswap as a part of load combine patterns.
[DAGCombiner] Support bswap as a part of load combine patterns
Feb 6 2017, 9:59 AM
apilipenko closed D29397: [DAGCombiner] Support bswap as a part of load combine patterns by committing rL294201: [DAGCombiner] Support bswap as a part of load combine patterns.
Feb 6 2017, 9:59 AM
apilipenko updated the diff for D29397: [DAGCombiner] Support bswap as a part of load combine patterns .
Feb 6 2017, 7:49 AM
apilipenko updated the diff for D29397: [DAGCombiner] Support bswap as a part of load combine patterns .

Fix the type CHECK64 -> CHECK-ARMv6 in ARM load-combine.ll test case.

Feb 6 2017, 7:06 AM
apilipenko updated the diff for D29394: [DAGCombiner] Support non-zero offset in load combine.

The test cases have been landed separately (rL294185), rebase the patch.

Feb 6 2017, 7:02 AM
apilipenko committed rL294185: Add DAGCombiner load combine tests with non-zero offset.
Add DAGCombiner load combine tests with non-zero offset
Feb 6 2017, 6:27 AM

Feb 1 2017

apilipenko created D29397: [DAGCombiner] Support bswap as a part of load combine patterns .
Feb 1 2017, 7:58 AM
apilipenko updated the summary of D29394: [DAGCombiner] Support non-zero offset in load combine.
Feb 1 2017, 6:36 AM
apilipenko created D29394: [DAGCombiner] Support non-zero offset in load combine.
Feb 1 2017, 6:36 AM
apilipenko committed rL293762: [LoopPredication] Add a new line to debug output in LoopPredication pass.
[LoopPredication] Add a new line to debug output in LoopPredication pass
Feb 1 2017, 4:37 AM

Jan 31 2017

apilipenko added inline comments to D29220: [InstCombine] Re-enable guard canonicalization for AND and NOT OR.
Jan 31 2017, 12:41 AM

Jan 25 2017

apilipenko committed rL293064: [Guards] Introduce loop-predication pass.
[Guards] Introduce loop-predication pass
Jan 25 2017, 8:12 AM
apilipenko closed D29034: [Guards] Introduce loop-predication pass by committing rL293064: [Guards] Introduce loop-predication pass.
Jan 25 2017, 8:12 AM
apilipenko committed rL293062: NFC. Make ScalarEvolution::isMonotonicPredicate public.
NFC. Make ScalarEvolution::isMonotonicPredicate public
Jan 25 2017, 7:19 AM
apilipenko committed rL293061: [InstCombine] Canonicalize guards for NOT OR condition.
[InstCombine] Canonicalize guards for NOT OR condition
Jan 25 2017, 6:56 AM
apilipenko closed D29075: Canonicalize guards for NOT OR condition by committing rL293061: [InstCombine] Canonicalize guards for NOT OR condition.
Jan 25 2017, 6:56 AM
apilipenko committed rL293058: [InstCombine] Canonicalize guards for AND condition.
[InstCombine] Canonicalize guards for AND condition
Jan 25 2017, 6:32 AM
apilipenko closed D29074: Canonicalize guards for AND condition by committing rL293058: [InstCombine] Canonicalize guards for AND condition.
Jan 25 2017, 6:32 AM
apilipenko committed rL293056: [InstCombine] Allow InstrCombine to remove one of adjacent guards if they are….
[InstCombine] Allow InstrCombine to remove one of adjacent guards if they are…
Jan 25 2017, 6:23 AM
apilipenko closed D29071: Allow InstrCombine to remove one of adjacent guards if they are equivalent by committing rL293056: [InstCombine] Allow InstrCombine to remove one of adjacent guards if they are….
Jan 25 2017, 6:23 AM
apilipenko accepted D29075: Canonicalize guards for NOT OR condition.
Jan 25 2017, 1:47 AM
apilipenko accepted D29074: Canonicalize guards for AND condition.
Jan 25 2017, 1:46 AM
apilipenko committed rL293039: Fix buildbot failures introduced by 293036.
Fix buildbot failures introduced by 293036
Jan 25 2017, 1:21 AM
apilipenko committed rL293036: [DAGCombiner] Match load by bytes idiom and fold it into a single load. Attempt….
[DAGCombiner] Match load by bytes idiom and fold it into a single load. Attempt…
Jan 25 2017, 1:05 AM
apilipenko closed D27861: [DAGCombiner] Match load by bytes idiom and fold it into a single load. Attempt #2. by committing rL293036: [DAGCombiner] Match load by bytes idiom and fold it into a single load. Attempt….
Jan 25 2017, 1:04 AM
apilipenko updated subscribers of D29034: [Guards] Introduce loop-predication pass.
Jan 25 2017, 12:35 AM
apilipenko updated subscribers of D27861: [DAGCombiner] Match load by bytes idiom and fold it into a single load. Attempt #2..
Jan 25 2017, 12:35 AM
apilipenko accepted D29071: Allow InstrCombine to remove one of adjacent guards if they are equivalent.
Jan 25 2017, 12:31 AM
apilipenko added inline comments to D29075: Canonicalize guards for NOT OR condition.
Jan 25 2017, 12:30 AM
apilipenko added inline comments to D29074: Canonicalize guards for AND condition.
Jan 25 2017, 12:28 AM

Jan 24 2017

apilipenko updated the diff for D29034: [Guards] Introduce loop-predication pass.

Address Sanjoy's comments: add new pass manager support, fix nits here and there.
Add an early exit if the module doesn't use guards.

Jan 24 2017, 10:23 AM
apilipenko added a comment to D27861: [DAGCombiner] Match load by bytes idiom and fold it into a single load. Attempt #2..

@chandlerc since none of your comments express explicit objections or concerns and the patch has already been accepted I'm going to go ahead and land it tomorrow. Let me know if I misinterpreted your comments and you do want some changes.

Jan 24 2017, 10:02 AM
apilipenko added inline comments to D29075: Canonicalize guards for NOT OR condition.
Jan 24 2017, 9:54 AM
apilipenko added inline comments to D29074: Canonicalize guards for AND condition.
Jan 24 2017, 9:51 AM
apilipenko added inline comments to D29071: Allow InstrCombine to remove one of adjacent guards if they are equivalent.
Jan 24 2017, 9:33 AM

Jan 23 2017

apilipenko updated the summary of D29034: [Guards] Introduce loop-predication pass.
Jan 23 2017, 8:10 AM
apilipenko created D29034: [Guards] Introduce loop-predication pass.
Jan 23 2017, 8:08 AM

Jan 16 2017

apilipenko updated the diff for D27861: [DAGCombiner] Match load by bytes idiom and fold it into a single load. Attempt #2..

Address review comments:

  • Add recursion depth limit
  • Add comments about combine before legalize
Jan 16 2017, 4:54 AM
apilipenko added inline comments to D27861: [DAGCombiner] Match load by bytes idiom and fold it into a single load. Attempt #2..
Jan 16 2017, 4:45 AM

Jan 11 2017

apilipenko retitled D28565: [InstCombine] Teach isAllocSiteRemovable to look through addrspacecasts from Teach isAllocSiteRemovable to look through addrspacecasts to [InstCombine] Teach isAllocSiteRemovable to look through addrspacecasts.
Jan 11 2017, 7:17 AM
apilipenko accepted D27824: BrainF example: missing output.
Jan 11 2017, 7:15 AM
apilipenko retitled D28565: [InstCombine] Teach isAllocSiteRemovable to look through addrspacecasts from to Teach isAllocSiteRemovable to look through addrspacecasts.
Jan 11 2017, 7:14 AM

Jan 9 2017

apilipenko updated the diff for D27861: [DAGCombiner] Match load by bytes idiom and fold it into a single load. Attempt #2..

Address the comments, add a comment that calculateByteProvider recurses over trees, not DAGs.

Jan 9 2017, 10:31 AM
apilipenko added inline comments to D27861: [DAGCombiner] Match load by bytes idiom and fold it into a single load. Attempt #2..
Jan 9 2017, 10:29 AM
apilipenko added a comment to D27861: [DAGCombiner] Match load by bytes idiom and fold it into a single load. Attempt #2..

Currently update_llc_test_checks.py supports arm-eabi target only. I left ARM test cases with manually written checks for now.

Jan 9 2017, 5:03 AM
apilipenko updated the diff for D27861: [DAGCombiner] Match load by bytes idiom and fold it into a single load. Attempt #2..

Address the comments.

Jan 9 2017, 5:03 AM

Dec 16 2016

apilipenko updated D27861: [DAGCombiner] Match load by bytes idiom and fold it into a single load. Attempt #2..
Dec 16 2016, 1:51 PM
apilipenko updated D27861: [DAGCombiner] Match load by bytes idiom and fold it into a single load. Attempt #2..
Dec 16 2016, 1:49 PM
apilipenko retitled D27861: [DAGCombiner] Match load by bytes idiom and fold it into a single load. Attempt #2. from to [DAGCombiner] Match load by bytes idiom and fold it into a single load. Attempt #2..
Dec 16 2016, 1:48 PM

Dec 14 2016

apilipenko committed rL289646: Add a couple of assertions to the load combine code introduced by r289538.
Add a couple of assertions to the load combine code introduced by r289538
Dec 14 2016, 4:06 AM

Dec 13 2016

apilipenko committed rL289545: Use more detailed assertion messages in the code introduced by r289538.
Use more detailed assertion messages in the code introduced by r289538
Dec 13 2016, 8:36 AM
apilipenko added a comment to D26280: A number of issues in BrainF example.

General practice in LLVM is to make small isolated changes. In this review you seem to have at least two unrelated changes:

  1. Fixing the segfault,
  2. Fixing the output issue.

Both changes are fine on their own, but when they are mixed in one commit it's more difficult to review and reason about. Given BrainF is an example it's not a big deal, but in general it's considered to be a bad practice.

Dec 13 2016, 7:29 AM
apilipenko committed rL289540: Fix a buildbot failure introduced by r289538.
Fix a buildbot failure introduced by r289538
Dec 13 2016, 7:06 AM
apilipenko committed rL289538: [DAGCombiner] Match load by bytes idiom and fold it into a single load.
[DAGCombiner] Match load by bytes idiom and fold it into a single load
Dec 13 2016, 6:31 AM
apilipenko closed D26149: [DAGCombiner] Match load by bytes idiom and fold it into a single load by committing rL289538: [DAGCombiner] Match load by bytes idiom and fold it into a single load.
Dec 13 2016, 6:31 AM
apilipenko committed rL289537: Move BaseIndexOffset in DAGCombiner.cpp so it will be available for the….
Move BaseIndexOffset in DAGCombiner.cpp so it will be available for the…
Dec 13 2016, 6:26 AM

Dec 9 2016

apilipenko added inline comments to D26149: [DAGCombiner] Match load by bytes idiom and fold it into a single load.
Dec 9 2016, 7:50 AM
apilipenko updated the diff for D26149: [DAGCombiner] Match load by bytes idiom and fold it into a single load.

Address review comments.

Dec 9 2016, 7:49 AM

Dec 5 2016

apilipenko updated the diff for D26149: [DAGCombiner] Match load by bytes idiom and fold it into a single load.

Clang-formatted.

Dec 5 2016, 10:10 AM
apilipenko updated the diff for D26149: [DAGCombiner] Match load by bytes idiom and fold it into a single load.

Analyze the pattern byte by byte.

Dec 5 2016, 8:57 AM

Nov 30 2016

apilipenko added a comment to D26149: [DAGCombiner] Match load by bytes idiom and fold it into a single load.

We see load by bytes (with optional bswap) patterns in Java code originating from ByteBuffers from the standard library. This is the main motivator for the change. I don't have any numbers for C/C++ code but I expect it's not uncommon.

Nov 30 2016, 4:48 AM
apilipenko updated the diff for D26149: [DAGCombiner] Match load by bytes idiom and fold it into a single load.

Address review comments: rename locals in collectBitProviders, tighten CHECK patterns in non-x86 tests.

Nov 30 2016, 4:32 AM

Nov 29 2016

apilipenko committed rL288161: [CVP] Remove use of removed flag (-cvp-dont-process-adds) from the test.
[CVP] Remove use of removed flag (-cvp-dont-process-adds) from the test
Nov 29 2016, 8:53 AM
apilipenko committed rL288154: [CVP] Remove cvp-dont-process-adds flag.
[CVP] Remove cvp-dont-process-adds flag
Nov 29 2016, 8:35 AM