Page MenuHomePhabricator

Carrot (Guozhi Wei)
User

Projects

User does not belong to any projects.

User Details

User Since
Jul 15 2015, 3:50 PM (236 w, 2 d)

Recent Activity

Today

Carrot created D73387: [MBP] Partial tail duplication into hot predecessors.
Fri, Jan 24, 3:59 PM · Restricted Project

Thu, Jan 9

Carrot added a comment to D68414: [SROA] Enhance AggLoadStoreRewriter to rewrite integer load/store if it covers multi fields in original aggregate.

Could anybody help to review this last decade's patch?
Thanks a lot!

Thu, Jan 9, 11:48 AM · Restricted Project

Mon, Dec 30

Carrot added a reviewer for D68414: [SROA] Enhance AggLoadStoreRewriter to rewrite integer load/store if it covers multi fields in original aggregate: cherry.
Mon, Dec 30, 3:11 PM · Restricted Project

Dec 20 2019

Carrot added a reviewer for D68414: [SROA] Enhance AggLoadStoreRewriter to rewrite integer load/store if it covers multi fields in original aggregate: reames.
Dec 20 2019, 4:07 PM · Restricted Project

Dec 11 2019

Carrot added inline comments to D70030: [MachineBlockPlacement] Fix UnscheduledPredecessors counter to reflect tail duplication..
Dec 11 2019, 8:46 AM · Restricted Project

Dec 10 2019

Carrot added inline comments to D70030: [MachineBlockPlacement] Fix UnscheduledPredecessors counter to reflect tail duplication..
Dec 10 2019, 8:37 AM · Restricted Project

Dec 9 2019

Carrot added inline comments to D70030: [MachineBlockPlacement] Fix UnscheduledPredecessors counter to reflect tail duplication..
Dec 9 2019, 4:07 PM · Restricted Project

Dec 6 2019

Carrot committed rG72942459d070: [MBP] Avoid tail duplication if it can't bring benefit (authored by Carrot).
[MBP] Avoid tail duplication if it can't bring benefit
Dec 6 2019, 10:04 AM
Carrot closed D64376: [MBP] Avoid tail duplication if it can't bring benefit.
Dec 6 2019, 10:03 AM · Restricted Project

Dec 5 2019

Carrot updated the diff for D64376: [MBP] Avoid tail duplication if it can't bring benefit.
Dec 5 2019, 8:55 AM · Restricted Project

Dec 4 2019

Carrot added a comment to D70030: [MachineBlockPlacement] Fix UnscheduledPredecessors counter to reflect tail duplication..

Hey @Carrot , really appreciated your time on it.

For the test case provided, I am pretty sure inner loop and outer loop are in different Loop Chain.

This is correct. I already mentioned it in Nov 15. Thanks for the test case.

Dec 4 2019, 9:41 AM · Restricted Project

Dec 3 2019

Carrot added inline comments to D70030: [MachineBlockPlacement] Fix UnscheduledPredecessors counter to reflect tail duplication..
Dec 3 2019, 8:51 AM · Restricted Project

Dec 2 2019

Carrot added inline comments to D70030: [MachineBlockPlacement] Fix UnscheduledPredecessors counter to reflect tail duplication..
Dec 2 2019, 8:40 PM · Restricted Project

Nov 15 2019

Carrot added a comment to D68414: [SROA] Enhance AggLoadStoreRewriter to rewrite integer load/store if it covers multi fields in original aggregate.

ping

Nov 15 2019, 2:49 PM · Restricted Project
Carrot added inline comments to D70030: [MachineBlockPlacement] Fix UnscheduledPredecessors counter to reflect tail duplication..
Nov 15 2019, 8:54 AM · Restricted Project

Nov 14 2019

Carrot added a comment to D70030: [MachineBlockPlacement] Fix UnscheduledPredecessors counter to reflect tail duplication..

The original code doesn't correctly handle the case that the duplicated BB comes from a chain contains multiple BBs. So your patch looks reasonable to me. Could you enhance your comment to emphasize this case. It's better to make the comments of following loop more clearer. The current comments looks similar and confusing.

