Page MenuHomePhabricator

wwei (weiwei)
User

Projects

User does not belong to any projects.

User Details

User Since
Nov 29 2018, 8:48 PM (187 w, 5 d)

Recent Activity

Mar 17 2022

wwei committed rG0af3e6a22da2: [InstCombine] Sink instructions with multiple users in a successor block. (authored by wwei).
[InstCombine] Sink instructions with multiple users in a successor block.
Mar 17 2022, 9:10 PM · Restricted Project
wwei closed D121585: [InstCombine] Sink instructions with multiple users in a successor block..
Mar 17 2022, 9:09 PM · Restricted Project, Restricted Project
wwei committed rGf241d43b4003: [NFC][ InstCombine] precommit test for D121585 (authored by wwei).
[NFC][ InstCombine] precommit test for D121585
Mar 17 2022, 9:39 AM · Restricted Project

Mar 16 2022

wwei updated the diff for D121585: [InstCombine] Sink instructions with multiple users in a successor block..

update some comments and make the changes in first-order-recurrence.ll clean

Mar 16 2022, 9:21 AM · Restricted Project, Restricted Project

Mar 15 2022

wwei added inline comments to D121585: [InstCombine] Sink instructions with multiple users in a successor block..
Mar 15 2022, 10:02 AM · Restricted Project, Restricted Project
wwei updated the diff for D121585: [InstCombine] Sink instructions with multiple users in a successor block..

Fix the indentation

Mar 15 2022, 9:58 AM · Restricted Project, Restricted Project
wwei added a comment to D121585: [InstCombine] Sink instructions with multiple users in a successor block..

Generally, I'm fine with the direction here. My sole concern is potential compile time of scanning the entire user list. (i.e. say we have 100 thousand uses in one block, and the very last one is in another block) I could see us capping the number of scanned users (we do that a bunch of places) or would want to see some time time numbers showing we don't need to.

Agreed, this needs a cutoff.

Mar 15 2022, 8:06 AM · Restricted Project, Restricted Project
wwei added inline comments to D121585: [InstCombine] Sink instructions with multiple users in a successor block..
Mar 15 2022, 7:59 AM · Restricted Project, Restricted Project
wwei updated the diff for D121585: [InstCombine] Sink instructions with multiple users in a successor block..
Mar 15 2022, 7:55 AM · Restricted Project, Restricted Project

Mar 14 2022

wwei requested review of D121585: [InstCombine] Sink instructions with multiple users in a successor block..
Mar 14 2022, 4:05 AM · Restricted Project, Restricted Project

Feb 17 2022

wwei abandoned D119839: [SimplifyCFG] Propagating case value when turning switch range into icmp.

Abandon this?

Feb 17 2022, 5:09 PM · Restricted Project

Feb 16 2022

wwei added a comment to D119854: [SimplifyCFG][PhaseOrdering] Defer lowering switch into an integer range comparison and branch until after at least the IPSCCP.

@lebedev.ri Thanks for the patch. Does convertSwitchRangeToICmp need to be set true for O1 pipeline? Why not keep the same with other SimplifyCFGOptions for O1?

I'm not sure i understand the question.

This change disables the transform unless it's explicitly reenabled,
then explicitly reenables it for all the simplifycfg pass invocations in all pipelines,
and then un-enables it for those simplifycfg invocations that happen before IPSCCP.
Function simplification pipeline is after IPSCCP, so naturally the transform is enabled there.

Feb 16 2022, 4:25 AM · Restricted Project
wwei added a comment to D119854: [SimplifyCFG][PhaseOrdering] Defer lowering switch into an integer range comparison and branch until after at least the IPSCCP.

@lebedev.ri Thanks for the patch. Does convertSwitchRangeToICmp need to be set true for O1 pipeline? Why not keep the same with other SimplifyCFGOptions for O1?

Feb 16 2022, 3:56 AM · Restricted Project

Feb 15 2022

wwei added a comment to D119839: [SimplifyCFG] Propagating case value when turning switch range into icmp.

It doesn't look like something SimplifyCFG should be dealing with.

Feb 15 2022, 7:11 AM · Restricted Project
wwei requested review of D119839: [SimplifyCFG] Propagating case value when turning switch range into icmp.
Feb 15 2022, 6:14 AM · Restricted Project

Dec 21 2021

wwei committed rG03dc2975d07e: [AArch64][SVE] Lower shuffles to permute instructions: zip1/2, uzp1/2, trn1/2 (authored by wwei).
[AArch64][SVE] Lower shuffles to permute instructions: zip1/2, uzp1/2, trn1/2
Dec 21 2021, 2:46 AM
wwei closed D113376: [AArch64][SVE] Lower shuffles to permute instructions: zip1/2, uzp1/2, trn1/2.
Dec 21 2021, 2:46 AM · Restricted Project

