Page MenuHomePhabricator

shchenz (ChenZheng)
User

Projects

User does not belong to any projects.

User Details

User Since
Jun 28 2018, 9:57 PM (64 w, 3 d)

Recent Activity

Wed, Sep 18

shchenz updated the diff for D67431: [PowerPC] [NFC] refactor PPCLoopPreIncPrep pass for further ds/dq form usage..

ping

Wed, Sep 18, 7:30 AM · Restricted Project

Mon, Sep 16

shchenz updated the diff for D66329: [PowerPC] [Peephole] fold frame offset by using index form to save add..

remove one useless comment.

Mon, Sep 16, 6:31 AM · Restricted Project
shchenz added a comment to D67339: [ConstantRange] add helper function addWithNoWrap.

Sorry for the delay. Ready for further review.

Mon, Sep 16, 1:29 AM · Restricted Project
shchenz updated the diff for D67339: [ConstantRange] add helper function addWithNoWrap.

address @nikic @lebedev.ri comments

Mon, Sep 16, 1:29 AM · Restricted Project

Sun, Sep 15

shchenz added inline comments to D66329: [PowerPC] [Peephole] fold frame offset by using index form to save add..
Sun, Sep 15, 7:37 PM · Restricted Project
shchenz updated the diff for D66329: [PowerPC] [Peephole] fold frame offset by using index form to save add..

address Stefan and Amy Comments

Sun, Sep 15, 7:37 PM · Restricted Project

Tue, Sep 10

shchenz created D67431: [PowerPC] [NFC] refactor PPCLoopPreIncPrep pass for further ds/dq form usage..
Tue, Sep 10, 10:03 PM · Restricted Project
shchenz planned changes to D67088: [PowerPC] extend PPCPreIncPrep Pass for ds/dq form.
Tue, Sep 10, 5:09 AM · Restricted Project
shchenz added a comment to D67088: [PowerPC] extend PPCPreIncPrep Pass for ds/dq form.

Thanks for your confirm @hfinkel .
I am still working on the final patch. I will request code review later after I work out final patch.

Tue, Sep 10, 5:09 AM · Restricted Project
shchenz updated the diff for D67088: [PowerPC] extend PPCPreIncPrep Pass for ds/dq form.

revert file name changing to get a better diff shown.

Tue, Sep 10, 1:01 AM · Restricted Project

Mon, Sep 9

shchenz added a comment to D66329: [PowerPC] [Peephole] fold frame offset by using index form to save add..

ping.

Mon, Sep 9, 7:24 AM · Restricted Project
shchenz added a comment to D67088: [PowerPC] extend PPCPreIncPrep Pass for ds/dq form.

@hfinkel Hi Hal, sorry for pushing you on this issue. Could you give some comments for this patch? As I tested on Power9, the patch gains 9.6% on cpu2017 benchmark exchanges, 2.0% on benchmark x264 for base rate, for peak rate, gains 2.1% on cactuBSSN and 1.9% on xalancbmk. Thanks.

Mon, Sep 9, 7:18 AM · Restricted Project

Sun, Sep 8

shchenz updated the summary of D67339: [ConstantRange] add helper function addWithNoWrap.
Sun, Sep 8, 8:41 PM · Restricted Project
shchenz added a comment to D64869: [SCEV] get more accurate range for AddExpr with NW flag.

Can you please split off the ConstantRange addition into a separate revision?

Sun, Sep 8, 8:10 PM · Restricted Project
shchenz updated the diff for D64869: [SCEV] get more accurate range for AddExpr with NW flag.

address @nikic comments

