Page MenuHomePhabricator

shchenz (ChenZheng)
User

Projects

User does not belong to any projects.

User Details

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

Recent Activity

Thu, Jul 18

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

Thu, Jul 18, 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.
Thu, Jul 18, 2:24 AM
shchenz committed rL366419: [SCEV] add no wrap flag for SCEVAddExpr..
[SCEV] add no wrap flag for SCEVAddExpr.
Thu, Jul 18, 2:23 AM
shchenz closed D64868: [SCEV] add NW flag for AddExpr (start + stride).
Thu, Jul 18, 2:23 AM · Restricted Project
shchenz updated the summary of D64868: [SCEV] add NW flag for AddExpr (start + stride).
Thu, Jul 18, 2:11 AM · Restricted Project

Wed, Jul 17

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.
Wed, Jul 17, 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).
Wed, Jul 17, 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.
Wed, Jul 17, 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).
Wed, Jul 17, 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).
Wed, Jul 17, 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.
Wed, Jul 17, 7:33 AM · Restricted Project
shchenz created D64869: [SCEV] get more accurate range for AddExpr with NW flag.
Wed, Jul 17, 7:32 AM · Restricted Project
shchenz created D64868: [SCEV] add NW flag for AddExpr (start + stride).
Wed, Jul 17, 6:39 AM · Restricted Project

Tue, Jul 16

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

Wed, Jul 10

shchenz committed rG627095ec5be1: [SCEV] teach SCEV symbolical execution about overflow intrinsics folding. (authored by shchenz).
[SCEV] teach SCEV symbolical execution about overflow intrinsics folding.
Wed, Jul 10, 7:20 PM
shchenz committed rL365726: [SCEV] teach SCEV symbolical execution about overflow intrinsics folding..
[SCEV] teach SCEV symbolical execution about overflow intrinsics folding.
Wed, Jul 10, 7:18 PM
shchenz closed D64422: [SCEV] teach SCEV symbolical execution about overflow intrinsics folding..
Wed, Jul 10, 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.

Wed, Jul 10, 7:11 PM · Restricted Project

Tue, Jul 9

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.

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

address @samparker comments.

Tue, Jul 9, 5:18 AM · Restricted Project

Mon, Jul 8

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

Thu, Jul 4

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

Wed, Jul 3

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…
Wed, Jul 3, 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.
Wed, Jul 3, 6:54 PM
shchenz closed D64124: [PowerPC] Hardware Loop branch instruction's condition may not be icmp.
Wed, Jul 3, 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.

Wed, Jul 3, 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.

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

Tue, Jul 2

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…
Tue, Jul 2, 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…
Tue, Jul 2, 6:53 PM
shchenz closed D63477: [PowerPC] exclude ICmpZero Use in LSR if icmp can be replaced inside hardware loop..
Tue, Jul 2, 6:53 PM · Restricted Project

Wed, Jun 26

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.

Wed, Jun 26, 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.

Wed, Jun 26, 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

Wed, Jun 26, 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…
Wed, Jun 26, 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…
Wed, Jun 26, 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

Wed, Jun 26, 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…
Wed, Jun 26, 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…
Wed, Jun 26, 2:13 AM

Tue, Jun 25

shchenz created D63805: [HardwareLoops] NFC - move loop with irreducible control flow checking logic to isHardwareLoopProfitable().
Tue, Jun 25, 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.

Tue, Jun 25, 7:50 PM · Restricted Project

Jun 18 2019

shchenz retitled D63477: [PowerPC] exclude ICmpZero Use in LSR if icmp can be replaced inside hardware loop. from [PowerPC] exclude ICmpZero Use in LSR in that icmp can be replaced inside hardware loop. to [PowerPC] exclude ICmpZero Use in LSR if icmp can be replaced inside hardware loop..
Jun 18 2019, 11:55 PM · Restricted Project
shchenz updated the diff for D63477: [PowerPC] exclude ICmpZero Use in LSR if icmp can be replaced inside hardware loop..

rebase

