Page MenuHomePhabricator

mzolotukhin (Michael Zolotukhin)
User

Projects

User does not belong to any projects.

User Details

User Since
Dec 5 2014, 3:20 PM (434 w, 18 h)

Recent Activity

Oct 29 2019

mzolotukhin committed rGedaa5648cebc: Merge remote-tracking branch 'llvm.org/master' into upstream-with-swift (authored by mzolotukhin).
Merge remote-tracking branch 'llvm.org/master' into upstream-with-swift
Oct 29 2019, 4:34 PM
mzolotukhin committed rGdb45a6dbd199: Merge remote-tracking branch 'llvm.org/master' into upstream-with-swift (authored by mzolotukhin).
Merge remote-tracking branch 'llvm.org/master' into upstream-with-swift
Oct 29 2019, 4:34 PM
mzolotukhin committed rGfbfe708f8ac8: Merge remote-tracking branch 'llvm.org/master' into upstream-with-swift (authored by mzolotukhin).
Merge remote-tracking branch 'llvm.org/master' into upstream-with-swift
Oct 29 2019, 3:40 PM
mzolotukhin committed rG1827af49a0d0: Remove forgotten merge conflict marker. (authored by mzolotukhin).
Remove forgotten merge conflict marker.
Oct 29 2019, 3:40 PM
mzolotukhin committed rG05f114fb056b: Merge remote-tracking branch 'llvm.org/master' into upstream-with-swift (authored by mzolotukhin).
Merge remote-tracking branch 'llvm.org/master' into upstream-with-swift
Oct 29 2019, 3:40 PM
mzolotukhin committed rG86590dff4271: Merge commit '1e1801c' into upstream-with-swift (authored by mzolotukhin).
Merge commit '1e1801c' into upstream-with-swift
Oct 29 2019, 3:39 PM
mzolotukhin committed rG89bd3af789c2: Merge commit '103c73c' into upstream-with-swift (authored by mzolotukhin).
Merge commit '103c73c' into upstream-with-swift
Oct 29 2019, 3:39 PM
mzolotukhin committed rG5d5a3c9cf65e: Merge commit 'd65aefc' into upstream-with-swift (authored by mzolotukhin).
Merge commit 'd65aefc' into upstream-with-swift
Oct 29 2019, 3:39 PM
mzolotukhin committed rG59057f7f5909: Merge commit '5431b56' into upstream-with-swift (authored by mzolotukhin).
Merge commit '5431b56' into upstream-with-swift
Oct 29 2019, 3:39 PM
mzolotukhin committed rGaa530639f6fe: Merge commit '94ecdac' into upstream-with-swift (authored by mzolotukhin).
Merge commit '94ecdac' into upstream-with-swift
Oct 29 2019, 3:39 PM
mzolotukhin committed rGdc4081d1c614: Merge commit '2c77fcc' into upstream-with-swift (authored by mzolotukhin).
Merge commit '2c77fcc' into upstream-with-swift
Oct 29 2019, 3:39 PM
mzolotukhin committed rGf6541f2426b7: Merge commit 'e470c70' into upstream-with-swift (authored by mzolotukhin).
Merge commit 'e470c70' into upstream-with-swift
Oct 29 2019, 3:39 PM
mzolotukhin committed rG312282cd9c73: Merge commit '2b290a9' into upstream-with-swift (authored by mzolotukhin).
Merge commit '2b290a9' into upstream-with-swift
Oct 29 2019, 3:39 PM
mzolotukhin committed rG40eab40d102f: Merge commit '03af6d4' into upstream-with-swift (authored by mzolotukhin).
Merge commit '03af6d4' into upstream-with-swift
Oct 29 2019, 3:39 PM
mzolotukhin committed rGe063d36679d9: Merge commit '3d4e94d' into upstream-with-swift (authored by mzolotukhin).
Merge commit '3d4e94d' into upstream-with-swift
Oct 29 2019, 3:39 PM
mzolotukhin committed rG055e8363eb79: Merge commit 'c0f35f8' into upstream-with-swift (authored by mzolotukhin).
Merge commit 'c0f35f8' into upstream-with-swift
Oct 29 2019, 3:38 PM
mzolotukhin committed rGd01c381597d5: Merge commit 'eeebc9f' into upstream-with-swift (authored by mzolotukhin).
Merge commit 'eeebc9f' into upstream-with-swift
Oct 29 2019, 3:38 PM
mzolotukhin committed rGc8fa3790a98b: Merge commit '20afd37' into upstream-with-swift (authored by mzolotukhin).
Merge commit '20afd37' into upstream-with-swift
Oct 29 2019, 3:38 PM
mzolotukhin committed rGf9b4c467aa12: Merge commit '542cfb1' into upstream-with-swift (authored by mzolotukhin).
Merge commit '542cfb1' into upstream-with-swift
Oct 29 2019, 3:38 PM
mzolotukhin committed rG6205e7004ed4: Merge commit '18780e4' into upstream-with-swift (authored by mzolotukhin).
Merge commit '18780e4' into upstream-with-swift
Oct 29 2019, 3:38 PM
mzolotukhin committed rG895fbe3d62b9: Merge commit 'ce7fc60' into upstream-with-swift (authored by mzolotukhin).
Merge commit 'ce7fc60' into upstream-with-swift
Oct 29 2019, 3:38 PM
mzolotukhin committed rG68afd450d17d: Merge commit 'd69c23c' into upstream-with-swift (authored by mzolotukhin).
Merge commit 'd69c23c' into upstream-with-swift
Oct 29 2019, 3:38 PM
mzolotukhin committed rGd2c8224614e2: Merge commit '1719a98' into upstream-with-swift (authored by mzolotukhin).
Merge commit '1719a98' into upstream-with-swift
Oct 29 2019, 3:38 PM
mzolotukhin committed rG026246ffcbbc: Merge commit '8b19a5d' into upstream-with-swift (authored by mzolotukhin).
Merge commit '8b19a5d' into upstream-with-swift
Oct 29 2019, 3:38 PM
mzolotukhin committed rG5a8936b26c8a: Merge commit '5b07bb0' into upstream-with-swift (authored by mzolotukhin).
Merge commit '5b07bb0' into upstream-with-swift
Oct 29 2019, 3:38 PM
mzolotukhin committed rG58b54fd5e591: Merge commit 'a8c7c21' into upstream-with-swift (authored by mzolotukhin).
Merge commit 'a8c7c21' into upstream-with-swift
Oct 29 2019, 3:38 PM
mzolotukhin committed rG006b6b980633: Merge commit '9340055' into upstream-with-swift (authored by mzolotukhin).
Merge commit '9340055' into upstream-with-swift
Oct 29 2019, 3:38 PM
mzolotukhin committed rGb0c6724042f0: Merge commit 'f5200f6' into upstream-with-swift (authored by mzolotukhin).
Merge commit 'f5200f6' into upstream-with-swift
Oct 29 2019, 3:38 PM
mzolotukhin committed rGd5e85e78eaca: Merge commit 'd080705' into upstream-with-swift (authored by mzolotukhin).
Merge commit 'd080705' into upstream-with-swift
Oct 29 2019, 3:38 PM
mzolotukhin committed rG3e6119ef8161: Merge commit '83d93d4' into upstream-with-swift (authored by mzolotukhin).
Merge commit '83d93d4' into upstream-with-swift
Oct 29 2019, 3:38 PM
mzolotukhin committed rGe43e6d121115: Merge commit 'e35ff4e' into upstream-with-swift (authored by mzolotukhin).
Merge commit 'e35ff4e' into upstream-with-swift
Oct 29 2019, 3:38 PM
mzolotukhin committed rG8a7977a5a164: Merge commit '1694ebb' into upstream-with-swift (authored by mzolotukhin).
Merge commit '1694ebb' into upstream-with-swift
Oct 29 2019, 3:38 PM
mzolotukhin committed rG8582aa514e90: Merge commit '9901953' into upstream-with-swift (authored by mzolotukhin).
Merge commit '9901953' into upstream-with-swift
Oct 29 2019, 3:37 PM
mzolotukhin committed rG6380ed6661e9: Merge commit 'c33edc6' into upstream-with-swift (authored by mzolotukhin).
Merge commit 'c33edc6' into upstream-with-swift
Oct 29 2019, 3:37 PM
mzolotukhin committed rGbe4cf2868e51: Merge commit '585e4d5' into upstream-with-swift (authored by mzolotukhin).
Merge commit '585e4d5' into upstream-with-swift
Oct 29 2019, 3:37 PM
mzolotukhin committed rG3580c5507500: Merge commit '3f3ec7612cf8bfa97841100cbf8a70b92d5c3c40' into upstream-with-swift (authored by mzolotukhin).
Merge commit '3f3ec7612cf8bfa97841100cbf8a70b92d5c3c40' into upstream-with-swift
Oct 29 2019, 2:55 PM
mzolotukhin committed rG49872ce01ccc: Merge remote-tracking branch 'llvm.org/master' into upstream-with-swift (authored by mzolotukhin).
Merge remote-tracking branch 'llvm.org/master' into upstream-with-swift
Oct 29 2019, 1:47 PM
mzolotukhin committed rGcdc289da4c78: Merge remote-tracking branch 'llvm.org/master' into upstream-with-swift (authored by mzolotukhin).
Merge remote-tracking branch 'llvm.org/master' into upstream-with-swift
Oct 29 2019, 12:33 PM
mzolotukhin committed rG74447dcdfe99: Merge remote-tracking branch 'llvm.org/master' into upstream-with-swift (authored by mzolotukhin).
Merge remote-tracking branch 'llvm.org/master' into upstream-with-swift
Oct 29 2019, 12:32 PM
mzolotukhin committed rG7ddb55a8025c: Merge remote-tracking branch 'llvm.org/master' into upstream-with-swift (authored by mzolotukhin).
Merge remote-tracking branch 'llvm.org/master' into upstream-with-swift
Oct 29 2019, 12:31 PM

