Page MenuHomePhabricator

apilipenko (Artur Pilipenko)
User

Projects

User does not belong to any projects.

User Details

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

Recent Activity

Fri, Jul 1

apilipenko added a comment to D128155: [GuardWidening] Use freeze to widen using possible poison value..

Could you please give a brief outline of the approach?

Fri, Jul 1, 8:17 PM · Restricted Project, Restricted Project
apilipenko added inline comments to D128904: Bug fix "GC relocate is incorrectly tied to the statepoint".
Fri, Jul 1, 8:12 PM · Restricted Project, Restricted Project

Wed, Jun 22

apilipenko accepted D128254: [RS4GC] Handle freeze case for vector.

In other instructions, we seem to just duplicate the handling in findBaseDefiningValueOfVector and findBaseDefiningValue. Doing so for freeze would be more consistent with the existing code.

Wed, Jun 22, 11:53 AM · Restricted Project, Restricted Project

Wed, Jun 15

apilipenko added a comment to D127884: [Draft][LangRef] Document `elementtype` attribute requirement on atomic memory intrinsics..

The optimizer can insert new atomic memcpy/memmove calls, e.g loop-idiom-recognize would do that. Currently, when loop-idiom-recognize inserts such a call it doesn't tag it with the element type, which makes it an incorrect transform for us.

Wed, Jun 15, 3:12 PM · Restricted Project, Restricted Project

May 25 2022

apilipenko added a comment to D125690: [MemIntrinsics] Add an API to get elementtype attribute value. NFC..

Copying arrays of pointers in environments with moving garbage collector is different from copying of 'primitive' types of the same types.
Well, I understand that upstream may not take it as a 'justification'.

May 25 2022, 12:30 PM · Restricted Project, Restricted Project

Apr 26 2022

apilipenko committed rG5ee0123642fe: [EarlyCSE] Add tests demonstrating missed opportunitites (authored by apilipenko).
[EarlyCSE] Add tests demonstrating missed opportunitites
Apr 26 2022, 12:01 PM · Restricted Project, Restricted Project

Apr 19 2022

apilipenko accepted D119137: Replace Steve Klabnik with Josh Stone as one of the Rust Security Response WG representatives.
Apr 19 2022, 12:21 PM · Restricted Project, Restricted Project

Apr 5 2022

apilipenko committed rG857d699667f6: Move BasicBlock::getTerminator definition to the header (authored by apilipenko).
Move BasicBlock::getTerminator definition to the header
Apr 5 2022, 1:12 PM · Restricted Project, Restricted Project

Mar 31 2022

apilipenko committed rG4fbde1ef40e6: Fix MemorySSAUpdater::insertDef for dead code (authored by apilipenko).
Fix MemorySSAUpdater::insertDef for dead code
Mar 31 2022, 4:33 PM · Restricted Project, Restricted Project
apilipenko closed D122601: Fix MemorySSAUpdater::insertDef for dead code.
Mar 31 2022, 4:33 PM · Restricted Project, Restricted Project

Mar 28 2022

apilipenko requested review of D122601: Fix MemorySSAUpdater::insertDef for dead code.
Mar 28 2022, 11:07 AM · Restricted Project, Restricted Project

Jan 24 2022

apilipenko accepted D116150: [SCEV] Use lshr in implications.
Jan 24 2022, 4:10 AM · Restricted Project

Jan 18 2022

apilipenko added inline comments to D116150: [SCEV] Use lshr in implications.
Jan 18 2022, 5:18 PM · Restricted Project

Jan 12 2022

apilipenko added inline comments to D116150: [SCEV] Use lshr in implications.
Jan 12 2022, 2:59 AM · Restricted Project

Dec 14 2021

apilipenko accepted D115657: [Nomination] Adding Intel representatives to security group.
Dec 14 2021, 11:20 AM · Restricted Project

Nov 24 2021

apilipenko committed rGaa60d169ea62: [CVP] Add a cl::opt for canonicalization of signed relational comparisons (authored by apilipenko).
[CVP] Add a cl::opt for canonicalization of signed relational comparisons
Nov 24 2021, 1:53 PM
apilipenko added a comment to D112895: [CVP] Canonicalize signed relational comparisons of scalar integers to unsigned comparison predicates.

Do you mind if I put this change under an on by default cl::opt flag? This way we can temporarily turn it off downstream.

Nov 24 2021, 10:27 AM · Restricted Project

Nov 23 2021

apilipenko added a comment to D112895: [CVP] Canonicalize signed relational comparisons of scalar integers to unsigned comparison predicates.

This change broke the ability to discard checks in some cases. Consider this example:

define i1 @test1(i32 %a, i32* %b_ptr) {
  %b = load i32, i32* %b_ptr, align 8, !range !{i32 0, i32 2147483646}
  %c1 = icmp slt i32 %a, %b
  br i1 %c1, label %exit, label %cont.1
Nov 23 2021, 11:40 AM · Restricted Project

Nov 9 2021

apilipenko added a comment to D112693: [SimplifyCFG] Fix miscompile in tryWidenCondBranchToCondBranch. PR52290.

I agree with Philip, widening transformation doesn't rely on deoptimizations.

Nov 9 2021, 12:20 PM · Restricted Project, Restricted Project

Oct 19 2021

apilipenko accepted D111668: [LoopPredication] Calculate profitability without BPI.
Oct 19 2021, 9:51 AM · Restricted Project

Oct 14 2021

apilipenko committed rG3f96f7b30c91: Fix getInlineCost with ComputeFullInlineCost enabled (authored by apilipenko).
Fix getInlineCost with ComputeFullInlineCost enabled
Oct 14 2021, 5:48 PM
apilipenko closed D111687: Fix getInlineCost with ComputeFullInlineCost enabled.
Oct 14 2021, 5:48 PM · Restricted Project
apilipenko updated the diff for D111687: Fix getInlineCost with ComputeFullInlineCost enabled.

Add a simple test case using -inline-cost-full cl::opt.

Oct 14 2021, 2:38 PM · Restricted Project

Oct 12 2021

apilipenko updated the diff for D111687: Fix getInlineCost with ComputeFullInlineCost enabled.
Oct 12 2021, 8:31 PM · Restricted Project
apilipenko requested review of D111687: Fix getInlineCost with ComputeFullInlineCost enabled.
Oct 12 2021, 6:15 PM · Restricted Project

Oct 5 2021

apilipenko added a comment to D109504: [WIP] [Intrinsics] Introduce memcmp intrinsics..

I also notice that the new memcmp intrinsic returns i1, which is different from libc memcmp. libc memcmp returns and int indicating which of the sides was greater. Looks like, the new intrinsic matches with bcmp semantic.

Oct 5 2021, 4:29 PM · Restricted Project
apilipenko added a comment to D109504: [WIP] [Intrinsics] Introduce memcmp intrinsics..

Since this is a change to LangRef, please, post the proposal to llvm-dev.

Oct 5 2021, 4:21 PM · Restricted Project

Aug 4 2021

apilipenko added a comment to D107345: Introduce LowerGCLeafIntrinsics pass.

There is a target-specific hook to emit code for regular (non-atomic) memcpys: EmitTargetCodeForMemcpy. Maybe we should just implement a similar hook for element-atomic copy?

Aug 4 2021, 9:16 PM · Restricted Project
apilipenko added a comment to D107345: Introduce LowerGCLeafIntrinsics pass.

I think the name of the pass is misleading. What you are doing here is you provide an inlined lowering for a memory builtin. Your current implementation has a limitation such that it only inlines gc-leaf element atomic memcpys. I don't think the fact that it is gc-leaf is critical here. This transform can be extended to handle non-GC leaf operations. It can also be extended to handle non-atomic operations.

Aug 4 2021, 7:15 PM · Restricted Project

Jul 1 2021

apilipenko accepted D105118: [remangleIntrinsicFunction] Detect and resolve name clash.

Looks good.

Jul 1 2021, 8:59 AM · Restricted Project

Jun 30 2021

apilipenko added inline comments to D105118: [remangleIntrinsicFunction] Detect and resolve name clash.
Jun 30 2021, 9:45 AM · Restricted Project

Jun 18 2021

apilipenko added a comment to D104403: [SCEV] Avoid pointer subtraction of non-integral pointers [WIP].

FYI, I tried to take this patch for performance verification, but it crashed in smoke testing. I haven't yet looked why.

Jun 18 2021, 10:15 AM · Restricted Project

Jun 8 2021

apilipenko committed rG9197bac297f7: Add an option to hide "cold" blocks from CFG graph (authored by apilipenko).
Add an option to hide "cold" blocks from CFG graph
Jun 8 2021, 11:30 AM
apilipenko closed D103640: Add an option to hide "cold" blocks from CFG graph.
Jun 8 2021, 11:29 AM · Restricted Project

Jun 3 2021

apilipenko requested review of D103640: Add an option to hide "cold" blocks from CFG graph.
Jun 3 2021, 12:06 PM · Restricted Project
apilipenko committed rG5a2aec3f27ab: NFC. Mark DOTFuncInfo getters as const (authored by apilipenko).
NFC. Mark DOTFuncInfo getters as const
Jun 3 2021, 11:27 AM
apilipenko committed rGa06e63fa522f: NFC. Refactor DOTGraphTraits::isNodeHidden (authored by apilipenko).
NFC. Refactor DOTGraphTraits::isNodeHidden
Jun 3 2021, 11:27 AM

Mar 24 2021

apilipenko added a comment to D99135: [deref] Implement initial set of inference rules for deref-at-point.

I looked at the GC part and it looks good to me.

Mar 24 2021, 3:30 PM · Restricted Project

Nov 19 2020

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

Nov 17 2020

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

Nov 11 2020

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

Nov 10 2020

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

Nov 9 2020

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.

Nov 9 2020, 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