Page MenuHomePhabricator

steven.zhang (Qing Shan Zhang)
User

Projects

User does not belong to any projects.

User Details

User Since
May 15 2018, 2:45 AM (123 w, 5 d)

Recent Activity

Yesterday

steven.zhang accepted D87738: [PowerPC] Clean-up mayRaiseFPException bits.

LGTM and we need some follow up patch to model the FPSCR and remove the hasSideEffects bit.

Sat, Sep 26, 5:13 PM · Restricted Project

Thu, Sep 24

steven.zhang added inline comments to D88278: [PowerPC] Add builtins for xvtdiv(dp|sp) and xvtsqrt(dp|sp)..
Thu, Sep 24, 11:06 PM · Restricted Project, Restricted Project
steven.zhang updated the diff for D86684: [Refactor] Add the SchedHeuristic for Scheduler to allow platform customizing the heuristics.

Address comments.

Thu, Sep 24, 9:05 AM · Restricted Project
steven.zhang retitled D88201: [DAGCombiner] Add decomposition patterns for Mul-by-Imm. from [DAGCombiner][PowerPC] Add decomposition patterns for Mul-by-Imm. to [DAGCombiner] Add decomposition patterns for Mul-by-Imm..
Thu, Sep 24, 1:44 AM · Restricted Project

Wed, Sep 23

steven.zhang updated the diff for D87071: [Scheduling] Add a mutation to schedule GOT indirect instructions close to each other for linker optimization.

Address comments.

Wed, Sep 23, 4:51 PM · Restricted Project
steven.zhang added inline comments to D87071: [Scheduling] Add a mutation to schedule GOT indirect instructions close to each other for linker optimization.
Wed, Sep 23, 4:47 PM · Restricted Project
steven.zhang added a comment to D86684: [Refactor] Add the SchedHeuristic for Scheduler to allow platform customizing the heuristics.

Gentle ping ...

Wed, Sep 23, 4:10 PM · Restricted Project

Sun, Sep 20

steven.zhang added a comment to D87071: [Scheduling] Add a mutation to schedule GOT indirect instructions close to each other for linker optimization.

Gentle ping ...

Sun, Sep 20, 4:52 PM · Restricted Project

Thu, Sep 17

steven.zhang accepted D82725: [PowerPC] Implement Move to VSR Mask builtins in LLVM/Clang.

LGTM.

Thu, Sep 17, 4:27 PM · Restricted Project, Restricted Project, Restricted Project

Wed, Sep 16

steven.zhang accepted D86686: [PowerPC] Fix store-fptoi combine of f128 on Power8.

LGTM now.

Wed, Sep 16, 5:00 PM · Restricted Project
steven.zhang accepted D87698: [SelectionDAG] Check any use of negation result before removal.

LGTM.

Wed, Sep 16, 4:59 PM · Restricted Project
steven.zhang added inline comments to D86686: [PowerPC] Fix store-fptoi combine of f128 on Power8.
Wed, Sep 16, 3:35 AM · Restricted Project
steven.zhang added inline comments to D86686: [PowerPC] Fix store-fptoi combine of f128 on Power8.
Wed, Sep 16, 3:12 AM · Restricted Project
steven.zhang accepted D87384: [PowerPC] Add ISEL patterns for Mul with Imm..

LGTM. Thank you for doing this. I assume that you have run it with bmk to make sure that the functionality is fine.

Wed, Sep 16, 1:15 AM · Restricted Project

Tue, Sep 15

steven.zhang added a comment to D86684: [Refactor] Add the SchedHeuristic for Scheduler to allow platform customizing the heuristics.

Thank you Dave. Can someone from other target have a look at this refactor to see if there is any problems ?

Tue, Sep 15, 7:06 PM · Restricted Project

Mon, Sep 14

steven.zhang accepted D87614: [SelectionDAG] Remove unused FP constant in getNegatedExpression.