Jul 19 2018

mzolotukhin accepted D48853: [SCEV] Add [zs]ext{C,+,x} -> (D + [zs]ext{C-D,+,x})<nuw><nsw> transform.

I've looked at the patch one more time more carefully, it looks good to me!

Jul 19 2018, 5:55 PM
mzolotukhin added inline comments to D48853: [SCEV] Add [zs]ext{C,+,x} -> (D + [zs]ext{C-D,+,x})<nuw><nsw> transform.
Jul 19 2018, 4:35 PM
mzolotukhin added inline comments to D48853: [SCEV] Add [zs]ext{C,+,x} -> (D + [zs]ext{C-D,+,x})<nuw><nsw> transform.
Jul 19 2018, 4:06 PM
mzolotukhin added a comment to D48853: [SCEV] Add [zs]ext{C,+,x} -> (D + [zs]ext{C-D,+,x})<nuw><nsw> transform.

Thanks for working on this! From the description the approach looks correct and promising. I glanced through the patch, and it looked good, but if you don't mind I'd like to have another look.

Jul 19 2018, 2:24 PM

Jul 6 2018

mzolotukhin committed rCRT336474: Revert "Make __gcov_flush flush counters for all shared libraries".
Revert "Make __gcov_flush flush counters for all shared libraries"
Jul 6 2018, 5:12 PM
mzolotukhin committed rL336474: Revert "Make __gcov_flush flush counters for all shared libraries".
Revert "Make __gcov_flush flush counters for all shared libraries"
Jul 6 2018, 5:12 PM

