Page MenuHomePhabricator

Whitney (Whitney Tsang)
User

Projects

User does not belong to any projects.

User Details

User Since
Jan 29 2019, 6:22 PM (37 w, 5 d)

Recent Activity

Sun, Oct 6

Whitney committed rGdcb75bf843ea: [LOOPGUARD] Remove asserts in getLoopGuardBranch Summary: The assertion in… (authored by Whitney).
[LOOPGUARD] Remove asserts in getLoopGuardBranch Summary: The assertion in…
Sun, Oct 6, 9:41 AM

Thu, Sep 26

Whitney committed rG9c5fbcf9206d: [LOOPGUARD] Disable loop with multiple loop exiting blocks. Summary: As… (authored by Whitney).
[LOOPGUARD] Disable loop with multiple loop exiting blocks. Summary: As…
Thu, Sep 26, 1:22 PM
Whitney added inline comments to D66529: [LOOPGUARD] Disable loop with multiple loop exiting blocks..
Thu, Sep 26, 12:28 PM · Restricted Project

Wed, Sep 25

Whitney added a comment to D66529: [LOOPGUARD] Disable loop with multiple loop exiting blocks..

Any reason not to use Loop::getExitBlock()? The behavior is different when there are are multiple exiting edges to the same block, but does it matter? Maybe we should change Loop::getExitBlock() to only return nullptr if two different exit blocks exist, as e.g. getLoopPredecessor() already does.

Wed, Sep 25, 3:32 PM · Restricted Project
Whitney updated the diff for D66529: [LOOPGUARD] Disable loop with multiple loop exiting blocks..
Wed, Sep 25, 6:45 AM · Restricted Project

Tue, Sep 24

Whitney added a comment to D66084: Remove asserts in getLoopGuardBranch.

@DTharun I can help you to commit this patch after @fhahn approves it.

Tue, Sep 24, 2:54 PM · Restricted Project

Sep 20 2019

Whitney accepted D66084: Remove asserts in getLoopGuardBranch.
Sep 20 2019, 7:39 AM · Restricted Project

Sep 19 2019

Whitney added inline comments to D66084: Remove asserts in getLoopGuardBranch.
Sep 19 2019, 6:35 AM · Restricted Project

Sep 18 2019

Whitney added inline comments to D66084: Remove asserts in getLoopGuardBranch.
Sep 18 2019, 9:02 AM · Restricted Project

Sep 12 2019

Whitney added a comment to D66084: Remove asserts in getLoopGuardBranch.

or you can add EXPECT_EQ(L->getLoopGuardBranch(), nullptr); to existing tests, e.g. LoopWithSingleLatch....in that test case, you can see that the loop is not rotated, i.e. the latch for.inc is not the exiting block, the exiting block is for.cond.

Sep 12 2019, 8:19 AM · Restricted Project

Sep 11 2019

Whitney requested changes to D66084: Remove asserts in getLoopGuardBranch.
Sep 11 2019, 2:47 PM · Restricted Project
Whitney committed rG1ccba7c1a106: LLVM: Optimization Pass: Remove conflicting attribute, if any, before adding… (authored by Whitney).
LLVM: Optimization Pass: Remove conflicting attribute, if any, before adding…
Sep 11 2019, 7:27 AM

Sep 6 2019

Whitney added a comment to D66529: [LOOPGUARD] Disable loop with multiple loop exiting blocks..

ping

Sep 6 2019, 6:41 AM · Restricted Project

Aug 30 2019

Whitney committed rGb8a35649754c: [INSTRUCTIONS] Add support of const for getLoadStorePointerOperand() and… (authored by Whitney).
[INSTRUCTIONS] Add support of const for getLoadStorePointerOperand() and…
Aug 30 2019, 9:46 AM

Aug 29 2019

Whitney added a comment to D66595: [INSTRUCTIONS] Add support of const for getLoadStorePointerOperand() and getLoadStorePointerOperand()..