LGTM and thank you for doing this. But please for a while to see if RKSimon has more comments.

Mon, Sep 14, 11:57 PM · Restricted Project
steven.zhang added a comment to D86689: [DAGCombine] Don't delete the node if it has uses immediately.

https://reviews.llvm.org/D87614 is posted to fix this issue.

Mon, Sep 14, 5:57 PM · Restricted Project
steven.zhang added inline comments to D87614: [SelectionDAG] Remove unused FP constant in getNegatedExpression.
Mon, Sep 14, 5:54 PM · Restricted Project
steven.zhang added a reviewer for D87614: [SelectionDAG] Remove unused FP constant in getNegatedExpression: Restricted Project.
Mon, Sep 14, 5:47 PM · Restricted Project

Sun, Sep 13

steven.zhang added inline comments to D87071: [Scheduling] Add a mutation to schedule GOT indirect instructions close to each other for linker optimization.
Sun, Sep 13, 6:32 PM · Restricted Project
steven.zhang updated the diff for D87071: [Scheduling] Add a mutation to schedule GOT indirect instructions close to each other for linker optimization.

Simplify the logic and add tests. We still have cases that Peephole cannot handle due to missing the dependency information. But we don't want to handle it inside the scheduler as that is not right.

Sun, Sep 13, 6:25 PM · Restricted Project

Fri, Sep 11

steven.zhang committed rG0680a3d56d8b: [Power10] Enable the heuristic for Power10 and switch the sched model (authored by steven.zhang).
[Power10] Enable the heuristic for Power10 and switch the sched model
Fri, Sep 11, 7:52 PM
steven.zhang closed D86865: [Power10] Enable the heuristic for Power10 and switch the sched model with P9 Model.
Fri, Sep 11, 7:51 PM · Restricted Project
steven.zhang committed rG528554c39b09: [PowerPC] Set the mayRaiseFPException for FCMPUS/FCMPUD (authored by steven.zhang).
[PowerPC] Set the mayRaiseFPException for FCMPUS/FCMPUD
Fri, Sep 11, 7:44 PM
steven.zhang closed D83937: [Power] Set the mayRaiseFPException for FCMPUS/FCMPUD.
Fri, Sep 11, 7:44 PM · Restricted Project

Thu, Sep 10

steven.zhang accepted D87223: [FPEnv] [Clang] Enable constrained FP support for PowerPC.

LGTM as far as you have verified the bmk, bootstrap with strict-fp enabled.

Thu, Sep 10, 5:40 PM · Restricted Project

Wed, Sep 9

steven.zhang added a comment to D87071: [Scheduling] Add a mutation to schedule GOT indirect instructions close to each other for linker optimization.

Gentle ping...

Wed, Sep 9, 4:53 PM · Restricted Project
steven.zhang added inline comments to D87361: [SelectionDAG] Add helper guard to automatically insert flags.
Wed, Sep 9, 5:28 AM · Restricted Project

Mon, Sep 7

steven.zhang planned changes to D80974: [DAGCombine] Adding a hook to improve the precision of fsqrt if the input is denormal.
Mon, Sep 7, 6:56 PM · Restricted Project
steven.zhang planned changes to D80706: [DAGCombine] Add hook to allow target specific test for sqrt input.
Mon, Sep 7, 6:56 PM · Restricted Project
steven.zhang updated the diff for D83937: [Power] Set the mayRaiseFPException for FCMPUS/FCMPUD.

Add test.

Mon, Sep 7, 6:53 PM · Restricted Project
steven.zhang added inline comments to D82725: [PowerPC] Implement Move to VSR Mask builtins in LLVM/Clang.
Mon, Sep 7, 6:03 PM · Restricted Project, Restricted Project, Restricted Project
steven.zhang accepted D82726: [PowerPC] Implement Vector Count Mask Bits builtins in LLVM/Clang.

LGTM.