Jul 5 2018

mzolotukhin committed rL336393: Revert r332168: "Reapply "[PR16756] Use SSAUpdaterBulk in JumpThreading."".
Revert r332168: "Reapply "[PR16756] Use SSAUpdaterBulk in JumpThreading.""
Jul 5 2018, 3:15 PM

Jun 26 2018

mzolotukhin added a comment to D48111: [JumpThreading] Don't try to rewrite a use if it's already valid..

Thanks, Brian!

Jun 26 2018, 5:27 PM
mzolotukhin added a comment to D48111: [JumpThreading] Don't try to rewrite a use if it's already valid..

do you happen to know why?

The difference compared to the old SSAUpdater is in how we handled uses and defs located in the same block - it did not lead to a problem with the old SSAUpdater, but was unnecessary anyway, since such uses don't need to be rewritten (not in general, but in this particular case when the use is still dominated by its existing def).

Jun 26 2018, 3:27 PM
mzolotukhin committed rL335675: [JumpThreading] Don't try to rewrite a use if it's already valid..
[JumpThreading] Don't try to rewrite a use if it's already valid.
Jun 26 2018, 3:24 PM
mzolotukhin closed D48111: [JumpThreading] Don't try to rewrite a use if it's already valid..
Jun 26 2018, 3:24 PM