Jun 18 2019, 6:44 PM · Restricted Project
shchenz committed rGc5b918de58c0: [NFC] move some hardware loop checking code to a common place for other using. (authored by shchenz).
[NFC] move some hardware loop checking code to a common place for other using.
Jun 18 2019, 6:24 PM
shchenz committed rL363758: [NFC] move some hardware loop checking code to a common place for other using..
[NFC] move some hardware loop checking code to a common place for other using.
Jun 18 2019, 6:24 PM
shchenz closed D63478: [HardwareLoops] NFC - move some hardware loop judgement code to a common place for other using.
Jun 18 2019, 6:24 PM · Restricted Project
shchenz abandoned D62847: [PowerPC] reorder LSR and PPCCTRLoops pass.

Abandon this patch.

Jun 18 2019, 1:45 AM · Restricted Project
shchenz added inline comments to D63477: [PowerPC] exclude ICmpZero Use in LSR if icmp can be replaced inside hardware loop..
Jun 18 2019, 1:40 AM · Restricted Project
shchenz updated the summary of D63477: [PowerPC] exclude ICmpZero Use in LSR if icmp can be replaced inside hardware loop..
Jun 18 2019, 1:34 AM · Restricted Project
shchenz created D63478: [HardwareLoops] NFC - move some hardware loop judgement code to a common place for other using.
Jun 18 2019, 1:34 AM · Restricted Project
shchenz created D63477: [PowerPC] exclude ICmpZero Use in LSR if icmp can be replaced inside hardware loop..
Jun 18 2019, 1:31 AM · Restricted Project

Jun 5 2019

shchenz added a comment to D62847: [PowerPC] reorder LSR and PPCCTRLoops pass.

I'm really uneasy about this change. PPCCTRLoops inserts special loop intrinsics which the rest of the loop-optimization pipeline doesn't understand, and so logically, it should come last. It's pretty clear that LSR is interfering with PPCCTRLoops, is this because it transforms the loops into some form that SCEV doesn't understand? Could we adjust LSR to make it more friendly to hardware-assisted loops? In theory, if LSR had the right cost model, it could actually make *more* loops that PPCCTRLoops could handle, and not fewer?

Jun 5 2019, 2:17 AM · Restricted Project

Jun 4 2019

shchenz created D62847: [PowerPC] reorder LSR and PPCCTRLoops pass.
Jun 4 2019, 2:30 AM · Restricted Project

Jun 3 2019

shchenz committed rGa050b2554400: [PowerPC] add testcases for reordering LSR and PPCCTRLoops - NFC (authored by shchenz).
[PowerPC] add testcases for reordering LSR and PPCCTRLoops - NFC
Jun 3 2019, 11:47 PM
shchenz committed rL362468: [PowerPC] add testcases for reordering LSR and PPCCTRLoops - NFC.
[PowerPC] add testcases for reordering LSR and PPCCTRLoops - NFC
Jun 3 2019, 11:46 PM

May 27 2019

shchenz added a comment to D60762: [SelectionDAG] Legalize vaargs that require vector splitting.

PowerPC case now LGTM. I think this also needs approval for x86 case?

May 27 2019, 10:52 PM · Restricted Project
shchenz added inline comments to D60762: [SelectionDAG] Legalize vaargs that require vector splitting.
May 27 2019, 12:06 AM · Restricted Project

May 26 2019

shchenz added inline comments to D60762: [SelectionDAG] Legalize vaargs that require vector splitting.
May 26 2019, 11:58 PM · Restricted Project

May 21 2019