Mon, Sep 7, 4:47 PM · Restricted Project, Restricted Project

Sun, Sep 6

steven.zhang added a reviewer for D86684: [Refactor] Add the SchedHeuristic for Scheduler to allow platform customizing the heuristics: dmgreen.
Sun, Sep 6, 9:24 PM · Restricted Project
steven.zhang added a comment to D86865: [Power10] Enable the heuristic for Power10 and switch the sched model with P9 Model.

Gentle ping...

Sun, Sep 6, 9:08 PM · Restricted Project
steven.zhang added inline comments to D86684: [Refactor] Add the SchedHeuristic for Scheduler to allow platform customizing the heuristics.
Sun, Sep 6, 8:44 PM · Restricted Project
steven.zhang updated the diff for D86684: [Refactor] Add the SchedHeuristic for Scheduler to allow platform customizing the heuristics.

I am a little surprised that, if virtual dispatch was hurting performance so much, function pointer would end up being a lot better. It's still a similar indirect non inlinable/optimisable function call.

Sun, Sep 6, 8:42 PM · Restricted Project

Fri, Sep 4

steven.zhang updated the diff for D86684: [Refactor] Add the SchedHeuristic for Scheduler to allow platform customizing the heuristics.

Address reviewer's comments.

Fri, Sep 4, 11:52 PM · Restricted Project
steven.zhang abandoned D86681: [PowerPC] duplicate the tryCandidate from base to PowerPC scheduler.

Abandon this PR as I want to merge this patch into the refactor patch.

Fri, Sep 4, 4:43 AM · Restricted Project

Thu, Sep 3

steven.zhang added a comment to D86684: [Refactor] Add the SchedHeuristic for Scheduler to allow platform customizing the heuristics.

Hello. This looks interesting. I've run into places before where we just wanted to add an extra heuristics. I think some of our downstream schedules go a bit beyond this and would still need to override tryCandidate (the merge is going to be a pain!), but I've run into situations where it would definitely be useful.

Thu, Sep 3, 3:08 AM · Restricted Project
steven.zhang planned changes to D83937: [Power] Set the mayRaiseFPException for FCMPUS/FCMPUD.
define i32 @test(double %a, double %b) {
entry:
  %r = fcmp ogt double %a, %b
  %g = zext i1 %r to i32
  ret i32 %g
}

Print MIR:

renamable $cr0 = FCMPUD killed renamable $f1, killed renamable $f2 # Without mayRaise set
renamable $cr0 = nofpexcept FCMPUD killed renamable $f1, killed renamable $f2 # With mayRaise set

You can create a dedicated test file for fp-exception bit, so that we can re-check all fp-exception bits in instruction definitions.

Thu, Sep 3, 2:50 AM · Restricted Project
steven.zhang updated the diff for D87071: [Scheduling] Add a mutation to schedule GOT indirect instructions close to each other for linker optimization.

Update tests.

Thu, Sep 3, 1:01 AM · Restricted Project

Wed, Sep 2

steven.zhang added inline comments to D87071: [Scheduling] Add a mutation to schedule GOT indirect instructions close to each other for linker optimization.
Wed, Sep 2, 10:28 PM · Restricted Project
steven.zhang requested review of D87071: [Scheduling] Add a mutation to schedule GOT indirect instructions close to each other for linker optimization.
Wed, Sep 2, 10:26 PM · Restricted Project
steven.zhang added a comment to D86684: [Refactor] Add the SchedHeuristic for Scheduler to allow platform customizing the heuristics.

Gentle ping ...

Wed, Sep 2, 4:47 PM · Restricted Project
steven.zhang added a comment to D86681: [PowerPC] duplicate the tryCandidate from base to PowerPC scheduler.

Confirm that no bmk deg found. Gentle ping ...

Wed, Sep 2, 4:47 PM · Restricted Project

Tue, Sep 1