Nov 14 2019, 11:01 AM · Restricted Project

Nov 8 2019

Carrot added a comment to D70030: [MachineBlockPlacement] Fix UnscheduledPredecessors counter to reflect tail duplication..

The explanation looks helpful for understanding the problem.
thanks

Nov 8 2019, 4:15 PM · Restricted Project
Carrot added a comment to D70030: [MachineBlockPlacement] Fix UnscheduledPredecessors counter to reflect tail duplication..

More interesting problem is why fillWorkLists is called with a removed BB? From the code around of callers of fillWorkLists, we can see the removed BB is still in MachineFunction or MachineLoop data structure, we should also delete removed BB from there.

Nov 8 2019, 4:14 PM · Restricted Project
Carrot updated subscribers of D70030: [MachineBlockPlacement] Fix UnscheduledPredecessors counter to reflect tail duplication..
Nov 8 2019, 3:56 PM · Restricted Project

Nov 5 2019

Carrot added a reviewer for D68414: [SROA] Enhance AggLoadStoreRewriter to rewrite integer load/store if it covers multi fields in original aggregate: hfinkel.
Nov 5 2019, 9:33 AM · Restricted Project

Nov 4 2019

Carrot added inline comments to D64376: [MBP] Avoid tail duplication if it can't bring benefit.
Nov 4 2019, 4:06 PM · Restricted Project

Nov 1 2019

Carrot committed rGcecc0d27ad58: [NewPM] Add an SROA pass after loop unroll (authored by Carrot).
[NewPM] Add an SROA pass after loop unroll
Nov 1 2019, 3:02 PM
Carrot closed D68593: [NewPM] Add an SROA pass after loop unroll.
Nov 1 2019, 3:02 PM · Restricted Project

Oct 30 2019

Carrot updated the diff for D68593: [NewPM] Add an SROA pass after loop unroll.

Add a new test case.

Oct 30 2019, 3:17 PM · Restricted Project

Oct 29 2019

Carrot added a comment to D68593: [NewPM] Add an SROA pass after loop unroll.

I tried to build spec2006int, the time changes from

Oct 29 2019, 12:00 PM · Restricted Project
Carrot added a reviewer for D68593: [NewPM] Add an SROA pass after loop unroll: tejohnson.
Oct 29 2019, 10:07 AM · Restricted Project
Carrot added a reviewer for D68414: [SROA] Enhance AggLoadStoreRewriter to rewrite integer load/store if it covers multi fields in original aggregate: t.p.northover.
Oct 29 2019, 9:58 AM · Restricted Project

Oct 24 2019

Carrot added a comment to D68414: [SROA] Enhance AggLoadStoreRewriter to rewrite integer load/store if it covers multi fields in original aggregate.

ping^2

Oct 24 2019, 2:26 PM · Restricted Project
Carrot added a comment to D68593: [NewPM] Add an SROA pass after loop unroll.

ping

Oct 24 2019, 2:26 PM · Restricted Project

Oct 22 2019

Carrot added a comment to D60897: [SLP] Look-ahead operand reordering heuristic..

@vporpo, it's verified that the eigen test doesn't regress now, actually the inner loop is the same as before.
Thanks

Oct 22 2019, 3:08 PM · Restricted Project

Oct 18 2019

Carrot added a comment to D60897: [SLP] Look-ahead operand reordering heuristic..

@RKSimon, my command line options are:

Oct 18 2019, 4:05 PM · Restricted Project

Oct 17 2019

Carrot added a comment to D60897: [SLP] Look-ahead operand reordering heuristic..

Following is a simplified test case that shows the performance regression of eigen. The number of instructions in inner loop is increased from 85 to 93. Hope it can be helpful.

Oct 17 2019, 4:02 PM · Restricted Project

Oct 11 2019

Carrot added a comment to D68414: [SROA] Enhance AggLoadStoreRewriter to rewrite integer load/store if it covers multi fields in original aggregate.