shchenz committed rGb727b0483c86: [PowerPC] use meaningful name for displacement form aligned with x-form - NFC (authored by shchenz).
[PowerPC] use meaningful name for displacement form aligned with x-form - NFC
May 21 2019, 8:16 PM
shchenz committed rL361347: [PowerPC] use meaningful name for displacement form aligned with x-form - NFC.
[PowerPC] use meaningful name for displacement form aligned with x-form - NFC
May 21 2019, 8:15 PM
shchenz committed rG9970665f60e0: [PowerPC] [ISEL] select x-form instruction for unaligned offset Differential… (authored by shchenz).
[PowerPC] [ISEL] select x-form instruction for unaligned offset Differential…
May 21 2019, 7:56 PM
shchenz committed rL361346: [PowerPC] [ISEL] select x-form instruction for unaligned offset.
[PowerPC] [ISEL] select x-form instruction for unaligned offset
May 21 2019, 7:56 PM
shchenz closed D62173: [PowerPC] [ISEL] select x-form instruction for unaligned offset.
May 21 2019, 7:55 PM · Restricted Project

May 20 2019

shchenz created D62173: [PowerPC] [ISEL] select x-form instruction for unaligned offset.
May 20 2019, 10:53 PM · Restricted Project
shchenz committed rGe64bcada5fa1: [PowerPC] test cases for selecting x-form instruction for unaligned offset - NFC (authored by shchenz).
[PowerPC] test cases for selecting x-form instruction for unaligned offset - NFC
May 20 2019, 10:04 PM
shchenz committed rL361219: [PowerPC] test cases for selecting x-form instruction for unaligned offset….
[PowerPC] test cases for selecting x-form instruction for unaligned offset…
May 20 2019, 10:04 PM
shchenz committed rGc4c407a0ebbe: [PowerPC] use more meaningful name - NFC (authored by shchenz).
[PowerPC] use more meaningful name - NFC
May 20 2019, 8:54 PM
shchenz committed rL361218: [PowerPC] use more meaningful name - NFC.
[PowerPC] use more meaningful name - NFC
May 20 2019, 8:52 PM

Apr 13 2019

shchenz committed rG87dd0e06dc99: [InstCombine] Canonicalize (-X srem Y) to -(X srem Y). (authored by shchenz).
[InstCombine] Canonicalize (-X srem Y) to -(X srem Y).
Apr 13 2019, 2:21 AM
shchenz committed rL358328: [InstCombine] Canonicalize (-X srem Y) to -(X srem Y)..
[InstCombine] Canonicalize (-X srem Y) to -(X srem Y).
Apr 13 2019, 2:21 AM
shchenz closed D60647: [InstCombine] Canonicalize (-X srem Y) to -(X srem Y).
Apr 13 2019, 2:21 AM · Restricted Project
shchenz created D60647: [InstCombine] Canonicalize (-X srem Y) to -(X srem Y).
Apr 13 2019, 12:59 AM · Restricted Project
shchenz committed rGfc59a0326b7c: [InstCombine] [NFC] add testcases for canonicalizing (-X srem Y) to -(X srem Y). (authored by shchenz).
[InstCombine] [NFC] add testcases for canonicalizing (-X srem Y) to -(X srem Y).
Apr 13 2019, 12:35 AM
shchenz committed rL358327: [InstCombine] [NFC] add testcases for canonicalizing (-X srem Y) to -(X srem Y)..
[InstCombine] [NFC] add testcases for canonicalizing (-X srem Y) to -(X srem Y).
Apr 13 2019, 12:33 AM

Apr 9 2019

shchenz committed rG5e13ff1da20b: [InstCombine] Canonicalize (-X s/ Y) to -(X s/ Y). (authored by shchenz).
[InstCombine] Canonicalize (-X s/ Y) to -(X s/ Y).
Apr 9 2019, 11:51 PM
shchenz committed rL358050: [InstCombine] Canonicalize (-X s/ Y) to -(X s/ Y)..
[InstCombine] Canonicalize (-X s/ Y) to -(X s/ Y).
Apr 9 2019, 11:51 PM
shchenz closed D60395: [InstCombine] Canonicalize (-X s/ Y) to -(X s/ Y).
Apr 9 2019, 11:51 PM · Restricted Project
shchenz added a comment to D60395: [InstCombine] Canonicalize (-X s/ Y) to -(X s/ Y).

LG, please do run at least the check-llvm before committing..