ping

Aug 29 2019, 7:34 AM · Restricted Project

Aug 28 2019

Whitney added a comment to D66529: [LOOPGUARD] Disable loop with multiple loop exiting blocks..

ping

Aug 28 2019, 6:30 AM · Restricted Project

Aug 23 2019

Whitney added a comment to D66084: Remove asserts in getLoopGuardBranch.

@DTharun Please add EXPECT_EQ(L->getLoopGuardBranch(), nullptr); to all test cases which has non simplified loops or non rotated loops in LoopInfoTest.cpp.

Aug 23 2019, 8:43 AM · Restricted Project

Aug 22 2019

Whitney created D66595: [INSTRUCTIONS] Add support of const for getLoadStorePointerOperand() and getLoadStorePointerOperand()..
Aug 22 2019, 7:51 AM · Restricted Project

Aug 21 2019

Whitney updated the diff for D66529: [LOOPGUARD] Disable loop with multiple loop exiting blocks..

Add a test case with multiple loop exiting blocks.

Aug 21 2019, 10:34 AM · Restricted Project
Whitney added inline comments to D63676: Disable hosting MI to hotter basic blocks.
Aug 21 2019, 6:27 AM · Restricted Project
Whitney created D66529: [LOOPGUARD] Disable loop with multiple loop exiting blocks..
Aug 21 2019, 6:27 AM · Restricted Project
Whitney accepted D66084: Remove asserts in getLoopGuardBranch.

LGTM. If there are further comments from @fhahn, I will help @DTharun to commit it on Friday.

Aug 21 2019, 6:06 AM · Restricted Project

Aug 13 2019

Whitney added inline comments to D65464: [LoopFusion] Add ability to fuse guarded loops.
Aug 13 2019, 9:58 AM · Restricted Project
Whitney added a comment to D66084: Remove asserts in getLoopGuardBranch.

@fhahn Most of the test cases in LoopInfoTest.cpp has checks for getLoopGuardBranch(). Are you talking about LoopUniqueExitBlocks and LoopNonLatchUniqueExitBlocks?

Aug 13 2019, 7:16 AM · Restricted Project
Whitney requested changes to D66084: Remove asserts in getLoopGuardBranch.
Aug 13 2019, 6:30 AM · Restricted Project
Whitney added a comment to D66084: Remove asserts in getLoopGuardBranch.

actually the check for preheader and latch should change back to an assert, as we already checked that the loop is in simplify form, so there must exists a preheader and latch.

Aug 13 2019, 6:30 AM · Restricted Project
Whitney accepted D66084: Remove asserts in getLoopGuardBranch.
Aug 13 2019, 6:27 AM · Restricted Project

Aug 12 2019

Whitney committed rGa7165c088e11: Title: Fix build warning for operator<< when using GCC 7. Authored By: etiotto… (authored by Whitney).
Title: Fix build warning for operator<< when using GCC 7. Authored By: etiotto…
Aug 12 2019, 3:21 PM
Whitney added inline comments to D66084: Remove asserts in getLoopGuardBranch.
Aug 12 2019, 11:31 AM · Restricted Project

Aug 9 2019

Whitney updated the diff for D64819: [UpdateTestChecks][Bug41532] Add handle of basic block names..

@nikic As suggested, I added a flag to decide if to generate basic block names as variables.

Aug 9 2019, 12:48 PM · Restricted Project
Whitney committed rG3caf9af6c6fc: Title: Improve Loop Cache Analysis LIT tests. Summary: Make LIT tests… (authored by Whitney).
Title: Improve Loop Cache Analysis LIT tests. Summary: Make LIT tests…
Aug 9 2019, 9:19 AM
Whitney committed rGdd3b6498b016: Title: Loop Cache Analysis Summary: Implement a new analysis to estimate the… (authored by Whitney).
Title: Loop Cache Analysis Summary: Implement a new analysis to estimate the…
Aug 9 2019, 6:57 AM