Dec 17 2021

wwei added inline comments to D113376: [AArch64][SVE] Lower shuffles to permute instructions: zip1/2, uzp1/2, trn1/2.
Dec 17 2021, 6:24 AM · Restricted Project
wwei updated the diff for D113376: [AArch64][SVE] Lower shuffles to permute instructions: zip1/2, uzp1/2, trn1/2.
Dec 17 2021, 6:05 AM · Restricted Project

Dec 15 2021

wwei updated the diff for D113376: [AArch64][SVE] Lower shuffles to permute instructions: zip1/2, uzp1/2, trn1/2.

rebased.

Dec 15 2021, 8:18 AM · Restricted Project
wwei added a comment to D114960: [AArch64][SVE] Lower shuffles to permute instructions: rev/revb/revh/revw.

@paulwalker-arm Thanks for your comments, the code has been modified based on your review comments, and the test file has been modified too, adding some necessary comments

Dec 15 2021, 6:00 AM · Restricted Project
wwei committed rGdc7b672f969b: [AArch64][SVE] Lower shuffles to permute instructions: rev/revb/revh/revw (authored by wwei).
[AArch64][SVE] Lower shuffles to permute instructions: rev/revb/revh/revw
Dec 15 2021, 5:54 AM
wwei closed D114960: [AArch64][SVE] Lower shuffles to permute instructions: rev/revb/revh/revw.
Dec 15 2021, 5:54 AM · Restricted Project

Dec 13 2021

wwei added a comment to D113376: [AArch64][SVE] Lower shuffles to permute instructions: zip1/2, uzp1/2, trn1/2.

update the patch, lowerShuffleToZIP_UZP_TRN removed and test file refactored.

Dec 13 2021, 7:51 AM · Restricted Project
wwei updated the diff for D113376: [AArch64][SVE] Lower shuffles to permute instructions: zip1/2, uzp1/2, trn1/2.
Dec 13 2021, 3:18 AM · Restricted Project

Dec 10 2021

wwei added inline comments to D114960: [AArch64][SVE] Lower shuffles to permute instructions: rev/revb/revh/revw.
Dec 10 2021, 4:25 AM · Restricted Project

Dec 9 2021

wwei added inline comments to D113376: [AArch64][SVE] Lower shuffles to permute instructions: zip1/2, uzp1/2, trn1/2.
Dec 9 2021, 8:59 AM · Restricted Project
wwei added inline comments to D114960: [AArch64][SVE] Lower shuffles to permute instructions: rev/revb/revh/revw.
Dec 9 2021, 8:38 AM · Restricted Project
wwei updated the diff for D114960: [AArch64][SVE] Lower shuffles to permute instructions: rev/revb/revh/revw.
Dec 9 2021, 8:16 AM · Restricted Project

Dec 8 2021

wwei added inline comments to D114960: [AArch64][SVE] Lower shuffles to permute instructions: rev/revb/revh/revw.
Dec 8 2021, 4:05 AM · Restricted Project
wwei updated the diff for D114960: [AArch64][SVE] Lower shuffles to permute instructions: rev/revb/revh/revw.

Add some float test cases

Dec 8 2021, 3:27 AM · Restricted Project

Dec 7 2021

wwei added a comment to D114960: [AArch64][SVE] Lower shuffles to permute instructions: rev/revb/revh/revw.

@paulwalker-arm, could you help to review this patch and D113376?

Dec 7 2021, 12:30 AM · Restricted Project

Dec 2 2021

wwei added a comment to D113376: [AArch64][SVE] Lower shuffles to permute instructions: zip1/2, uzp1/2, trn1/2.

update the patch,also there's another patch D114960 to support rev insts.

Dec 2 2021, 7:17 AM · Restricted Project
wwei requested review of D114960: [AArch64][SVE] Lower shuffles to permute instructions: rev/revb/revh/revw.
Dec 2 2021, 7:15 AM · Restricted Project
wwei updated the diff for D113376: [AArch64][SVE] Lower shuffles to permute instructions: zip1/2, uzp1/2, trn1/2.
Dec 2 2021, 7:05 AM · Restricted Project

Nov 10 2021

wwei added inline comments to D113376: [AArch64][SVE] Lower shuffles to permute instructions: zip1/2, uzp1/2, trn1/2.
Nov 10 2021, 1:00 AM · Restricted Project

Nov 9 2021