Jun 20 2018

mzolotukhin committed rL335201: ProvenanceAnalysis: Store WeakTrackingVH instead of Value* in UnderlyingValue….
ProvenanceAnalysis: Store WeakTrackingVH instead of Value* in UnderlyingValue…
Jun 20 2018, 10:18 PM
mzolotukhin closed D48407: ProvenanceAnalysis: Store WeakTrackingVH instead of Value* in UnderlyingValue Cache..
Jun 20 2018, 10:18 PM
mzolotukhin updated subscribers of D48410: Script to find redundant includes..
Jun 20 2018, 6:24 PM
mzolotukhin updated the summary of D48410: Script to find redundant includes..
Jun 20 2018, 6:23 PM
mzolotukhin created D48410: Script to find redundant includes..
Jun 20 2018, 6:22 PM
mzolotukhin added reviewers for D48111: [JumpThreading] Don't try to rewrite a use if it's already valid.: davide, dberlin.

Could anyone review this fix please?

Jun 20 2018, 4:30 PM
mzolotukhin created D48407: ProvenanceAnalysis: Store WeakTrackingVH instead of Value* in UnderlyingValue Cache..
Jun 20 2018, 4:28 PM

Jun 16 2018

mzolotukhin committed rL334895: CorrelatedValuePropagation: Preserve DT..
CorrelatedValuePropagation: Preserve DT.
Jun 16 2018, 12:02 PM
mzolotukhin closed D48059: CorrelatedValuePropagation: Preserve DT..
Jun 16 2018, 12:02 PM

Jun 13 2018

mzolotukhin added a comment to D48041: [SCEV] Add transform zext((A * B * ...)<nuw>) --> (zext(A) * zext(B) * ...)<nuw>..

Is there some way to figure out what exactly got slower (it could be SCEV or some user of SCEV)?

Not really at the moment.

Jun 13 2018, 1:56 PM

Jun 12 2018

mzolotukhin created D48111: [JumpThreading] Don't try to rewrite a use if it's already valid..
Jun 12 2018, 6:14 PM

Jun 11 2018

mzolotukhin updated subscribers of D48041: [SCEV] Add transform zext((A * B * ...)<nuw>) --> (zext(A) * zext(B) * ...)<nuw>..

Hi Justin,

Jun 11 2018, 7:39 PM
mzolotukhin created D48059: CorrelatedValuePropagation: Preserve DT..
Jun 11 2018, 5:43 PM

Jun 6 2018

mzolotukhin committed rL334150: SpeculativeExecution Pass: Set PreserveCFG to avoid unnecessary analyses….
SpeculativeExecution Pass: Set PreserveCFG to avoid unnecessary analyses…
Jun 6 2018, 5:23 PM

May 30 2018

mzolotukhin added inline comments to D47407: [LoopInstSimplify] Re-implement the core logic of loop-instsimplify to be both simpler and substantially more efficient..
May 30 2018, 11:14 AM
mzolotukhin added inline comments to D47407: [LoopInstSimplify] Re-implement the core logic of loop-instsimplify to be both simpler and substantially more efficient..
May 30 2018, 8:18 AM

May 23 2018

mzolotukhin added a comment to D41574: [Transforms] Adding a WeakReassociate pass.

What are benchmarks results with this pass (compile-time/performance)? Do we really need it at all optlevels, or can we only include it at -O3?