ping

Oct 11 2019, 1:05 PM · Restricted Project

Oct 8 2019

Carrot added reviewers for D68414: [SROA] Enhance AggLoadStoreRewriter to rewrite integer load/store if it covers multi fields in original aggregate: chandlerc, arsenm.
Oct 8 2019, 3:58 PM · Restricted Project

Oct 7 2019

Carrot created D68593: [NewPM] Add an SROA pass after loop unroll.
Oct 7 2019, 2:14 PM · Restricted Project

Oct 3 2019

Carrot created D68414: [SROA] Enhance AggLoadStoreRewriter to rewrite integer load/store if it covers multi fields in original aggregate.
Oct 3 2019, 12:07 PM · Restricted Project

Sep 10 2019

Carrot committed rGb329e0728b3e: [BPI] Adjust the probability for floating point unordered comparison (authored by Carrot).
[BPI] Adjust the probability for floating point unordered comparison
Sep 10 2019, 10:25 AM
Carrot committed rL371541: [BPI] Adjust the probability for floating point unordered comparison.
[BPI] Adjust the probability for floating point unordered comparison
Sep 10 2019, 10:25 AM
Carrot closed D65303: [BPI] Adjust the probability for floating point unordered comparison.
Sep 10 2019, 10:25 AM · Restricted Project

Sep 9 2019

Carrot added a comment to D65303: [BPI] Adjust the probability for floating point unordered comparison.

spec 2006 int result is 39.2 vs 39.3, so no change.

Sep 9 2019, 2:44 PM · Restricted Project

Sep 6 2019

Carrot added a comment to D65303: [BPI] Adjust the probability for floating point unordered comparison.

some benchmark numbers?

Sep 6 2019, 2:28 PM · Restricted Project
Carrot added a comment to D65303: [BPI] Adjust the probability for floating point unordered comparison.

ping

Sep 6 2019, 11:03 AM · Restricted Project

Aug 22 2019

Carrot added a comment to D43256: [MBP] Move a latch block with conditional exit and multi predecessors to top of loop.

@hans this patch should be reverted from 9.0 I think so rc3 is “fixed”.

I'd rather see the fix land on trunk first (reverting on the branch is also not trivial, there are merge conflicts in several test files). From the discussion at http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20190819/686087.html, it should be ready to go in again.

Aug 22 2019, 2:34 PM · Restricted Project
Carrot committed rG51f48295cbe8: [MBP] Disable aggressive loop rotate in plain mode (authored by Carrot).
[MBP] Disable aggressive loop rotate in plain mode
Aug 22 2019, 9:23 AM
Carrot committed rL369664: [MBP] Disable aggressive loop rotate in plain mode.
[MBP] Disable aggressive loop rotate in plain mode
Aug 22 2019, 9:22 AM

Aug 16 2019

Carrot committed rGe03f6a163176: [CodeGen/Analysis] Intrinsic llvm.assume should not block tail call optimization (authored by Carrot).
[CodeGen/Analysis] Intrinsic llvm.assume should not block tail call optimization
Aug 16 2019, 9:26 AM
Carrot committed rL369125: [CodeGen/Analysis] Intrinsic llvm.assume should not block tail call optimization.
[CodeGen/Analysis] Intrinsic llvm.assume should not block tail call optimization
Aug 16 2019, 9:26 AM
Carrot closed D66096: [CodeGen/Analysis] Intrinsic llvm.assume should not block tail call optimization.
Aug 16 2019, 9:26 AM · Restricted Project

Aug 12 2019

Carrot updated the diff for D66096: [CodeGen/Analysis] Intrinsic llvm.assume should not block tail call optimization.

Will commit this version.

Aug 12 2019, 3:50 PM · Restricted Project
Carrot created D66096: [CodeGen/Analysis] Intrinsic llvm.assume should not block tail call optimization.
Aug 12 2019, 10:52 AM · Restricted Project

Aug 9 2019