Apr 9 2019, 11:41 PM · Restricted Project
shchenz updated the diff for D60395: [InstCombine] Canonicalize (-X s/ Y) to -(X s/ Y).

Sorry for breaking down unit testing. Could you please help to do another review for this patch. Thanks a lot.

Apr 9 2019, 10:55 PM · Restricted Project
shchenz added a comment to D60395: [InstCombine] Canonicalize (-X s/ Y) to -(X s/ Y).

@shchenz how did rL358017 end up committing this diff into completely different place in this function?

Apr 9 2019, 7:06 PM · Restricted Project
shchenz added a comment to D60478: [InstCombine] Fix canonicalization of (-X s/ Y) to -(X s/ Y)..

Sorry for the faulty commit and thanks for reverting this @lebedev.ri

Apr 9 2019, 6:51 PM · Restricted Project
shchenz committed rG1383a9168948: [InstCombine] [InstCombine] Canonicalize (-X s/ Y) to -(X s/ Y). (authored by shchenz).
[InstCombine] [InstCombine] Canonicalize (-X s/ Y) to -(X s/ Y).
Apr 9 2019, 9:35 AM
shchenz committed rL358017: [InstCombine] [InstCombine] Canonicalize (-X s/ Y) to -(X s/ Y)..
[InstCombine] [InstCombine] Canonicalize (-X s/ Y) to -(X s/ Y).
Apr 9 2019, 9:35 AM
shchenz closed D60395: [InstCombine] Canonicalize (-X s/ Y) to -(X s/ Y).
Apr 9 2019, 9:35 AM · Restricted Project
shchenz added a comment to D60395: [InstCombine] Canonicalize (-X s/ Y) to -(X s/ Y).

address comments.

Ok, thank you, looks good now.

----------------------------------------
Optimization: nsw preserved
Precondition: true
  %o0 = sub nsw i8 0, %x
  %r = srem i8 %o0, %y
=>
  %n0 = srem i8 %x, %y
  %r = sub nsw i8 0, %n0

Done: 1
Optimization is correct!

@shchenz if you don't intend to immediately-ish submit a patch for that sibling pattern, could you please file a bug?

Apr 9 2019, 9:20 AM · Restricted Project
shchenz updated the diff for D60395: [InstCombine] Canonicalize (-X s/ Y) to -(X s/ Y).

address comments.

Apr 9 2019, 6:31 AM · Restricted Project
shchenz committed rG11cf39729257: [InstCombine] add more testcases for canonicalize (-X s/ Y) to -(X s/ Y). (authored by shchenz).
[InstCombine] add more testcases for canonicalize (-X s/ Y) to -(X s/ Y).
Apr 9 2019, 5:49 AM
shchenz committed rL358000: [InstCombine] add more testcases for canonicalize (-X s/ Y) to -(X s/ Y)..
[InstCombine] add more testcases for canonicalize (-X s/ Y) to -(X s/ Y).
Apr 9 2019, 5:49 AM

Apr 8 2019

shchenz accepted D60181: [PowerPC] More precise exploitation of P9 maddld instruction when operands are constant.

LGTM except one minor formating issue. Thansk for fixing this.

Apr 8 2019, 10:40 PM · Restricted Project
shchenz accepted D60426: [InstCombine] prevent possible miscompile with negate+sdiv of vector op.

LGTM for this patch.

Apr 8 2019, 10:38 PM · Restricted Project
shchenz added inline comments to D60395: [InstCombine] Canonicalize (-X s/ Y) to -(X s/ Y).
Apr 8 2019, 7:22 PM · Restricted Project
shchenz committed rG19ce6719bc84: [PowerPC] initialize SchedModel according to platform. Differential Revision… (authored by shchenz).
[PowerPC] initialize SchedModel according to platform. Differential Revision…
Apr 8 2019, 6:25 PM
shchenz committed rL357962: [PowerPC] initialize SchedModel according to platform..
[PowerPC] initialize SchedModel according to platform.
Apr 8 2019, 6:24 PM