wwei updated the diff for D113376: [AArch64][SVE] Lower shuffles to permute instructions: zip1/2, uzp1/2, trn1/2.

update the patch, adding sve min/max size check.

Nov 9 2021, 1:03 AM · Restricted Project
wwei added inline comments to D113376: [AArch64][SVE] Lower shuffles to permute instructions: zip1/2, uzp1/2, trn1/2.
Nov 9 2021, 12:55 AM · Restricted Project

Nov 8 2021

wwei added inline comments to D113376: [AArch64][SVE] Lower shuffles to permute instructions: zip1/2, uzp1/2, trn1/2.
Nov 8 2021, 8:02 AM · Restricted Project
wwei added inline comments to D113376: [AArch64][SVE] Lower shuffles to permute instructions: zip1/2, uzp1/2, trn1/2.
Nov 8 2021, 3:40 AM · Restricted Project
wwei committed rGbf3784b882c4: [AArch64] Canonicalize X*(Y+1) or X*(1-Y) to madd/msub (authored by wwei).
[AArch64] Canonicalize X*(Y+1) or X*(1-Y) to madd/msub
Nov 8 2021, 12:53 AM
wwei closed D111862: [AArch64] Canonicalize X*(Y+1) or X*(1-Y) to madd/msub.
Nov 8 2021, 12:53 AM · Restricted Project

Nov 7 2021

wwei requested review of D113376: [AArch64][SVE] Lower shuffles to permute instructions: zip1/2, uzp1/2, trn1/2.
Nov 7 2021, 6:40 PM · Restricted Project

Oct 25 2021

wwei added a comment to D111862: [AArch64] Canonicalize X*(Y+1) or X*(1-Y) to madd/msub.

Hi @wwei, have you done any performance measurements with this change on hardware to see what effect it has on some benchmarks?

Oct 25 2021, 2:16 AM · Restricted Project
wwei added inline comments to D111862: [AArch64] Canonicalize X*(Y+1) or X*(1-Y) to madd/msub.
Oct 25 2021, 2:07 AM · Restricted Project
wwei updated the diff for D111862: [AArch64] Canonicalize X*(Y+1) or X*(1-Y) to madd/msub.
Oct 25 2021, 2:05 AM · Restricted Project

Oct 20 2021

wwei added inline comments to D111862: [AArch64] Canonicalize X*(Y+1) or X*(1-Y) to madd/msub.
Oct 20 2021, 2:19 AM · Restricted Project
wwei updated the diff for D111862: [AArch64] Canonicalize X*(Y+1) or X*(1-Y) to madd/msub.
Oct 20 2021, 2:15 AM · Restricted Project

Oct 18 2021

wwei committed rGf5056c8c16bb: [AArch64] Improve shuffle vector by using wider types (authored by wwei).
[AArch64] Improve shuffle vector by using wider types
Oct 18 2021, 6:25 AM
wwei closed D111619: [AArch64] Improve shuffle vector by using wider types.
Oct 18 2021, 6:25 AM · Restricted Project

Oct 14 2021

wwei requested review of D111862: [AArch64] Canonicalize X*(Y+1) or X*(1-Y) to madd/msub.
Oct 14 2021, 8:23 PM · Restricted Project

Oct 13 2021

wwei added inline comments to D111619: [AArch64] Improve shuffle vector by using wider types.
Oct 13 2021, 5:37 AM · Restricted Project
wwei updated the diff for D111619: [AArch64] Improve shuffle vector by using wider types.
Oct 13 2021, 5:34 AM · Restricted Project

Oct 12 2021

wwei requested review of D111619: [AArch64] Improve shuffle vector by using wider types.
Oct 12 2021, 1:46 AM · Restricted Project

Oct 8 2021

wwei added a comment to D108104: [LAA] Use getTypeSizeInBits for stride type size comparison.

ping

Oct 8 2021, 12:47 AM · Restricted Project

Sep 7 2021

wwei committed rGda9ed3dc719b: [AArch64] Avoid adding duplicate implicit operands when expanding pseudo insts. (authored by wwei).
[AArch64] Avoid adding duplicate implicit operands when expanding pseudo insts.
Sep 7 2021, 2:13 AM
wwei closed D109069: [AArch64] Avoid adding duplicate implicit operands when expanding pseudo insts..
Sep 7 2021, 2:13 AM · Restricted Project

Sep 2 2021

wwei added a comment to D109069: [AArch64] Avoid adding duplicate implicit operands when expanding pseudo insts..

The detailed explanation is:
Before post-ra scheduling, initial order of instructions:

A:    ... implicit-def dead $nzcv
B:    ... implicit-def $nzcv, implicit-def dead $nzcv
C:    ... implicit-def $nzcv
D:    ... implicit killed $nzcv    (use)

