Page MenuHomePhabricator

apilipenko (Artur Pilipenko)
User

Projects

User does not belong to any projects.

User Details

User Since
Apr 16 2015, 3:05 AM (294 w, 1 d)

Recent Activity

Thu, Nov 19

apilipenko committed rG887c7660bdf3: [BasicAA] Deoptimize intrinsics don't modify memory (authored by apilipenko).
[BasicAA] Deoptimize intrinsics don't modify memory
Thu, Nov 19, 12:09 PM
apilipenko closed D91658: [BasicAA] Deoptimize intrinsics don't modify memory.
Thu, Nov 19, 12:08 PM · Restricted Project

Tue, Nov 17

apilipenko requested review of D91658: [BasicAA] Deoptimize intrinsics don't modify memory.
Tue, Nov 17, 1:35 PM · Restricted Project

Wed, Nov 11

apilipenko accepted D90395: [NFC][SCEV] Generalize monotonicity check for full and limited iteration space.
Wed, Nov 11, 8:45 AM · Restricted Project

Tue, Nov 10

apilipenko added inline comments to D90395: [NFC][SCEV] Generalize monotonicity check for full and limited iteration space.
Tue, Nov 10, 7:15 PM · Restricted Project
apilipenko accepted D91126: [SCEV] Generalize no-self-wrap check in isLoopInvariantExitCondDuringFirstIterations.
Tue, Nov 10, 7:10 PM · Restricted Project

Mon, Nov 9

apilipenko added a comment to D90395: [NFC][SCEV] Generalize monotonicity check for full and limited iteration space.

Can we split restructuring and generalization (possibly adding a test for the generalization part)? It's hard to assess correctness when you combine the two in one change.

Mon, Nov 9, 4:19 PM · Restricted Project

Oct 26 2020

apilipenko accepted D87832: [IndVars] Remove monotonic checks with unknown exit count.

Accepting this change to unblock the progress.

Oct 26 2020, 5:23 PM · Restricted Project

Oct 25 2020

apilipenko added inline comments to D87832: [IndVars] Remove monotonic checks with unknown exit count.
Oct 25 2020, 10:24 PM · Restricted Project

Oct 23 2020

apilipenko committed rG6ec2c5e402a7: GC-parseable element atomic memcpy/memmove (authored by apilipenko).
GC-parseable element atomic memcpy/memmove
Oct 23 2020, 2:06 PM
apilipenko closed D88861: GC-parseable element atomic memcpy/memmove.
Oct 23 2020, 2:06 PM · Restricted Project

Oct 22 2020

apilipenko added inline comments to D87832: [IndVars] Remove monotonic checks with unknown exit count.
Oct 22 2020, 5:00 PM · Restricted Project

Oct 21 2020

apilipenko committed rGe8cce5ad892d: [RS4GC] NFC. Preparatory refactoring to make GC parseable memcpy (authored by apilipenko).
[RS4GC] NFC. Preparatory refactoring to make GC parseable memcpy
Oct 21 2020, 12:38 PM
apilipenko added inline comments to D88861: GC-parseable element atomic memcpy/memmove.
Oct 21 2020, 11:42 AM · Restricted Project
apilipenko added inline comments to D88861: GC-parseable element atomic memcpy/memmove.
Oct 21 2020, 11:29 AM · Restricted Project
apilipenko updated the diff for D88861: GC-parseable element atomic memcpy/memmove.

Address review comments.

Oct 21 2020, 11:28 AM · Restricted Project

Oct 20 2020

apilipenko added a reviewer for D88861: GC-parseable element atomic memcpy/memmove: dantrushin.
Oct 20 2020, 9:05 PM · Restricted Project
apilipenko added a comment to D87832: [IndVars] Remove monotonic checks with unknown exit count.

Still digging through the main logic. In the meantime see some minor comments inline.

Oct 20 2020, 1:39 PM · Restricted Project
apilipenko accepted D89567: [AsmWriter] Construct SlotTracker with the function.
Oct 20 2020, 1:07 PM · Restricted Project

Oct 19 2020

apilipenko committed rG037ef7d70c49: Adding new Azul representative to security group (authored by apilipenko).
Adding new Azul representative to security group
Oct 19 2020, 10:43 PM
apilipenko closed D89287: Adding new Azul representative to security group.
Oct 19 2020, 10:42 PM · Restricted Project