Jul 31 2019

Whitney added inline comments to D65464: [LoopFusion] Add ability to fuse guarded loops.
Jul 31 2019, 3:00 PM · Restricted Project

Jul 30 2019

Whitney added inline comments to D65464: [LoopFusion] Add ability to fuse guarded loops.
Jul 30 2019, 12:38 PM · Restricted Project
Whitney added inline comments to D65464: [LoopFusion] Add ability to fuse guarded loops.
Jul 30 2019, 12:08 PM · Restricted Project

Jul 25 2019

Whitney committed rG8b288c7d11cc: [DDG] DirectedGraph as a base class for various dependence graphs such as DDG… (authored by Whitney).
[DDG] DirectedGraph as a base class for various dependence graphs such as DDG…
Jul 25 2019, 11:24 AM
Whitney committed rG8ee361ebe5eb: [LOOPINFO] Introduce the loop guard API. Summary: This is the first patch for… (authored by Whitney).
[LOOPINFO] Introduce the loop guard API. Summary: This is the first patch for…
Jul 25 2019, 9:14 AM

Jul 23 2019

Whitney added a comment to D64819: [UpdateTestChecks][Bug41532] Add handle of basic block names..

@nikic Thanks for the suggestion. I personally ran into the issue that reassociate-after-unroll.ll failed due to the different in basic block name, after modifying the O2 pass pipeline. And modifying the script, was the suggested way to solve the failure. I am willing to put this change behind a flag if that's preferred, but it maybe hard for user to know when to use the flag, or even know the existence of it.

Jul 23 2019, 4:12 AM · Restricted Project
Whitney added a comment to D64819: [UpdateTestChecks][Bug41532] Add handle of basic block names..

It depends on how other reviewers think about it...

Any thoughts? I prefer to keep the script clean and simple, although the one time change to the LIT tests will not be minimal.

Jul 23 2019, 3:56 AM · Restricted Project
Whitney updated the diff for D63885: [LOOPINFO] Introduce the loop guard API. .
Jul 23 2019, 3:52 AM · Restricted Project

Jul 22 2019

Whitney added inline comments to D63885: [LOOPINFO] Introduce the loop guard API. .
Jul 22 2019, 1:55 PM · Restricted Project
Whitney updated the diff for D63885: [LOOPINFO] Introduce the loop guard API. .

Next step after this lands is modifying Loop Fusion to use the loop guard. @kbarton

Jul 22 2019, 1:55 PM · Restricted Project
Whitney updated the diff for D64819: [UpdateTestChecks][Bug41532] Add handle of basic block names..

I cannot think of any clean way to identify labels, there are three ways that label can be:

  1. at the start of a basic block.
  2. follow by "label".
  3. incoming blocks in phinode.
Jul 22 2019, 8:13 AM · Restricted Project
Whitney added inline comments to D64819: [UpdateTestChecks][Bug41532] Add handle of basic block names..
Jul 22 2019, 7:53 AM · Restricted Project

Jul 20 2019

Whitney updated the diff for D63885: [LOOPINFO] Introduce the loop guard API. .

Changed this patch to only work on the simplest form.

Jul 20 2019, 6:08 AM · Restricted Project

Jul 17 2019

Whitney updated the diff for D64819: [UpdateTestChecks][Bug41532] Add handle of basic block names..
Jul 17 2019, 6:08 PM · Restricted Project
Whitney added inline comments to D63885: [LOOPINFO] Introduce the loop guard API. .
Jul 17 2019, 3:12 PM · Restricted Project
Whitney updated the diff for D63885: [LOOPINFO] Introduce the loop guard API. .

@reames @Meinersbur As discussed in the loop group meeting, I changed PDT to optionally require. The functions will work for the more general form if PDT is given.

Jul 17 2019, 11:49 AM · Restricted Project