In the right way, the relationship should look like this after building the sched graph.

Sep 2 2021, 6:43 AM · Restricted Project
wwei updated the diff for D109069: [AArch64] Avoid adding duplicate implicit operands when expanding pseudo insts..
Sep 2 2021, 6:34 AM · Restricted Project
wwei added a comment to D109069: [AArch64] Avoid adding duplicate implicit operands when expanding pseudo insts..

Yes, we need to call transferImpOps here, because it will copy the implict operand include the flag--like dead flag.
But BuildMI will ignore the flag, so the changes in this MR will use CreateMachineInstr(.... /*NoImplicit=*/true) to avoid adding duplicate implict operands
I will try to explain why there may have correct issues in postra scheduling later.
The test case is updated in : https://bugs.llvm.org/show_bug.cgi?id=51711

Sep 2 2021, 2:28 AM · Restricted Project

Sep 1 2021

wwei requested review of D109069: [AArch64] Avoid adding duplicate implicit operands when expanding pseudo insts..
Sep 1 2021, 9:19 AM · Restricted Project

Aug 26 2021

wwei committed rGc9066c5d3775: [CGP] Fix the crash for combining address mode when having cyclic dependency (authored by wwei).
[CGP] Fix the crash for combining address mode when having cyclic dependency
Aug 26 2021, 8:02 AM
wwei closed D108635: [CGP] Fix the crash for combining address mode when having cyclic dependency.
Aug 26 2021, 8:02 AM · Restricted Project
wwei committed rG99c4336374bf: [LoopDataPrefetch] Add missed LoopSimplify dependence for prefetch pass (authored by wwei).
[LoopDataPrefetch] Add missed LoopSimplify dependence for prefetch pass
Aug 26 2021, 6:19 AM
wwei closed D108448: [LoopDataPrefetch] Add missed LoopSimplify dependence for prefetch pass.
Aug 26 2021, 6:18 AM · Restricted Project

Aug 25 2021

wwei added a comment to D108635: [CGP] Fix the crash for combining address mode when having cyclic dependency.

It seems that correct fix should be something different.
The underlying idea of implementation is as follows:
We built phi nodes to get, for example, base address in a point of usage. (in you example it is an offset).
Now we try to find whether there are already existing phi nodes which provide us with the base.
So we try to match all new phi nodes to already existed.
The bug you found actually happened due to we tried to match new phi node to another new phi node and at the end it results in the bug.

So I guess the better fix would be to just ignore new phi nodes when we try to map new phi node to old one.

@skatkov Thank you for the explanation,I have updated the patch.

Aug 25 2021, 7:36 AM · Restricted Project
wwei updated the diff for D108635: [CGP] Fix the crash for combining address mode when having cyclic dependency.
Aug 25 2021, 7:33 AM · Restricted Project

Aug 24 2021

wwei requested review of D108635: [CGP] Fix the crash for combining address mode when having cyclic dependency.
Aug 24 2021, 8:32 AM · Restricted Project

Aug 20 2021

wwei requested review of D108448: [LoopDataPrefetch] Add missed LoopSimplify dependence for prefetch pass.
Aug 20 2021, 12:22 AM · Restricted Project

Aug 16 2021

wwei updated the diff for D108104: [LAA] Use getTypeSizeInBits for stride type size comparison.
Aug 16 2021, 7:19 AM · Restricted Project
wwei updated the diff for D108104: [LAA] Use getTypeSizeInBits for stride type size comparison.
Aug 16 2021, 1:37 AM · Restricted Project
wwei abandoned D108103: [DAGCombiner] Add one use restriction for the pattern (and (add x, c1), (lshr y, c2)).
Aug 16 2021, 12:47 AM · Restricted Project
wwei added a comment to D108103: [DAGCombiner] Add one use restriction for the pattern (and (add x, c1), (lshr y, c2)).
Aug 16 2021, 12:43 AM · Restricted Project
wwei requested review of D108104: [LAA] Use getTypeSizeInBits for stride type size comparison.
Aug 16 2021, 12:00 AM · Restricted Project

Aug 15 2021

wwei requested review of D108103: [DAGCombiner] Add one use restriction for the pattern (and (add x, c1), (lshr y, c2)).
Aug 15 2021, 11:56 PM · Restricted Project

Nov 20 2020

wwei committed rG1cd19fc5681b: [DeadMachineInstrctionElim] Post order visit all blocks and Iteratively run… (authored by wwei).
[DeadMachineInstrctionElim] Post order visit all blocks and Iteratively run…
Nov 20 2020, 9:03 AM
wwei closed D91513: [DeadMachineInstrctionElim] Post order visit all blocks and Iteratively run DeadMachineInstructionElim pass until nothing dead.
Nov 20 2020, 9:03 AM · Restricted Project