Sun, Sep 8, 8:09 PM · Restricted Project
shchenz added a child revision for D67339: [ConstantRange] add helper function addWithNoWrap: D64869: [SCEV] get more accurate range for AddExpr with NW flag.
Sun, Sep 8, 8:07 PM · Restricted Project
shchenz removed a parent revision for D67339: [ConstantRange] add helper function addWithNoWrap: D64869: [SCEV] get more accurate range for AddExpr with NW flag.
Sun, Sep 8, 8:07 PM · Restricted Project
shchenz added a parent revision for D64869: [SCEV] get more accurate range for AddExpr with NW flag: D67339: [ConstantRange] add helper function addWithNoWrap.
Sun, Sep 8, 8:07 PM · Restricted Project
shchenz removed a child revision for D64869: [SCEV] get more accurate range for AddExpr with NW flag: D67339: [ConstantRange] add helper function addWithNoWrap.
Sun, Sep 8, 8:07 PM · Restricted Project
shchenz added a parent revision for D67339: [ConstantRange] add helper function addWithNoWrap: D64869: [SCEV] get more accurate range for AddExpr with NW flag.
Sun, Sep 8, 8:03 PM · Restricted Project
shchenz added a child revision for D64869: [SCEV] get more accurate range for AddExpr with NW flag: D67339: [ConstantRange] add helper function addWithNoWrap.
Sun, Sep 8, 8:03 PM · Restricted Project
shchenz created D67339: [ConstantRange] add helper function addWithNoWrap.
Sun, Sep 8, 8:00 PM · Restricted Project

Tue, Sep 3

shchenz added a comment to D64869: [SCEV] get more accurate range for AddExpr with NW flag.

Hi @nikic @reames , could you help to have another look at the patch? Thanks in advance.

Tue, Sep 3, 10:22 PM · Restricted Project
shchenz updated the diff for D64869: [SCEV] get more accurate range for AddExpr with NW flag.

new implementation not based on makeGuaranteedNoWrapRegion

Tue, Sep 3, 10:16 PM · Restricted Project

Mon, Sep 2

shchenz updated the diff for D67088: [PowerPC] extend PPCPreIncPrep Pass for ds/dq form.

delete incorrectly added file

Mon, Sep 2, 9:56 PM · Restricted Project
shchenz added a comment to D67088: [PowerPC] extend PPCPreIncPrep Pass for ds/dq form.

@hfinkel Hi Hal, could you help to have a glance at this patch and give comment about if it is the right direction to implement such transform based on PPCPreIncPrep pass you have implemented. Thanks a lot.

Mon, Sep 2, 9:56 PM · Restricted Project
shchenz created D67088: [PowerPC] extend PPCPreIncPrep Pass for ds/dq form.
Mon, Sep 2, 9:52 PM · Restricted Project
shchenz added a comment to D66329: [PowerPC] [Peephole] fold frame offset by using index form to save add..

I like what this patch is doing. Overall, I only have some refactoring comments.

I do think that there are more opportunities here (however they may be a separate patch):

renamable $x6 = ADDI8 $x1, -80
renamable $x7 = ADD8 (killed?) renamable $x6, renamable $x5   ;; x6 here may or may not be killed...
STW killed renamable $r3, 4, killed renamable $x7 :: (store 4 into %ir.14, !tbaa !2)

Can also be turned into this:

[renamable $x6 = ADDI8 $x1, -80] ? ;; May or may not be there...
renamable $x7 = ADD8 $x1, renamable $x5
STW killed renamable $r3, -76, killed renamable $x7 :: (store 4 into %ir.14, !tbaa !2)

There are some advantages to using this approach too:

  1. You don't need an XForm for the Store. You keep the same D form instruction.
  2. You don't need to have the result of ADDI killed. If it is killed you can remove the instruction. If it is not killed you leave it but you still win even if you leave it because you have broken the dependency between the two instructions. One disadvantage that I can see:
  3. Some loads/stores require the immediate to be aligned in some way which will limit which immediates you can use for them.

    My suggestion is more of an addition to what you already have. I think what you have and what I was describing will catch different opportunities.
Mon, Sep 2, 9:10 PM · Restricted Project
shchenz updated the diff for D66329: [PowerPC] [Peephole] fold frame offset by using index form to save add..

address @stefanp comments

Mon, Sep 2, 9:08 PM · Restricted Project
shchenz committed rL370690: Request commit access for shchenz.
Request commit access for shchenz
Mon, Sep 2, 6:56 PM