steven.zhang accepted D86754: [PowerPC] Implement instruction clustering for stores.

LGTM.

Tue, Sep 1, 7:56 PM · Restricted Project

Mon, Aug 31

steven.zhang updated the diff for D86681: [PowerPC] duplicate the tryCandidate from base to PowerPC scheduler.
Mon, Aug 31, 8:23 PM · Restricted Project
steven.zhang requested review of D86865: [Power10] Enable the heuristic for Power10 and switch the sched model with P9 Model.
Mon, Aug 31, 3:07 AM · Restricted Project

Aug 28 2020

steven.zhang updated the diff for D86684: [Refactor] Add the SchedHeuristic for Scheduler to allow platform customizing the heuristics.

Reimplement with class instead of object for heuristics.

Aug 28 2020, 5:42 AM · Restricted Project
steven.zhang added inline comments to D86754: [PowerPC] Implement instruction clustering for stores.
Aug 28 2020, 1:07 AM · Restricted Project

Aug 27 2020

steven.zhang updated the diff for D86689: [DAGCombine] Don't delete the node if it has uses immediately.

Update test.

Aug 27 2020, 6:11 PM · Restricted Project
steven.zhang added inline comments to D86689: [DAGCombine] Don't delete the node if it has uses immediately.
Aug 27 2020, 5:54 PM · Restricted Project
steven.zhang added inline comments to D86689: [DAGCombine] Don't delete the node if it has uses immediately.
Aug 27 2020, 5:37 PM · Restricted Project
steven.zhang added a comment to D86684: [Refactor] Add the SchedHeuristic for Scheduler to allow platform customizing the heuristics.

It is hard for target to add new heuristic now, as the Reason and tryCandidate() are maintained by base class.
It is hard for target to change the priority of each heuristic(i.e. prefer cluster over stall) as it is hard code by tryCandidate.

I agree. For the AMDGPU scheduler I am very interested in latency and register pressure, and not very interested in the other heuristics. I look forward to be being able to tweak this in the target sched strategy.

Aug 27 2020, 7:36 AM · Restricted Project
steven.zhang updated the diff for D86684: [Refactor] Add the SchedHeuristic for Scheduler to allow platform customizing the heuristics.
Aug 27 2020, 7:29 AM · Restricted Project
steven.zhang updated the diff for D86684: [Refactor] Add the SchedHeuristic for Scheduler to allow platform customizing the heuristics.

Address reviewer's comments.

Aug 27 2020, 7:07 AM · Restricted Project
steven.zhang updated the diff for D86684: [Refactor] Add the SchedHeuristic for Scheduler to allow platform customizing the heuristics.

Add helper macro to make the code more tidy and remove the tryGreater as it is not needed any more.

Aug 27 2020, 4:45 AM · Restricted Project
steven.zhang updated the diff for D86689: [DAGCombine] Don't delete the node if it has uses immediately.
Aug 27 2020, 2:03 AM · Restricted Project
steven.zhang updated the summary of D86689: [DAGCombine] Don't delete the node if it has uses immediately.
Aug 27 2020, 1:45 AM · Restricted Project
steven.zhang updated the summary of D86689: [DAGCombine] Don't delete the node if it has uses immediately.
Aug 27 2020, 1:44 AM · Restricted Project
steven.zhang requested review of D86689: [DAGCombine] Don't delete the node if it has uses immediately.
Aug 27 2020, 1:43 AM · Restricted Project

Aug 26 2020