Jul 16 2019

Whitney added inline comments to D64819: [UpdateTestChecks][Bug41532] Add handle of basic block names..
Jul 16 2019, 2:37 PM · Restricted Project
Whitney added inline comments to D64819: [UpdateTestChecks][Bug41532] Add handle of basic block names..
Jul 16 2019, 2:12 PM · Restricted Project
Whitney created D64819: [UpdateTestChecks][Bug41532] Add handle of basic block names..
Jul 16 2019, 1:48 PM · Restricted Project

Jul 15 2019

Whitney updated the diff for D63885: [LOOPINFO] Introduce the loop guard API. .

Removed the use of Dominator Tree, and removed isLoopGuardBranch() as the loop guard definition is now the same as getLoopGuardBranch().

Jul 15 2019, 4:18 PM · Restricted Project
Whitney added inline comments to D63885: [LOOPINFO] Introduce the loop guard API. .
Jul 15 2019, 12:07 PM · Restricted Project
Whitney added a comment to D63885: [LOOPINFO] Introduce the loop guard API. .

@Meinersbur As discussed, I strengthened the definition of the loop guard which disallow conditional terminator instructions inside the guarded region outside of the loop of interest.
@Meinersbur @reames @etiotto Do you think this patch is now good enough to land as the first patch? We can loosen or strengthen the definition of the loop guard in later patches when applicable.

Jul 15 2019, 6:47 AM · Restricted Project

Jul 11 2019

Whitney updated the diff for D63885: [LOOPINFO] Introduce the loop guard API. .

Disallow blocks with non unique successors in the guarded region but outside of the loop of interest.

Jul 11 2019, 6:06 PM · Restricted Project
Whitney added inline comments to D63885: [LOOPINFO] Introduce the loop guard API. .
Jul 11 2019, 10:10 AM · Restricted Project
Whitney added inline comments to D63885: [LOOPINFO] Introduce the loop guard API. .
Jul 11 2019, 7:48 AM · Restricted Project

Jul 9 2019

Whitney closed D64224: Keep the order of the basic blocks in the cloned loop as the original loop.

Already committed on July 8 (7d8f30e6b2f27d55d4a14392951e4a61d7598767).

Jul 9 2019, 10:46 AM · Restricted Project
Whitney updated the diff for D63885: [LOOPINFO] Introduce the loop guard API. .

Addressed code review comments from @Meinersbur

Jul 9 2019, 7:02 AM · Restricted Project

Jul 8 2019

Whitney added inline comments to D63885: [LOOPINFO] Introduce the loop guard API. .
Jul 8 2019, 7:22 PM · Restricted Project
Whitney committed rG7d8f30e6b2f2: Keep the order of the basic blocks in the cloned loop as the original loop… (authored by Whitney).
Keep the order of the basic blocks in the cloned loop as the original loop…
Jul 8 2019, 11:34 AM

Jul 5 2019

Whitney updated the diff for D64224: Keep the order of the basic blocks in the cloned loop as the original loop.

@hfinkel Thanks for the review! I am not sure how to add a test in test/Analysis/LoopInfo, as cloneLoopWithPreheader() is not called by LoopInfo, so I added a test in unittests/Transforms/Utils/CloningTest.cpp instead.

Jul 5 2019, 7:37 PM · Restricted Project
Whitney added inline comments to D64224: Keep the order of the basic blocks in the cloned loop as the original loop.
Jul 5 2019, 7:13 PM · Restricted Project

Jul 4 2019

Whitney created D64224: Keep the order of the basic blocks in the cloned loop as the original loop.
Jul 4 2019, 3:33 PM · Restricted Project

Jul 3 2019

Whitney added inline comments to D63885: [LOOPINFO] Introduce the loop guard API. .
Jul 3 2019, 11:02 AM · Restricted Project
Whitney added a comment to D63885: [LOOPINFO] Introduce the loop guard API. .