May 23 2018, 5:44 PM
mzolotukhin added inline comments to D46775: [LICM] Preserve DT and LoopInfo specifically.
May 23 2018, 9:05 AM

May 21 2018

mzolotukhin accepted D46045: [LoopUnswitch] Fix SCEV invalidation in unswitching.

Looks correct to me.

May 21 2018, 1:57 PM
mzolotukhin accepted D47134: [LoopVersioning] Don't modify the list that we iterate over in addPHINodes.

Looks good to me! (+ a couple of nitpicks inline)

May 21 2018, 12:05 PM

May 18 2018

mzolotukhin added a comment to D47023: Limit the number of phis in intptr/ptrint folding .

I thought about this transformation more, and I no longer think that we even need to move it to aggressive-instcombine (or another FunctionPass). What we need is to just change it from top-down to bottom-up: i.e. to start looking not from phi-nodes, but rather from inttoptr instructions. That is, the algorithm would look like:

visitIntToPtr(Instruction &I) {
  Value *Def = I.getOperand()
  if (!Def.hasSingleUse())
     return;
  if (isa<PtrToInt>(Def)) {   // Simple case without phi - it's probably already handled somewhere else, but I'm putting it here for completeness
     I.replaceAllUsesWith(Def.getOperand());
  }
  if (isa<PHINode>(Def)) {    // Interesting case where we have a phi-node
     if (all operands are PtrToInt with a single use) {
       NewPHI = RewritePHI();
       I.replaceAllUsesWith(NewPHI);
    }
  }
}

What do you think? Would it work?

May 18 2018, 5:49 PM

May 17 2018

mzolotukhin added a comment to D47023: Limit the number of phis in intptr/ptrint folding .

Hi David,

May 17 2018, 12:44 PM
mzolotukhin accepted D47023: Limit the number of phis in intptr/ptrint folding .

Do you mind adding a TODO note describing the problem and another way to fix it? Otherwise, LGTM.

May 17 2018, 12:13 PM

May 16 2018

mzolotukhin added inline comments to D46775: [LICM] Preserve DT and LoopInfo specifically.
May 16 2018, 2:33 PM
mzolotukhin added inline comments to D46775: [LICM] Preserve DT and LoopInfo specifically.
May 16 2018, 11:31 AM

May 15 2018

mzolotukhin added a comment to D46899: [MemorySSA] Don't sort IDF blocks..

Thanks!

May 15 2018, 11:53 AM
mzolotukhin committed rL332385: [MemorySSA] Don't sort IDF blocks..
[MemorySSA] Don't sort IDF blocks.
May 15 2018, 11:44 AM
mzolotukhin closed D46899: [MemorySSA] Don't sort IDF blocks..
May 15 2018, 11:44 AM
mzolotukhin created D46899: [MemorySSA] Don't sort IDF blocks..
May 15 2018, 11:26 AM

May 11 2018

mzolotukhin committed rL332168: Reapply "[PR16756] Use SSAUpdaterBulk in JumpThreading.".
Reapply "[PR16756] Use SSAUpdaterBulk in JumpThreading."
May 11 2018, 6:58 PM
mzolotukhin added a comment to D46646: [IDF] Enforce the returned blocks to be sorted..

Thanks!

May 11 2018, 6:53 PM
mzolotukhin committed rL332167: [IDF] Enforce the returned blocks to be sorted..
[IDF] Enforce the returned blocks to be sorted.
May 11 2018, 6:48 PM
mzolotukhin closed D46646: [IDF] Enforce the returned blocks to be sorted..
May 11 2018, 6:48 PM

May 9 2018

mzolotukhin added a comment to D46564: [SSAUpdaterBulk] Sort blocks in IDF to avoid non-determinism..

Thanks, Daniel! A fix for IDF was posted for review in D46646. If that fix is accepted, we should no longer need the current patch. Also, we should be able to remove blocks sorting from MemorySSA.

May 9 2018, 9:44 AM
mzolotukhin created D46646: [IDF] Enforce the returned blocks to be sorted..
May 9 2018, 9:40 AM