Aug 20 2019

shchenz planned changes to D64869: [SCEV] get more accurate range for AddExpr with NW flag.

Agree with your comment. @nikic Now we may get a smaller range than its real one with this patch, it may leads to wrong opt. Get a bigger range like trunk is conservative, but right. I will seek for another change for this issue.

Aug 20 2019, 6:25 PM · Restricted Project

Aug 18 2019

shchenz added a comment to D64869: [SCEV] get more accurate range for AddExpr with NW flag.

Hi @reames Could you help to have another look at this? Thanks

Aug 18 2019, 6:32 PM · Restricted Project

Aug 15 2019

shchenz edited reviewers for D66329: [PowerPC] [Peephole] fold frame offset by using index form to save add., added: steven.zhang; removed: qshanz.
Aug 15 2019, 7:38 PM · Restricted Project
shchenz created D66329: [PowerPC] [Peephole] fold frame offset by using index form to save add..
Aug 15 2019, 7:38 PM · Restricted Project
shchenz committed rG02cbdbdabfc1: [PowerPC] add testcases for folding frame offset - NFC (authored by shchenz).
[PowerPC] add testcases for folding frame offset - NFC
Aug 15 2019, 6:54 PM
shchenz committed rL369077: [PowerPC] add testcases for folding frame offset - NFC.
[PowerPC] add testcases for folding frame offset - NFC
Aug 15 2019, 6:51 PM

Aug 12 2019

shchenz added inline comments to D64869: [SCEV] get more accurate range for AddExpr with NW flag.
Aug 12 2019, 12:23 AM · Restricted Project

Aug 11 2019

shchenz updated the diff for D64869: [SCEV] get more accurate range for AddExpr with NW flag.

address @reames comments

Aug 11 2019, 10:42 PM · Restricted Project

Aug 6 2019

shchenz added a comment to D64869: [SCEV] get more accurate range for AddExpr with NW flag.

ping...

Aug 6 2019, 7:00 AM · Restricted Project

Jul 25 2019

shchenz updated the summary of D65262: [SCEV] simplify more icmps with pred sle/ule to pred slt/ult.
Jul 25 2019, 1:40 AM · Restricted Project

Jul 24 2019

shchenz accepted D65131: [PowerPC][NFC] Added `getDefMIPostRA` method so that other methods don't need to implement it repeatedly.

LGTM.
Please fix the minor comments when commit this.

Jul 24 2019, 11:55 PM · Restricted Project
shchenz added a parent revision for D65262: [SCEV] simplify more icmps with pred sle/ule to pred slt/ult: D64869: [SCEV] get more accurate range for AddExpr with NW flag.
Jul 24 2019, 11:43 PM · Restricted Project
shchenz added a child revision for D64869: [SCEV] get more accurate range for AddExpr with NW flag: D65262: [SCEV] simplify more icmps with pred sle/ule to pred slt/ult.
Jul 24 2019, 11:43 PM · Restricted Project
shchenz created D65262: [SCEV] simplify more icmps with pred sle/ule to pred slt/ult.
Jul 24 2019, 11:42 PM · Restricted Project
shchenz committed rGa2d74d3d9021: [PowerPC] exclude more icmps in LSR which is converted in later hardware loop… (authored by shchenz).
[PowerPC] exclude more icmps in LSR which is converted in later hardware loop…
Jul 24 2019, 6:23 PM
shchenz committed rL366976: [PowerPC] exclude more icmps in LSR which is converted in later hardware loop….
[PowerPC] exclude more icmps in LSR which is converted in later hardware loop…
Jul 24 2019, 6:21 PM
shchenz closed D64795: [PowerPC] exclude more icmps in LSR which is converted in later hardware loop pass.
Jul 24 2019, 6:21 PM · Restricted Project
shchenz added a comment to D64869: [SCEV] get more accurate range for AddExpr with NW flag.

I will commit another NFC patch to merge addWithNoSignedWrap and new added addWithNoWrap.