I like your distinction between weak and proper guards. We probably need better terminology, but both are useful. For the moment, I'd suggest we start with the stronger form and add the weaker one later if needed.

Jul 3 2019, 6:22 AM · Restricted Project

Jun 29 2019

Whitney updated the diff for D63885: [LOOPINFO] Introduce the loop guard API. .

Strengthen the definition of loop guard by disallowing non safe instructions guarded by the branch but not in the loop.

Jun 29 2019, 1:36 PM · Restricted Project
Whitney added a comment to D63885: [LOOPINFO] Introduce the loop guard API. .

@reames Thanks for the review! I agree that there are still much more to consider for how we want to define a loop guard, to make the most use of it.

Jun 29 2019, 4:57 AM · Restricted Project

Jun 27 2019

Whitney added inline comments to D63844: [LoopFusion] Extend use of OptimizationRemarkEmitter.
Jun 27 2019, 10:40 AM · Restricted Project
Whitney updated the diff for D63885: [LOOPINFO] Introduce the loop guard API. .

clang-format

Jun 27 2019, 9:33 AM · Restricted Project
Whitney created D63885: [LOOPINFO] Introduce the loop guard API. .
Jun 27 2019, 9:29 AM · Restricted Project

Jun 25 2019

Whitney committed rG7c1deeff4a67: Expand cloneLoopWithPreheader() to support cloning loop nest (authored by Whitney).
Expand cloneLoopWithPreheader() to support cloning loop nest
Jun 25 2019, 6:31 AM
Whitney closed D63446: Expand cloneLoopWithPreheader() to support cloning loop nest.
Jun 25 2019, 6:31 AM · Restricted Project

Jun 24 2019

Whitney added a comment to D63446: Expand cloneLoopWithPreheader() to support cloning loop nest.

@Meinersbur Thanks for the review! What do you think of the updated changeset?

Jun 24 2019, 2:24 PM · Restricted Project

Jun 17 2019

Whitney added inline comments to D63446: Expand cloneLoopWithPreheader() to support cloning loop nest.
Jun 17 2019, 1:41 PM · Restricted Project
Whitney updated the diff for D63446: Expand cloneLoopWithPreheader() to support cloning loop nest.

Addressed all review comments from Michael.

Jun 17 2019, 1:41 PM · Restricted Project
Whitney created D63446: Expand cloneLoopWithPreheader() to support cloning loop nest.
Jun 17 2019, 10:56 AM · Restricted Project
Whitney committed rG15b7f5b72d2a: PHINode: introduce setIncomingValueForBlock() function, and use it. (authored by Whitney).
PHINode: introduce setIncomingValueForBlock() function, and use it.
Jun 17 2019, 7:37 AM
Whitney updated the diff for D63338: PHINode: introduce setIncomingValueForBlock() function, and use it..

Added the assert. Thanks for the reviews.

Jun 17 2019, 7:19 AM · Restricted Project

Jun 14 2019

Whitney added inline comments to D63338: PHINode: introduce setIncomingValueForBlock() function, and use it..
Jun 14 2019, 9:55 AM · Restricted Project
Whitney updated the diff for D63338: PHINode: introduce setIncomingValueForBlock() function, and use it..
Jun 14 2019, 9:55 AM · Restricted Project
Whitney added inline comments to D63338: PHINode: introduce setIncomingValueForBlock() function, and use it..
Jun 14 2019, 9:28 AM · Restricted Project
Whitney created D63338: PHINode: introduce setIncomingValueForBlock() function, and use it..
Jun 14 2019, 9:00 AM · Restricted Project

Jun 10 2019

Whitney committed rG05bf5f9328e2: [DA] Add an option to control delinearization validity checks (authored by Whitney).
[DA] Add an option to control delinearization validity checks
Jun 10 2019, 8:28 AM

Jun 6 2019