steven.zhang added a reviewer for D86684: [Refactor] Add the SchedHeuristic for Scheduler to allow platform customizing the heuristics: Restricted Project.
Aug 26 2020, 11:59 PM · Restricted Project
steven.zhang requested review of D86684: [Refactor] Add the SchedHeuristic for Scheduler to allow platform customizing the heuristics.
Aug 26 2020, 11:53 PM · Restricted Project
steven.zhang requested review of D86681: [PowerPC] duplicate the tryCandidate from base to PowerPC scheduler.
Aug 26 2020, 10:59 PM · Restricted Project
steven.zhang committed rGa60d10ac0a96: [NFC][Test] Update the test with utils/update_llc_test_checks.py (authored by steven.zhang).
[NFC][Test] Update the test with utils/update_llc_test_checks.py
Aug 26 2020, 10:03 PM
steven.zhang committed rGebf3b188c6ed: [Scheduling] Implement a new way to cluster loads/stores (authored by steven.zhang).
[Scheduling] Implement a new way to cluster loads/stores
Aug 26 2020, 5:34 AM
steven.zhang closed D85517: [Scheduling] Implement a new way to cluster loads/stores.
Aug 26 2020, 5:34 AM · Restricted Project

Aug 24 2020

steven.zhang added a comment to D85517: [Scheduling] Implement a new way to cluster loads/stores.

Gentle ping ...

Aug 24 2020, 5:04 PM · Restricted Project

Aug 23 2020

steven.zhang committed rG960cbc53ca17: [DAGCombine] Remove dead node when it is created by getNegatedExpression (authored by steven.zhang).
[DAGCombine] Remove dead node when it is created by getNegatedExpression
Aug 23 2020, 7:56 PM
steven.zhang closed D86183: [DAGCombine] Remove dead node when it is created by getNegatedExpression.
Aug 23 2020, 7:55 PM · Restricted Project
steven.zhang added inline comments to D86183: [DAGCombine] Remove dead node when it is created by getNegatedExpression.
Aug 23 2020, 4:50 PM · Restricted Project

Aug 21 2020

steven.zhang added inline comments to D81924: [PowerPC] Allow constrained FP intrinsics in mightUseCTR.
Aug 21 2020, 3:09 AM · Restricted Project
steven.zhang accepted D81924: [PowerPC] Allow constrained FP intrinsics in mightUseCTR.

LGTM now.

Aug 21 2020, 3:04 AM · Restricted Project
steven.zhang accepted D85874: [PowerPC] Add readflm/setflm intrinsics to Clang.

LGTM, thank you!

Aug 21 2020, 12:01 AM · Restricted Project, Restricted Project

Aug 20 2020

steven.zhang updated the summary of D86183: [DAGCombine] Remove dead node when it is created by getNegatedExpression.
Aug 20 2020, 9:58 PM · Restricted Project
steven.zhang retitled D86183: [DAGCombine] Remove dead node when it is created by getNegatedExpression from [NFC][DAGCombine] Remove dead node when it is created by getNegatedExpression to [DAGCombine] Remove dead node when it is created by getNegatedExpression.
Aug 20 2020, 9:58 PM · Restricted Project
steven.zhang updated the diff for D86183: [DAGCombine] Remove dead node when it is created by getNegatedExpression.

Add the reduce tests.

Aug 20 2020, 6:54 PM · Restricted Project
steven.zhang added a comment to D86183: [DAGCombine] Remove dead node when it is created by getNegatedExpression.

The original test case is too big to get something useful. I happened to grab a basic block from it. It's not small enough to be a test, but it would be much easier to analyze: https://reviews.llvm.org/P8230

Aug 20 2020, 6:48 PM · Restricted Project

Aug 19 2020

steven.zhang added a comment to D81924: [PowerPC] Allow constrained FP intrinsics in mightUseCTR.

Can you add checker for the bdnz ?

We don't think any loop containing calls is profitable to transform:

Aug 19 2020, 3:20 AM · Restricted Project

Aug 18 2020