Carrot added inline comments to D65303: [BPI] Adjust the probability for floating point unordered comparison.
Aug 9 2019, 9:40 AM · Restricted Project
Carrot updated the diff for D65303: [BPI] Adjust the probability for floating point unordered comparison.
Aug 9 2019, 9:40 AM · Restricted Project

Aug 8 2019

Carrot added a comment to D43256: [MBP] Move a latch block with conditional exit and multi predecessors to top of loop.

@hjagasia, thank you for the verification.

Aug 8 2019, 2:04 PM · Restricted Project
Carrot committed rG80347c3acc08: [MBP] Disable aggressive loop rotate in plain mode (authored by Carrot).
[MBP] Disable aggressive loop rotate in plain mode
Aug 8 2019, 1:26 PM
Carrot committed rL368339: [MBP] Disable aggressive loop rotate in plain mode.
[MBP] Disable aggressive loop rotate in plain mode
Aug 8 2019, 1:26 PM
Carrot closed D65673: [MBP] Disable aggressive loop rotate in plain mode.
Aug 8 2019, 1:26 PM · Restricted Project
Carrot updated the diff for D65673: [MBP] Disable aggressive loop rotate in plain mode.
Aug 8 2019, 10:19 AM · Restricted Project

Aug 7 2019

Carrot updated the diff for D65673: [MBP] Disable aggressive loop rotate in plain mode.
Aug 7 2019, 2:59 PM · Restricted Project

Aug 6 2019

Carrot added a comment to D65303: [BPI] Adjust the probability for floating point unordered comparison.

ping

Aug 6 2019, 3:55 PM · Restricted Project

Aug 2 2019

Carrot added a comment to D43256: [MBP] Move a latch block with conditional exit and multi predecessors to top of loop.

Patch https://reviews.llvm.org/D65673 for restoring the original layout in plain mode.

Aug 2 2019, 1:29 PM · Restricted Project
Carrot created D65673: [MBP] Disable aggressive loop rotate in plain mode.
Aug 2 2019, 1:27 PM · Restricted Project

Aug 1 2019

Carrot added a comment to D43256: [MBP] Move a latch block with conditional exit and multi predecessors to top of loop.

I would suggest putting the optimization under an option and disable it by default for now. Once all problems are resolved we can change the default. What do you think?

After restore to original behavior in plain mode, you can use -force-precise-rotation-cost=true to use this more aggressive loop layout.

Is there a patch in progress for restoring to the original behaviour in non-profile mode? It would be nice if we could get this resolved soon.

Aug 1 2019, 4:00 PM · Restricted Project

Jul 31 2019

Carrot added a comment to D43256: [MBP] Move a latch block with conditional exit and multi predecessors to top of loop.

I would suggest putting the optimization under an option and disable it by default for now. Once all problems are resolved we can change the default. What do you think?

Jul 31 2019, 8:27 AM · Restricted Project

Jul 30 2019

Carrot added a comment to D43256: [MBP] Move a latch block with conditional exit and multi predecessors to top of loop.

Do you have any benchmark numbers to show that this is generally profitable? From our downstream testing, it is not clear that this change is beneficial.

We got performance improvement in our internal search benchmark.

How does this transformation impact the benchmark when not using profile data?

In plain mode we also got performance improvement, the speedup is a little smaller than FDO Mode.

I have a general question/comment. By now it's more or less evident that benefit of optimization heavily depends on correctness of profile information. That means in general case there is no way to reason about its effectiveness. Thus I believe it should be turned off if there is no profile.

Jul 30 2019, 8:30 AM · Restricted Project

Jul 26 2019

Carrot added a comment to D43256: [MBP] Move a latch block with conditional exit and multi predecessors to top of loop.

Do you have any benchmark numbers to show that this is generally profitable? From our downstream testing, it is not clear that this change is beneficial.

We got performance improvement in our internal search benchmark.

How does this transformation impact the benchmark when not using profile data?

Benchmark is running, will report the result once it is finished.

Jul 26 2019, 3:50 PM · Restricted Project
Carrot added a comment to D65303: [BPI] Adjust the probability for floating point unordered comparison.