Whitney committed rG03e8369a7280: [DA] Add an option to control delinearization validity checks (authored by Whitney).
[DA] Add an option to control delinearization validity checks
Jun 6 2019, 8:11 AM

Jun 5 2019

Whitney committed rG2d0896c1cb90: [LOOPINFO] Extend Loop object to add utilities to get the loop bounds, step… (authored by Whitney).
[LOOPINFO] Extend Loop object to add utilities to get the loop bounds, step…
Jun 5 2019, 1:43 PM
Whitney committed rG590b1aee609d: Revert "Title: [LOOPINFO] Extend Loop object to add utilities to get the loop" (authored by Whitney).
Revert "Title: [LOOPINFO] Extend Loop object to add utilities to get the loop"
Jun 5 2019, 8:32 AM
Whitney added a reverting change for rGd34797dfc26c: Title: [LOOPINFO] Extend Loop object to add utilities to get the loop bounds…: rG590b1aee609d: Revert "Title: [LOOPINFO] Extend Loop object to add utilities to get the loop".
Jun 5 2019, 8:32 AM
Whitney committed rGd34797dfc26c: Title: [LOOPINFO] Extend Loop object to add utilities to get the loop bounds… (authored by Whitney).
Title: [LOOPINFO] Extend Loop object to add utilities to get the loop bounds…
Jun 5 2019, 7:32 AM

Jun 4 2019

Whitney updated the diff for D60565: [LOOPINFO] Extend Loop object to add utilities to get the loop bounds, step, and loop induction variable..
Jun 4 2019, 10:29 AM · Restricted Project

Jun 3 2019

Whitney added a comment to D60565: [LOOPINFO] Extend Loop object to add utilities to get the loop bounds, step, and loop induction variable..

If there are no further comments or concerns, I will commit this patch on this Wed.

Jun 3 2019, 11:00 AM · Restricted Project

May 29 2019

Whitney retitled D60565: [LOOPINFO] Extend Loop object to add utilities to get the loop bounds, step, and loop induction variable. from [LOOPINFO] Extend Loop object to add utilities to get the loop bounds, step, induction variable, and guard branch. to [LOOPINFO] Extend Loop object to add utilities to get the loop bounds, step, and loop induction variable..
May 29 2019, 11:29 AM · Restricted Project
Whitney added a comment to D60565: [LOOPINFO] Extend Loop object to add utilities to get the loop bounds, step, and loop induction variable..

@fhahn Thanks for your review. Do you think this is better now? Is there some areas you would like me to look into more?

May 29 2019, 6:23 AM · Restricted Project
Whitney updated the diff for D60565: [LOOPINFO] Extend Loop object to add utilities to get the loop bounds, step, and loop induction variable..
May 29 2019, 6:21 AM · Restricted Project

May 28 2019

Whitney added inline comments to D60565: [LOOPINFO] Extend Loop object to add utilities to get the loop bounds, step, and loop induction variable..
May 28 2019, 1:49 PM · Restricted Project

May 25 2019

Whitney updated the diff for D62418: [MustExecute] Improve MustExecute to correctly handle loop nest.

Addressed all review comments.

May 25 2019, 9:41 AM · Restricted Project

May 24 2019

Whitney created D62418: [MustExecute] Improve MustExecute to correctly handle loop nest.
May 24 2019, 12:32 PM · Restricted Project

May 22 2019

Whitney updated the diff for D60565: [LOOPINFO] Extend Loop object to add utilities to get the loop bounds, step, and loop induction variable..
May 22 2019, 2:32 PM · Restricted Project

May 17 2019

Whitney added inline comments to D60565: [LOOPINFO] Extend Loop object to add utilities to get the loop bounds, step, and loop induction variable..
May 17 2019, 1:35 PM · Restricted Project
Whitney updated the diff for D60565: [LOOPINFO] Extend Loop object to add utilities to get the loop bounds, step, and loop induction variable..
May 17 2019, 1:34 PM · Restricted Project