Page MenuHomePhabricator

apilipenko (Artur Pilipenko)
User

Projects

User does not belong to any projects.

User Details

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

Recent Activity

Fri, Sep 18

apilipenko requested review of D87954: GC-parseable element atomic memcpy/memmove, single patch.
Fri, Sep 18, 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
apilipenko accepted D60751: [NFC][InlineCost] cleanup - comments, overflow handling..
Apr 26 2019, 6:14 PM · Restricted Project

Apr 22 2019

apilipenko accepted D60659: [InstCombine] Eliminate stores to constant memory.

LGTM. I agree that we can leave the stronger variant for the future.

Apr 22 2019, 10:48 AM · Restricted Project

Apr 17 2019

apilipenko accepted D60093: [LoopPredication] Allow predication of loop invariant computations.

Looks good overall, a couple of comments inline.

Apr 17 2019, 4:32 AM · Restricted Project

Apr 15 2019

apilipenko accepted D60718: [LoopPred] Stop passing around builders [NFC].
Apr 15 2019, 10:39 AM · Restricted Project

Apr 3 2019

apilipenko added a comment to D60093: [LoopPredication] Allow predication of loop invariant computations.
  1. Since we need to fiddle with the insertion point I think we should stop using single IRBuilder which we pass around. It looks like creating a local IRBuilder is a cheap operation, so we can have local IRBuilders when we need to generate instructions. This way the insertion point will be clear from the local context.
Apr 3 2019, 1:53 PM · Restricted Project

Jan 9 2019

apilipenko added inline comments to D56074: [NFC] Add detector function for explicitly expressed guards.
Jan 9 2019, 4:53 PM

Jan 3 2019

apilipenko committed rL350351: [CaptureTracking] Add a unit test for MaxUsesToExplore.
[CaptureTracking] Add a unit test for MaxUsesToExplore
Jan 3 2019, 12:20 PM

Dec 17 2018

apilipenko committed rL349438: [CaptureTracking] Pass MaxUsesToExplore from wrappers to the actual….
[CaptureTracking] Pass MaxUsesToExplore from wrappers to the actual…
Dec 17 2018, 7:35 PM

Nov 29 2018

apilipenko committed rL347910: Introduce MaxUsesToExplore argument to capture tracking.
Introduce MaxUsesToExplore argument to capture tracking
Nov 29 2018, 12:11 PM
apilipenko closed D55042: Introduce MaxUsesToExplore argument to capture tracking.
Nov 29 2018, 12:11 PM

Nov 28 2018

apilipenko updated the diff for D55042: Introduce MaxUsesToExplore argument to capture tracking.

Add diff with context.

Nov 28 2018, 11:35 PM
apilipenko added a comment to D51207: Introduce llvm.experimental.widenable_condition intrinsic.

One of the alternatives naming schemes which was discussed is to call this intrinsic should_deoptimize. In this case the meaning of the returned value is inverted, so we need to or it with the condition which we want to widen.

Nov 28 2018, 6:44 PM
apilipenko created D55042: Introduce MaxUsesToExplore argument to capture tracking.
Nov 28 2018, 6:34 PM
apilipenko committed rL347826: NFC. Use unsigned type for uses counter in CaptureTracking.
NFC. Use unsigned type for uses counter in CaptureTracking
Nov 28 2018, 6:18 PM

Nov 12 2018

apilipenko added inline comments to D53892: [CodeGen] Support custom format of stack maps.
Nov 12 2018, 3:32 PM

Nov 7 2018

apilipenko accepted D54224: [CodeGen] Expose some data types and accessors from StackMaps.
Nov 7 2018, 2:33 PM
apilipenko added inline comments to D53892: [CodeGen] Support custom format of stack maps.
Nov 7 2018, 12:36 PM
apilipenko added inline comments to D54021: [LoopSimplifyCFG] Teach LoopSimplifyCFG to constant-fold branches and switches.
Nov 7 2018, 12:04 PM

Nov 2 2018

apilipenko accepted D50377: [LICM] Use ICFLoopSafetyInfo in LICM.
Nov 2 2018, 4:22 PM

Nov 1 2018

apilipenko accepted D54011: [NFC][LICM] Factor out instruction erasing logic.

With this change you seem to be invalidating AST for instructions which have not been previously invalidated. I would hesitate to call this NFC.

Nov 1 2018, 5:13 PM

Oct 29 2018

apilipenko added a comment to D50377: [LICM] Use ICFLoopSafetyInfo in LICM.

Current patch seems to have comments like "this block doesn't need invalidation". Maybe sink this decision down to the SafetyInfo implementation? It should reduce the complexity of the user: just call invalidate every time you delete/insert instructions and you would be fine.

Oct 29 2018, 4:03 PM

Sep 8 2018

apilipenko added inline comments to D51207: Introduce llvm.experimental.widenable_condition intrinsic.
Sep 8 2018, 6:42 PM

Sep 4 2018

apilipenko added inline comments to D51207: Introduce llvm.experimental.widenable_condition intrinsic.
Sep 4 2018, 2:56 PM

Jun 26 2018

apilipenko added a comment to D40425: Extending CFGPrinter and CallPrinter with Heat Colors.

@rcorcs this has been accepted for quite a while, is there anything preventing integration? I'm looking forward to using colored graphs out of the box.

Jun 26 2018, 8:40 AM · Restricted Project

Jun 25 2018

apilipenko committed rL335473: SafepointIRVerifier should ignore dead blocks and dead edges.
SafepointIRVerifier should ignore dead blocks and dead edges
Jun 25 2018, 6:56 AM
apilipenko closed D47441: SafepointIRVerifier should ignore dead blocks and dead edges.
Jun 25 2018, 6:55 AM
apilipenko committed rL335462: Revert change 335077 "[InlineSpiller] Fix a crash due to lack of forward….
Revert change 335077 "[InlineSpiller] Fix a crash due to lack of forward…
Jun 25 2018, 6:03 AM