isnan() is lowered to fcmp uno, in this case the taken probability may be higher, but still much smaller than ordered result, and the usage of isnan() is already very rare, most of uno comparisons are generated from different math library functions.
On the other side I guess most of the taken uno comparisons in a correct program comes from explicitly isnan() call.

Jul 26 2019, 1:55 PM · Restricted Project
Carrot added inline comments to D65303: [BPI] Adjust the probability for floating point unordered comparison.
Jul 26 2019, 8:28 AM · Restricted Project
Carrot updated the diff for D65303: [BPI] Adjust the probability for floating point unordered comparison.

Comment change.

Jul 26 2019, 8:28 AM · Restricted Project

Jul 25 2019

Carrot created D65303: [BPI] Adjust the probability for floating point unordered comparison.
Jul 25 2019, 3:49 PM · Restricted Project
Carrot added a comment to D43256: [MBP] Move a latch block with conditional exit and multi predecessors to top of loop.

@ebrevnov, it's better to provide a reproducer. Otherwise I can't analyze the problem that impacts your code. Four is not a big number.

Jul 25 2019, 3:26 PM · Restricted Project

Jul 24 2019

Carrot added a comment to D43256: [MBP] Move a latch block with conditional exit and multi predecessors to top of loop.

ebrevnov, with following patch the test case can be layout correctly. Can you try it with your actual code?

Jul 24 2019, 2:58 PM · Restricted Project

Jul 23 2019

Carrot added a comment to D43256: [MBP] Move a latch block with conditional exit and multi predecessors to top of loop.

Thanks for the test case, I can reproduce it now.

Jul 23 2019, 10:49 AM · Restricted Project

Jul 22 2019

Carrot added a comment to D43256: [MBP] Move a latch block with conditional exit and multi predecessors to top of loop.

Evgeniy, could you try to build your code with FDO? The layout code is based on profile information, if that is not available, the static estimated profile information is used. Since the loaded values are not NaN, there should be no branch from loop header to latch, but the estimated profile gives it a non trivial value, so the latch is moved before header, and one taken branch is reduced in the NaN path. I think the static profile estimation can be enhanced to treat a floating point number as not a NaN, or as a NaN only with a very small possibility.

Jul 22 2019, 10:51 AM · Restricted Project

Jul 18 2019

Carrot added a comment to D64376: [MBP] Avoid tail duplication if it can't bring benefit.

What about CTMark? SPEC?

Jul 18 2019, 10:40 AM · Restricted Project

Jul 15 2019

Carrot added inline comments to D64376: [MBP] Avoid tail duplication if it can't bring benefit.
Jul 15 2019, 9:47 AM · Restricted Project
Carrot updated the diff for D64376: [MBP] Avoid tail duplication if it can't bring benefit.

Add comments.

Jul 15 2019, 9:46 AM · Restricted Project

Jul 11 2019

Carrot updated the diff for D64376: [MBP] Avoid tail duplication if it can't bring benefit.

Add a simple CFG example to show the inefficient tail duplication.

Jul 11 2019, 4:02 PM · Restricted Project

Jul 8 2019

Carrot created D64376: [MBP] Avoid tail duplication if it can't bring benefit.
Jul 8 2019, 4:02 PM · Restricted Project

Jun 19 2019

Carrot added a comment to D43256: [MBP] Move a latch block with conditional exit and multi predecessors to top of loop.

Do you have any benchmark numbers to show that this is generally profitable? From our downstream testing, it is not clear that this change is beneficial.

Jun 19 2019, 12:03 PM · Restricted Project

Jun 14 2019

Carrot committed rGd2210af3322d: [MBP] Move a latch block with conditional exit and multi predecessors to top of… (authored by Carrot).
[MBP] Move a latch block with conditional exit and multi predecessors to top of…
Jun 14 2019, 4:06 PM
Carrot committed rL363471: [MBP] Move a latch block with conditional exit and multi predecessors to top of….
[MBP] Move a latch block with conditional exit and multi predecessors to top of…
Jun 14 2019, 4:06 PM
Carrot closed D43256: [MBP] Move a latch block with conditional exit and multi predecessors to top of loop.
Jun 14 2019, 4:05 PM · Restricted Project