May 7 2018

mzolotukhin added a comment to D46564: [SSAUpdaterBulk] Sort blocks in IDF to avoid non-determinism..

The solution in IDF should just be changing domtreenodepair to a tuple, with the last item being domtreenode->getDFSNumIn()

Just to make sure I understand you correctly: we need to change pair<DomTreeNode *, unsigned> to tuple<DomTreeNode *, unsigned, unsigned> and use the second and third elements as keys for the priority queue (i.e. we will need to implement a compare function for it, which will look at RootLevel first and at DfsNumber second if RootLevels are the same). Is it what you meant?

May 7 2018, 6:07 PM
mzolotukhin added inline comments to D46564: [SSAUpdaterBulk] Sort blocks in IDF to avoid non-determinism..
May 7 2018, 5:53 PM
mzolotukhin added inline comments to D46564: [SSAUpdaterBulk] Sort blocks in IDF to avoid non-determinism..
May 7 2018, 5:38 PM
mzolotukhin added a comment to D46564: [SSAUpdaterBulk] Sort blocks in IDF to avoid non-determinism..

This patch includes two pieces: fixing non-determinism in SSAUpdaterBulk and enabling it in JumpThreading. When approved, I'll commit them separately, but I included them both here for convenience. The fix for SSAUpdaterBulk requires basic-block enumeration, which should be passed from the SSAUpdaterBulk user, and thus it incurs the corresponding changes in JumpThreading. I'm not a big fan of an extra parameter in RewriteAllUses function and will be happy to discuss alternative, but for now I followed an example from MemorySSA. What do you think?

May 7 2018, 5:26 PM
mzolotukhin created D46564: [SSAUpdaterBulk] Sort blocks in IDF to avoid non-determinism..
May 7 2018, 5:21 PM
mzolotukhin added a comment to D46422: [LCSSA] Do not remove used PHI nodes in formLCSSAForInstructions.

I meant to LGTM it provided @dberlin didn't have objections.

May 7 2018, 11:16 AM
mzolotukhin accepted D46422: [LCSSA] Do not remove used PHI nodes in formLCSSAForInstructions.

Looks good to me now, thanks!

May 7 2018, 11:15 AM

May 4 2018

mzolotukhin added a comment to D46422: [LCSSA] Do not remove used PHI nodes in formLCSSAForInstructions.

I looked deeper into this, and I think you exposed several issues here:

May 4 2018, 5:30 PM
mzolotukhin added a comment to D46422: [LCSSA] Do not remove used PHI nodes in formLCSSAForInstructions.

Ok, I will make an attempt to reduce it further, but if there was an easy way to trigger the problem, then I guess we would have seen it a long time ago (and bugpoint would have been able to remove some more basic blocks).
If it is preferred, then I can remove all the checks and keep it as a "just check that this no longer asserts" kind of test.

Yes, it is much preferred, thank you! If we have more than one problem here, then we need more small tests, but not one huge test.

May 4 2018, 1:04 PM
mzolotukhin requested changes to D46422: [LCSSA] Do not remove used PHI nodes in formLCSSAForInstructions.

First of all, please clean-up the testcase. The bugpoint-output tests are impossible to understand and maintain (it is impossible to say if such a test checks anything at all after some time). I'm pretty sure you can expose the same issue with much a smaller test.

May 4 2018, 11:58 AM

May 3 2018

mzolotukhin committed rL331502: [MachineCSE] Rewrite a loop checking if a block is in a set of blocks without….
[MachineCSE] Rewrite a loop checking if a block is in a set of blocks without…
May 3 2018, 6:44 PM
mzolotukhin closed D46411: [MachineCSE] Rewrite a loop checking if a block is in a set of blocks without using a set. NFC..
May 3 2018, 6:44 PM
mzolotukhin created D46411: [MachineCSE] Rewrite a loop checking if a block is in a set of blocks without using a set. NFC..
May 3 2018, 4:47 PM

Apr 20 2018

mzolotukhin committed rL330446: Revert r330431..
Revert r330431.
Apr 20 2018, 10:01 AM