Jul 24 2019, 8:08 AM · Restricted Project
shchenz updated the diff for D64869: [SCEV] get more accurate range for AddExpr with NW flag.

address @reames comments

Jul 24 2019, 8:05 AM · Restricted Project
shchenz added a comment to D64795: [PowerPC] exclude more icmps in LSR which is converted in later hardware loop pass.

ping

Jul 24 2019, 12:59 AM · Restricted Project

Jul 23 2019

shchenz committed rG8b7e82be12a0: [PowerPC][NFC] use opcode instead of MachineInstr for instrHasImmForm(). (authored by shchenz).
[PowerPC][NFC] use opcode instead of MachineInstr for instrHasImmForm().
Jul 23 2019, 9:51 PM
shchenz committed rL366867: [PowerPC][NFC] use opcode instead of MachineInstr for instrHasImmForm()..
[PowerPC][NFC] use opcode instead of MachineInstr for instrHasImmForm().
Jul 23 2019, 9:50 PM

Jul 18 2019

shchenz added a comment to D64869: [SCEV] get more accurate range for AddExpr with NW flag.

@reames Thanks for your comments. I will update this patch after @nikic lands his improvement in https://reviews.llvm.org/D61653

Jul 18 2019, 2:29 AM · Restricted Project
shchenz committed rGc38e3efe27aa: [SCEV] add no wrap flag for SCEVAddExpr. Differential Revision: https://reviews. (authored by shchenz).
[SCEV] add no wrap flag for SCEVAddExpr. Differential Revision: https://reviews.
Jul 18 2019, 2:24 AM
shchenz committed rL366419: [SCEV] add no wrap flag for SCEVAddExpr..
[SCEV] add no wrap flag for SCEVAddExpr.
Jul 18 2019, 2:23 AM
shchenz closed D64868: [SCEV] add NW flag for AddExpr (start + stride).
Jul 18 2019, 2:23 AM · Restricted Project
shchenz updated the summary of D64868: [SCEV] add NW flag for AddExpr (start + stride).
Jul 18 2019, 2:11 AM · Restricted Project

Jul 17 2019

shchenz added a child revision for D64868: [SCEV] add NW flag for AddExpr (start + stride): D64869: [SCEV] get more accurate range for AddExpr with NW flag.
Jul 17 2019, 7:58 AM · Restricted Project
shchenz added a parent revision for D64869: [SCEV] get more accurate range for AddExpr with NW flag: D64868: [SCEV] add NW flag for AddExpr (start + stride).
Jul 17 2019, 7:58 AM · Restricted Project
shchenz removed a parent revision for D64868: [SCEV] add NW flag for AddExpr (start + stride): D64869: [SCEV] get more accurate range for AddExpr with NW flag.
Jul 17 2019, 7:58 AM · Restricted Project
shchenz removed a child revision for D64869: [SCEV] get more accurate range for AddExpr with NW flag: D64868: [SCEV] add NW flag for AddExpr (start + stride).
Jul 17 2019, 7:58 AM · Restricted Project
shchenz added a child revision for D64869: [SCEV] get more accurate range for AddExpr with NW flag: D64868: [SCEV] add NW flag for AddExpr (start + stride).
Jul 17 2019, 7:33 AM · Restricted Project
shchenz added a parent revision for D64868: [SCEV] add NW flag for AddExpr (start + stride): D64869: [SCEV] get more accurate range for AddExpr with NW flag.
Jul 17 2019, 7:33 AM · Restricted Project
shchenz created D64869: [SCEV] get more accurate range for AddExpr with NW flag.
Jul 17 2019, 7:32 AM · Restricted Project
shchenz created D64868: [SCEV] add NW flag for AddExpr (start + stride).
Jul 17 2019, 6:39 AM · Restricted Project

Jul 16 2019

shchenz created D64795: [PowerPC] exclude more icmps in LSR which is converted in later hardware loop pass.
Jul 16 2019, 6:14 AM · Restricted Project