Jun 7 2019

Carrot added a comment to D43256: [MBP] Move a latch block with conditional exit and multi predecessors to top of loop.

Some analysis of the test case changes.

Jun 7 2019, 3:31 PM · Restricted Project

Jun 4 2019

Carrot added inline comments to D43256: [MBP] Move a latch block with conditional exit and multi predecessors to top of loop.
Jun 4 2019, 1:59 PM · Restricted Project
Carrot updated the diff for D43256: [MBP] Move a latch block with conditional exit and multi predecessors to top of loop.
Jun 4 2019, 1:54 PM · Restricted Project

May 31 2019

Carrot committed rGc3a24e93d527: [PPC] Correctly adjust branch probability in PPCReduceCRLogicals (authored by Carrot).
[PPC] Correctly adjust branch probability in PPCReduceCRLogicals
May 31 2019, 9:10 AM
Carrot committed rL362237: [PPC] Correctly adjust branch probability in PPCReduceCRLogicals.
[PPC] Correctly adjust branch probability in PPCReduceCRLogicals
May 31 2019, 9:08 AM
Carrot closed D62430: [PPC] Correctly adjust branch probability in PPCReduceCRLogicals.
May 31 2019, 9:08 AM · Restricted Project

May 30 2019

Carrot updated the diff for D43256: [MBP] Move a latch block with conditional exit and multi predecessors to top of loop.
May 30 2019, 2:05 PM · Restricted Project
Carrot added inline comments to D62430: [PPC] Correctly adjust branch probability in PPCReduceCRLogicals.
May 30 2019, 11:41 AM · Restricted Project
Carrot added a comment to D62430: [PPC] Correctly adjust branch probability in PPCReduceCRLogicals.

Hi Carrot,
I agree with this change, conceptually. Have you done any performance measurements to see what the impact is?

May 30 2019, 11:34 AM · Restricted Project

May 29 2019

Carrot updated the diff for D62430: [PPC] Correctly adjust branch probability in PPCReduceCRLogicals.
May 29 2019, 10:18 AM · Restricted Project

May 28 2019

Carrot updated the diff for D62430: [PPC] Correctly adjust branch probability in PPCReduceCRLogicals.

Changed the edge frequency distribution, so I can avoid floating point square root computation.

May 28 2019, 10:58 AM · Restricted Project
Carrot added inline comments to D62430: [PPC] Correctly adjust branch probability in PPCReduceCRLogicals.
May 28 2019, 8:20 AM · Restricted Project

May 24 2019

Carrot created D62430: [PPC] Correctly adjust branch probability in PPCReduceCRLogicals.
May 24 2019, 3:20 PM · Restricted Project

May 23 2019

Carrot updated the diff for D43256: [MBP] Move a latch block with conditional exit and multi predecessors to top of loop.

Update the patch to the current code base, also make two improvements:

May 23 2019, 2:51 PM · Restricted Project

May 21 2019

Carrot added a comment to D62079: [MBP] Rotate should bring more fallthrough.

Precisely compute the fallthrough frequency is very helpful in layout of loop header and exit BB. It is included in my next patch.

May 21 2019, 8:28 AM · Restricted Project

May 17 2019

Carrot created D62079: [MBP] Rotate should bring more fallthrough.
May 17 2019, 1:54 PM · Restricted Project

Apr 17 2019

Carrot added a comment to D59535: [SelectionDAG] Compute known bits of CopyFromReg.

Just FYI.

Apr 17 2019, 11:09 AM · Restricted Project

Apr 5 2019

Carrot committed rG36fc9c31072f: [LCG] Add aliased functions as LCG roots (authored by Carrot).
[LCG] Add aliased functions as LCG roots
Apr 5 2019, 11:51 AM