steven.zhang added a reviewer for D86183: [DAGCombine] Remove dead node when it is created by getNegatedExpression: qiucf.
Aug 18 2020, 6:22 PM · Restricted Project
steven.zhang added reviewers for D86183: [DAGCombine] Remove dead node when it is created by getNegatedExpression: richard-uhler, hans.
Aug 18 2020, 5:49 PM · Restricted Project
steven.zhang requested review of D86183: [DAGCombine] Remove dead node when it is created by getNegatedExpression.
Aug 18 2020, 5:48 PM · Restricted Project
steven.zhang added inline comments to D85517: [Scheduling] Implement a new way to cluster loads/stores.
Aug 18 2020, 3:15 AM · Restricted Project
steven.zhang added inline comments to D85517: [Scheduling] Implement a new way to cluster loads/stores.
Aug 18 2020, 3:13 AM · Restricted Project
steven.zhang updated the diff for D85517: [Scheduling] Implement a new way to cluster loads/stores.

Rebase the patch with pre-commit arch64 test and see more cluster pairs on one new AMDGPU test max.i16.ll

Aug 18 2020, 3:05 AM · Restricted Project
steven.zhang committed rG9b32ef9413be: [Test][NFC] Add a new test to verify if scheduler can cluster two ld/st (authored by steven.zhang).
[Test][NFC] Add a new test to verify if scheduler can cluster two ld/st
Aug 18 2020, 2:42 AM

Aug 17 2020

steven.zhang added a comment to D85517: [Scheduling] Implement a new way to cluster loads/stores.

Gentle ping ...

Aug 17 2020, 10:07 PM · Restricted Project

Aug 10 2020

steven.zhang committed rG61ede38da0c4: [CodeGen] Expand float operand for STRICT_FSETCC/STRICT_FSETCCS (authored by steven.zhang).
[CodeGen] Expand float operand for STRICT_FSETCC/STRICT_FSETCCS
Aug 10 2020, 10:55 PM
steven.zhang closed D81906: [CodeGen] Expand float operand for STRICT_FSETCC/STRICT_FSETCCS.
Aug 10 2020, 10:55 PM · Restricted Project
steven.zhang added inline comments to D85517: [Scheduling] Implement a new way to cluster loads/stores.
Aug 10 2020, 8:45 PM · Restricted Project
steven.zhang updated the diff for D85517: [Scheduling] Implement a new way to cluster loads/stores.

Address comments.

Aug 10 2020, 8:36 PM · Restricted Project
steven.zhang added a comment to D74524: [Scheduling] Improve memory ops cluster preparation.

I have proposed a new algorithm to do the memory cluster in D85517. Would you please verify if it can solve your problem ...

Aug 10 2020, 3:17 AM · Restricted Project
steven.zhang updated the diff for D85517: [Scheduling] Implement a new way to cluster loads/stores.

Fix typo ...

Aug 10 2020, 3:08 AM · Restricted Project
steven.zhang updated the diff for D85517: [Scheduling] Implement a new way to cluster loads/stores.

Fix typo.

Aug 10 2020, 2:49 AM · Restricted Project

Aug 9 2020

steven.zhang added a comment to D85517: [Scheduling] Implement a new way to cluster loads/stores.

Thank you for the review. I have added all the necessary comments in the test change to explain what happens inside. All works as expected from my view.

Aug 9 2020, 10:19 PM · Restricted Project
steven.zhang accepted D84914: [PowerPC] Add intrinsic to read or set FPSCR register.

LGTM. But even we mark these two bif as boundary, there is still possible that, the pass after ISEL might move the MI across them. Some follow up work is needed to confirm this.

Aug 9 2020, 5:22 PM · Restricted Project

Aug 7 2020

steven.zhang updated the summary of D85517: [Scheduling] Implement a new way to cluster loads/stores.
Aug 7 2020, 5:46 AM · Restricted Project
steven.zhang updated the summary of D85517: [Scheduling] Implement a new way to cluster loads/stores.
Aug 7 2020, 5:45 AM · Restricted Project
steven.zhang updated the summary of D85517: [Scheduling] Implement a new way to cluster loads/stores.
Aug 7 2020, 5:00 AM · Restricted Project