Nov 18 2020

wwei committed rGea7ab5a42cd4: [IndVarSimplify] Notify top most loop to drop cached exit counts (authored by wwei).
[IndVarSimplify] Notify top most loop to drop cached exit counts
Nov 18 2020, 11:58 PM
wwei closed D91325: [IndVarSimplify] Notify top most loop to drop cached exit counts.
Nov 18 2020, 11:57 PM · Restricted Project
wwei added a comment to D87293: [GVN] Fix undef incoming value for phi node when new loop exit block created..

ping

Nov 18 2020, 9:04 AM · Restricted Project

Oct 8 2020

wwei added inline comments to D87293: [GVN] Fix undef incoming value for phi node when new loop exit block created..
Oct 8 2020, 7:58 AM · Restricted Project
wwei added inline comments to D87293: [GVN] Fix undef incoming value for phi node when new loop exit block created..
Oct 8 2020, 3:00 AM · Restricted Project
wwei updated the diff for D87293: [GVN] Fix undef incoming value for phi node when new loop exit block created..
Oct 8 2020, 2:57 AM · Restricted Project

Sep 23 2020

wwei committed rGc2deacd929da: [AArch64] Fix ldst optimization of non-immediate store offset (authored by wwei).
[AArch64] Fix ldst optimization of non-immediate store offset
Sep 23 2020, 8:20 AM
wwei closed D87905: [AArch64] Fix ldst optimization of non-immediate store offset.
Sep 23 2020, 8:20 AM · Restricted Project

Sep 22 2020

wwei added a comment to D87905: [AArch64] Fix ldst optimization of non-immediate store offset.

Update test case by using MIR

Sep 22 2020, 1:55 AM · Restricted Project
wwei updated the diff for D87905: [AArch64] Fix ldst optimization of non-immediate store offset.
Sep 22 2020, 1:51 AM · Restricted Project

Sep 21 2020

wwei added a comment to D87293: [GVN] Fix undef incoming value for phi node when new loop exit block created..

ping

Sep 21 2020, 4:30 AM · Restricted Project

Sep 18 2020

wwei requested review of D87905: [AArch64] Fix ldst optimization of non-immediate store offset.
Sep 18 2020, 7:24 AM · Restricted Project
wwei committed rG8f09cec8c999: [AArch64] Add tests for zext pattern match with AssertZext/AssertSext operand… (authored by wwei).
[AArch64] Add tests for zext pattern match with AssertZext/AssertSext operand…
Sep 18 2020, 12:24 AM

Sep 17 2020

wwei committed rG992698cfbc89: [AArch64] Emit zext move when the source of the zext is AssertZext or AssertSext (authored by wwei).
[AArch64] Emit zext move when the source of the zext is AssertZext or AssertSext
Sep 17 2020, 10:09 PM
wwei closed D87771: [AArch64] Emit zext move when the source of the zext is AssertZext or AssertSext.
Sep 17 2020, 10:09 PM · Restricted Project
wwei added inline comments to D87771: [AArch64] Emit zext move when the source of the zext is AssertZext or AssertSext.
Sep 17 2020, 10:10 AM · Restricted Project
wwei added inline comments to D87771: [AArch64] Emit zext move when the source of the zext is AssertZext or AssertSext.
Sep 17 2020, 9:30 AM · Restricted Project
wwei updated the diff for D87771: [AArch64] Emit zext move when the source of the zext is AssertZext or AssertSext.
Sep 17 2020, 9:27 AM · Restricted Project
wwei added a comment to D87293: [GVN] Fix undef incoming value for phi node when new loop exit block created..

update test cases mentioned in PR47462

Sep 17 2020, 9:25 AM · Restricted Project
wwei updated the diff for D87293: [GVN] Fix undef incoming value for phi node when new loop exit block created..
Sep 17 2020, 9:24 AM · Restricted Project

Sep 16 2020

wwei requested review of D87771: [AArch64] Emit zext move when the source of the zext is AssertZext or AssertSext.
Sep 16 2020, 8:51 AM · Restricted Project

Sep 9 2020

wwei added inline comments to D87293: [GVN] Fix undef incoming value for phi node when new loop exit block created..
Sep 9 2020, 6:35 AM · Restricted Project
wwei added inline comments to D87293: [GVN] Fix undef incoming value for phi node when new loop exit block created..
Sep 9 2020, 5:56 AM · Restricted Project