Jul 10 2019

shchenz committed rG627095ec5be1: [SCEV] teach SCEV symbolical execution about overflow intrinsics folding. (authored by shchenz).
[SCEV] teach SCEV symbolical execution about overflow intrinsics folding.
Jul 10 2019, 7:20 PM
shchenz committed rL365726: [SCEV] teach SCEV symbolical execution about overflow intrinsics folding..
[SCEV] teach SCEV symbolical execution about overflow intrinsics folding.
Jul 10 2019, 7:18 PM
shchenz closed D64422: [SCEV] teach SCEV symbolical execution about overflow intrinsics folding..
Jul 10 2019, 7:18 PM · Restricted Project
shchenz added a comment to D64509: [SCEV] Compute exit count from overflow test.

Thanks very much for doing this, this is exactly what I want to do as a follow-up patch for https://reviews.llvm.org/D64422.

Jul 10 2019, 7:11 PM · Restricted Project

Jul 9 2019

shchenz added a comment to D64197: [HardwareLoops] NFC - move hardware loop checking code to isHardwareLoopProfitable().

Thanks for reverting @jsji . I will see how to fix it.

Jul 9 2019, 6:12 PM · Restricted Project
shchenz created D64422: [SCEV] teach SCEV symbolical execution about overflow intrinsics folding..
Jul 9 2019, 8:48 AM · Restricted Project
shchenz committed rGd95557306585: [HardwareLoops] NFC - move hardware loop checking code to… (authored by shchenz).
[HardwareLoops] NFC - move hardware loop checking code to…
Jul 9 2019, 7:57 AM
shchenz committed rL365497: [HardwareLoops] NFC - move hardware loop checking code to….
[HardwareLoops] NFC - move hardware loop checking code to…
Jul 9 2019, 7:57 AM
shchenz closed D64197: [HardwareLoops] NFC - move hardware loop checking code to isHardwareLoopProfitable().
Jul 9 2019, 7:57 AM · Restricted Project
shchenz added inline comments to D64197: [HardwareLoops] NFC - move hardware loop checking code to isHardwareLoopProfitable().
Jul 9 2019, 5:18 AM · Restricted Project
shchenz updated the diff for D64197: [HardwareLoops] NFC - move hardware loop checking code to isHardwareLoopProfitable().

address @samparker comments.

Jul 9 2019, 5:18 AM · Restricted Project

Jul 8 2019

shchenz committed rG25ab27e6ef81: [PowerPC][NFC] remove redundant function isVFReg(). (authored by shchenz).
[PowerPC][NFC] remove redundant function isVFReg().
Jul 8 2019, 7:52 PM
shchenz committed rL365429: [PowerPC][NFC] remove redundant function isVFReg()..
[PowerPC][NFC] remove redundant function isVFReg().
Jul 8 2019, 7:52 PM

Jul 4 2019

shchenz edited reviewers for D64197: [HardwareLoops] NFC - move hardware loop checking code to isHardwareLoopProfitable(), added: steven.zhang; removed: qshanz.
Jul 4 2019, 1:44 AM · Restricted Project
shchenz created D64197: [HardwareLoops] NFC - move hardware loop checking code to isHardwareLoopProfitable().
Jul 4 2019, 1:38 AM · Restricted Project

Jul 3 2019

shchenz committed rG469f30ababa5: [PowerPC] Hardware Loop branch instruction's condition may not be icmp. This… (authored by shchenz).
[PowerPC] Hardware Loop branch instruction's condition may not be icmp. This…
Jul 3 2019, 6:54 PM
shchenz committed rL365104: [PowerPC] Hardware Loop branch instruction's condition may not be icmp..
[PowerPC] Hardware Loop branch instruction's condition may not be icmp.
Jul 3 2019, 6:54 PM
shchenz closed D64124: [PowerPC] Hardware Loop branch instruction's condition may not be icmp.
Jul 3 2019, 6:54 PM · Restricted Project
shchenz updated the diff for D64124: [PowerPC] Hardware Loop branch instruction's condition may not be icmp.