Oct 16 2020

apilipenko added a reviewer for D88861: GC-parseable element atomic memcpy/memmove: DaniilSuchkov.
Oct 16 2020, 9:58 AM · Restricted Project

Oct 12 2020

apilipenko requested review of D89287: Adding new Azul representative to security group.
Oct 12 2020, 7:04 PM · Restricted Project

Oct 7 2020

apilipenko updated the diff for D88861: GC-parseable element atomic memcpy/memmove.

Added a note into the doc that a GC parseable copy operation is not required to take a safepoint.

Oct 7 2020, 9:41 AM · Restricted Project

Oct 6 2020

apilipenko added a comment to D88861: GC-parseable element atomic memcpy/memmove.

Currently, if we have a loop with a safepoint poll it is not converted into a memcpy/memmove. This is because the safepoint has read semantic and prevents LoopIdiomRecognize from performing the transform. In theory we can have a transform which recognizes loops with safepoints and converts them to non-leaf memcpy/memmove. It will be up to this new transform to figure out the legality and interactions with the runtime requirements.

Oct 6 2020, 4:43 PM · Restricted Project

Oct 5 2020

apilipenko abandoned D87954: GC-parseable element atomic memcpy/memmove, single patch.

This was a draft. Abandoned in favor of D88861.

Oct 5 2020, 4:40 PM · Restricted Project
apilipenko requested review of D88861: GC-parseable element atomic memcpy/memmove.
Oct 5 2020, 4:39 PM · Restricted Project

Sep 18 2020

apilipenko requested review of D87954: GC-parseable element atomic memcpy/memmove, single patch.
Sep 18 2020, 4:37 PM · Restricted Project

Jun 19 2020

apilipenko added a comment to D82205: InlineCost - method ::print() to allow dump of statistics to non-debug builds.

@mtrofin, I think it makes sense to have these tests available in all configurations. We have a bunch of printer passes which are not conditioned by NDEBUG.

Jun 19 2020, 1:04 PM · Restricted Project
apilipenko accepted D81140: [Peeling] Extend the scope of peeling a bit.
Jun 19 2020, 10:52 AM · Restricted Project

Jun 17 2020

apilipenko accepted D81321: Compatibility of AnnotationWriter with BasicBlock Class.

Look good.

Jun 17 2020, 11:50 AM · Restricted Project

Jun 3 2020

apilipenko added a comment to D81026: Inline Cost improvement - GetElementPtr with constant operands.

That sounds fine, my point is that having some run on benchmarks to quantify the benefit would help understand the value of this particular omission from the cost analysis (or at minimum show there's no regression, or understand where the regressions may be). It could shed important insights into what matters for the cost analysis, basically.

Jun 3 2020, 11:32 AM · Restricted Project

Apr 16 2020

apilipenko added inline comments to D77762: [llvm][nfc] InstructionCostDetail encapsulation.
Apr 16 2020, 10:02 AM · Restricted Project

Apr 9 2020

apilipenko accepted D76507: Bug in llvm/utils/print-before-all.py script, fails to compile chunk-0.ll.
Apr 9 2020, 1:27 PM · Restricted Project

Apr 7 2020

apilipenko added a comment to D76507: Bug in llvm/utils/print-before-all.py script, fails to compile chunk-0.ll.

Can you please elaborate what is the issue you are solving? May be give an example?

Apr 7 2020, 2:10 PM · Restricted Project

Feb 27 2020

apilipenko committed rG02e3d5c3a25b: Fix DSE miscompile when store is clobbered across loop iterations (authored by apilipenko).
Fix DSE miscompile when store is clobbered across loop iterations
Feb 27 2020, 2:51 PM
apilipenko closed D68006: DSE miscompile when store is clobbered across loop iterations.
Feb 27 2020, 2:51 PM · Restricted Project

Feb 26 2020

apilipenko committed rGc965fd942f1d: Cost Annotation Writer for InlineCost (authored by knaumov).
Cost Annotation Writer for InlineCost
Feb 26 2020, 5:04 PM
apilipenko closed D71501: Cost Annotation Writer for InlineCost.
Feb 26 2020, 5:04 PM · Restricted Project
apilipenko updated the diff for D68006: DSE miscompile when store is clobbered across loop iterations.

Demonstrating an improvement accuracy due to PHI translation turned out to be a bit tricky.

Feb 26 2020, 3:42 PM · Restricted Project

Feb 21 2020

apilipenko committed rGe33c9bb245a0: Flags for displaying only hot nodes in CFGPrinter graph (authored by knaumov).
Flags for displaying only hot nodes in CFGPrinter graph
Feb 21 2020, 5:24 PM
apilipenko closed D74346: Flags for displaying only hot nodes in CFGPrinter graph.
Feb 21 2020, 5:24 PM · Restricted Project
apilipenko abandoned D62563: Fix incorrect expand of non-linear addrecs.

Finished by @ebrevnov as D65276.

Feb 21 2020, 4:39 PM · Restricted Project
apilipenko updated the diff for D68006: DSE miscompile when store is clobbered across loop iterations.

I reworked the patch using PHITransAddr. Now instead of tracking the backedge flag I keep track of the address to check and translate the address when needed.

Feb 21 2020, 4:30 PM · Restricted Project
apilipenko accepted D71501: Cost Annotation Writer for InlineCost.

Couple of nit comments inlined, LGTM once addressed.

Feb 21 2020, 2:02 PM · Restricted Project

Feb 20 2020

apilipenko added inline comments to D71501: Cost Annotation Writer for InlineCost.
Feb 20 2020, 3:09 PM · Restricted Project

Feb 14 2020

apilipenko added a comment to D74346: Flags for displaying only hot nodes in CFGPrinter graph.

what is the use case of these options? Do hidden nodes create too much noise?

Feb 14 2020, 3:34 PM · Restricted Project

Feb 12 2020

apilipenko accepted D74346: Flags for displaying only hot nodes in CFGPrinter graph.

LGTM with the renaming addressed.

Feb 12 2020, 12:24 PM · Restricted Project
apilipenko added a comment to D68006: DSE miscompile when store is clobbered across loop iterations.

Ping?

Feb 12 2020, 12:06 PM · Restricted Project

Jan 31 2020

apilipenko updated the diff for D68006: DSE miscompile when store is clobbered across loop iterations.
Jan 31 2020, 4:34 PM · Restricted Project
apilipenko committed rG34547ac9594d: NFC. Comments cleanup in DSE::memoryIsNotModifiedBetween (authored by apilipenko).
NFC. Comments cleanup in DSE::memoryIsNotModifiedBetween
Jan 31 2020, 3:30 PM
apilipenko added inline comments to D71501: Cost Annotation Writer for InlineCost.
Jan 31 2020, 2:53 PM · Restricted Project

Dec 16 2019

apilipenko added inline comments to D71501: Cost Annotation Writer for InlineCost.
Dec 16 2019, 10:34 AM · Restricted Project

Nov 21 2019

apilipenko accepted D70502: Broaden the definition of a "widenable branch".
Nov 21 2019, 10:23 AM · Restricted Project

Nov 11 2019

apilipenko accepted D68263: [NFC][InstCombine] Add tests that show a number of canonicalization opportunities.
Nov 11 2019, 5:50 PM · Restricted Project

Nov 8 2019

apilipenko accepted D68128: [InstCombine] Fold PHIs with equal incoming pointers.
Nov 8 2019, 6:58 PM · Restricted Project

Nov 7 2019

apilipenko accepted D69227: [LICM] Support hosting of dynamic allocas out of loops.
Nov 7 2019, 4:28 PM · Restricted Project
apilipenko accepted D69907: [LICM] Hoisting of widenable conditions out of loops.

Yeah, this limitation seems arbitrary and overly conservative.

Nov 7 2019, 1:58 PM · Restricted Project
apilipenko added a comment to D68128: [InstCombine] Fold PHIs with equal incoming pointers.

Can we handle the case with inbounds offsets only first and extend with non-inbounds support in a follow up change? This way in the first change you'll not need to change IR interfaces at all.

Nov 7 2019, 12:50 PM · Restricted Project

Nov 6 2019

apilipenko accepted D69916: [WC] Fix a subtle bug in our definition of widenable branch.

LGTM. Maybe add a test when the WC has one use but the branch condition is used in multiple branches.

Nov 6 2019, 1:27 PM · Restricted Project

Nov 1 2019

apilipenko accepted D69689: [SimplifyCFG] Use a (trivially) dominanting widenable branch to remove later slow path blocks.
Nov 1 2019, 7:53 PM · Restricted Project

Oct 31 2019

apilipenko added inline comments to D69689: [SimplifyCFG] Use a (trivially) dominanting widenable branch to remove later slow path blocks.
Oct 31 2019, 5:40 PM · Restricted Project

Oct 28 2019

apilipenko accepted D68004: [InstCombine] Fix call guard difference with dbg.
Oct 28 2019, 3:37 PM · Restricted Project

Oct 20 2019

apilipenko committed rL375388: Request github commit access.
Request github commit access
Oct 20 2019, 11:19 PM

Oct 1 2019

apilipenko added a comment to D68006: DSE miscompile when store is clobbered across loop iterations.

Ping?

Oct 1 2019, 10:37 AM · Restricted Project

Sep 27 2019

apilipenko abandoned D67870: DSE miscompile when store is clobbered across loop iterations.

This change was resubmitted as D68006.

Sep 27 2019, 4:51 PM
apilipenko added a comment to D67870: DSE miscompile when store is clobbered across loop iterations.

This is specifically a hole in the calloc() handling, right? This case can't come up in regular load->store no-op stores: the address of the load dominates the load, so the address dominates all the operations between the load and the store, so alias() does the right thing.

That's right. I don't think that load->store case is affected.

Sep 27 2019, 4:51 PM
apilipenko created D68170: Fix MSSA update in MergeBlockIntoPredecessor.
Sep 27 2019, 4:42 PM

Sep 25 2019

apilipenko accepted D67408: [IndVars] An implementation of loop predication without a need for speculation.

It looks like you successfully avoid the pitfall the original original loop predication fell into by filtering implicit exits and using trip counts. It makes me think that we can revisit loop predication again and go back to SCEV based implementation.

Sep 25 2019, 5:13 PM · Restricted Project
apilipenko added a comment to D68004: [InstCombine] Fix call guard difference with dbg.

+1 to a test.

Sep 25 2019, 3:57 PM · Restricted Project

Sep 24 2019

apilipenko added a comment to D67870: DSE miscompile when store is clobbered across loop iterations.

It looks like you forgot to CC llvm-commits? Please post a new differential so the patch is sent to the list.

Resubmitted as D68006.

Sep 24 2019, 7:37 PM
apilipenko created D68006: DSE miscompile when store is clobbered across loop iterations.
Sep 24 2019, 7:34 PM · Restricted Project
apilipenko added a comment to D68004: [InstCombine] Fix call guard difference with dbg.

We should just skip debug instructions while looking for the guard in the window. Just use getNextNonDebugInstruction instead of current getNextNode.

Sep 24 2019, 7:11 PM · Restricted Project
apilipenko committed rG5c1447cd4384: [SCEV] Disable canonical expansion for non-affine addrecs. (authored by apilipenko).
[SCEV] Disable canonical expansion for non-affine addrecs.
Sep 24 2019, 4:21 PM
apilipenko committed rL372789: [SCEV] Disable canonical expansion for non-affine addrecs..
[SCEV] Disable canonical expansion for non-affine addrecs.
Sep 24 2019, 4:21 PM
apilipenko closed D65276: [SCEV] Disable canonical expansion for nested recurrences..
Sep 24 2019, 4:20 PM · Restricted Project

Sep 20 2019

apilipenko committed rG3e6590c45177: Support for 64-bit PC-relative relocations for X86_64 (authored by apilipenko).
Support for 64-bit PC-relative relocations for X86_64
Sep 20 2019, 6:39 PM
apilipenko committed rL372447: Support for 64-bit PC-relative relocations for X86_64.
Support for 64-bit PC-relative relocations for X86_64
Sep 20 2019, 6:39 PM
apilipenko closed D67779: Support for 64-bit PC-relative relocations for X86_64.
Sep 20 2019, 6:39 PM · Restricted Project
apilipenko accepted D65276: [SCEV] Disable canonical expansion for nested recurrences..
Sep 20 2019, 6:31 PM · Restricted Project
apilipenko created D67870: DSE miscompile when store is clobbered across loop iterations.
Sep 20 2019, 5:44 PM

Aug 28 2019

apilipenko committed rG925afc1ce70a: Fix for "DICompileUnit not listed in llvm.dbg.cu" verification error after ... (authored by apilipenko).
Fix for "DICompileUnit not listed in llvm.dbg.cu" verification error after ...
Aug 28 2019, 2:28 PM
apilipenko committed rL370265: Fix for "DICompileUnit not listed in llvm.dbg.cu" verification error after ....
Fix for "DICompileUnit not listed in llvm.dbg.cu" verification error after ...
Aug 28 2019, 2:26 PM
apilipenko closed D66510: Fix for "DICompileUnit not listed in llvm.dbg.cu" verification error after cloning a function from a different module.
Aug 28 2019, 2:26 PM · Restricted Project

Aug 1 2019

apilipenko added a comment to D65276: [SCEV] Disable canonical expansion for nested recurrences..

The original patch introduces a function minIterationWidthForEvaluateAtIteration. This way it exposes the limitation of evaluateAtIteration through the API and makes it possible for the user to choose the proper It width (e.g. like I did in the first revision https://reviews.llvm.org/D62563?vs=on&id=201795). What was the reason to remove it?

Aug 1 2019, 4:00 PM · Restricted Project

Jun 27 2019

apilipenko accepted D63823: [InlineCost] make InlineCost assignable.

Even though it's motivated by downstream code, looks harmless to change upstream.

Jun 27 2019, 1:54 PM · Restricted Project

Jun 11 2019

apilipenko accepted D63112: Generalize icmp matching in IndVars' eliminateTrunc.
Jun 11 2019, 3:07 PM · Restricted Project

Jun 3 2019

apilipenko updated the diff for D62563: Fix incorrect expand of non-linear addrecs.
Jun 3 2019, 11:55 AM · Restricted Project
apilipenko updated the diff for D62563: Fix incorrect expand of non-linear addrecs.

Fall back to non-canonical mode for non-affine addrecs.

Jun 3 2019, 11:41 AM · Restricted Project
apilipenko committed rG786a85dcd20c: Add ScalarEvolutionsTest::SCEVExpandInsertCanonicalIV tests (authored by apilipenko).
Add ScalarEvolutionsTest::SCEVExpandInsertCanonicalIV tests
Jun 3 2019, 11:25 AM
apilipenko committed rL362432: Add ScalarEvolutionsTest::SCEVExpandInsertCanonicalIV tests .
Add ScalarEvolutionsTest::SCEVExpandInsertCanonicalIV tests
Jun 3 2019, 11:25 AM

May 31 2019

apilipenko accepted D62748: [LoopPred] Handle a subset of NE comparison based latches.
May 31 2019, 5:24 PM · Restricted Project

May 30 2019

apilipenko accepted D61843: [DAGCombine] Match a pattern where a wide type scalar value is stored by several narrow stores.

LGTM

May 30 2019, 12:18 PM · Restricted Project

May 29 2019

apilipenko added a comment to D62563: Fix incorrect expand of non-linear addrecs.

Artur, nice find. In terms of staging complexity, have you considered how impactful it would be to simply refuse to generate the value at the given iteration in this case? evaluateAtIteration is allowed to return SCEVCouldNotCompute. I'm tempted to first introduce a bailout for a quick correctness fix - maybe along side your assert to see if we're missing any other cases - and then spend more time considering your full fix.

May 29 2019, 2:22 PM · Restricted Project
apilipenko added a comment to D61843: [DAGCombine] Match a pattern where a wide type scalar value is stored by several narrow stores.

Have you considered reusing calculateByteProvider mechanism from load combining instead of matching an exact pattern?

May 29 2019, 12:53 PM · Restricted Project

May 28 2019

apilipenko updated the summary of D62563: Fix incorrect expand of non-linear addrecs.
May 28 2019, 5:28 PM · Restricted Project
apilipenko created D62563: Fix incorrect expand of non-linear addrecs.
May 28 2019, 5:27 PM · Restricted Project

Apr 29 2019

apilipenko added inline comments to D61236: [NFC] Add a static function to do the endian check.
Apr 29 2019, 9:24 AM · Restricted Project

Apr 28 2019

apilipenko accepted D60740: [InlineCost] cleanup calculations of Cost and Threshold.
Apr 28 2019, 10:54 PM · Restricted Project

Apr 26 2019

apilipenko added inline comments to D60740: [InlineCost] cleanup calculations of Cost and Threshold.
Apr 26 2019, 6:22 PM · Restricted Project