address review comments about test case.

Jul 3 2019, 6:47 PM · Restricted Project
shchenz updated the diff for D64124: [PowerPC] Hardware Loop branch instruction's condition may not be icmp.

@samparker Thanks for your comment, Sam. Updated the patch. I use the same source in both opt test and llc test, since the testing point is not the same, hope this is ok.

Jul 3 2019, 5:47 AM · Restricted Project
shchenz created D64124: [PowerPC] Hardware Loop branch instruction's condition may not be icmp.
Jul 3 2019, 2:15 AM · Restricted Project

Jul 2 2019

shchenz committed rGdfdccbb26ba3: [PowerPC] exclude ICmpZero in LSR if icmp can be replaced in later hardware… (authored by shchenz).
[PowerPC] exclude ICmpZero in LSR if icmp can be replaced in later hardware…
Jul 2 2019, 6:53 PM
shchenz committed rL364993: [PowerPC] exclude ICmpZero in LSR if icmp can be replaced in later hardware….
[PowerPC] exclude ICmpZero in LSR if icmp can be replaced in later hardware…
Jul 2 2019, 6:53 PM
shchenz closed D63477: [PowerPC] exclude ICmpZero Use in LSR if icmp can be replaced inside hardware loop..
Jul 2 2019, 6:53 PM · Restricted Project

Jun 26 2019

shchenz updated the diff for D63477: [PowerPC] exclude ICmpZero Use in LSR if icmp can be replaced inside hardware loop..

call target hook function outside the loop, it should be called once per loop.

Jun 26 2019, 6:25 PM · Restricted Project
shchenz updated the diff for D63477: [PowerPC] exclude ICmpZero Use in LSR if icmp can be replaced inside hardware loop..

Thanks for your comments @hfinkel .
Updated accordingly.

Jun 26 2019, 5:23 AM · Restricted Project
shchenz added a comment to D63805: [HardwareLoops] NFC - move loop with irreducible control flow checking logic to isHardwareLoopProfitable().

codes moved to class TargetTransformInfo can not be called by both class HardwareLoops and class PPCTargetTransformInfo.
Move the code to class HardwareLoopInfo in NFC patch https://reviews.llvm.org/rL364415. FYI @samparker

Jun 26 2019, 5:12 AM · Restricted Project
shchenz committed rGaa9995289667: [HardwareLoops] NFC - move loop with irreducible control flow checking logic to… (authored by shchenz).
[HardwareLoops] NFC - move loop with irreducible control flow checking logic to…
Jun 26 2019, 5:06 AM
shchenz committed rL364415: [HardwareLoops] NFC - move loop with irreducible control flow checking logic to….
[HardwareLoops] NFC - move loop with irreducible control flow checking logic to…
Jun 26 2019, 5:06 AM
shchenz closed D63805: [HardwareLoops] NFC - move loop with irreducible control flow checking logic to isHardwareLoopProfitable().

committed in https://reviews.llvm.org/rL364397

Jun 26 2019, 2:33 AM · Restricted Project
shchenz committed rG46ce9e4fff45: [HardwareLoops] NFC - move loop with irreducible control flow checking logic to… (authored by shchenz).
[HardwareLoops] NFC - move loop with irreducible control flow checking logic to…
Jun 26 2019, 2:14 AM
shchenz committed rL364397: [HardwareLoops] NFC - move loop with irreducible control flow checking logic to….
[HardwareLoops] NFC - move loop with irreducible control flow checking logic to…
Jun 26 2019, 2:13 AM

Jun 25 2019

shchenz created D63805: [HardwareLoops] NFC - move loop with irreducible control flow checking logic to isHardwareLoopProfitable().
Jun 25 2019, 9:54 PM · Restricted Project
shchenz requested changes to D63692: [LSR] Improved code generation for Zero Compare loops.

This patch causes a lot of cases fail except platform X86 and ARM.

Jun 25 2019, 7:50 PM · Restricted Project