Page MenuHomePhabricator

uint256_t (toshiki maekawa)
User

Projects

User does not belong to any projects.

User Details

User Since
Mar 1 2021, 7:43 AM (20 w, 4 d)

Recent Activity

Wed, Jul 14

uint256_t added a comment to D104180: [LICM] Create LoopNest Invariant Code Motion (LNICM) pass.

What do you think about changes, @asbirlea @fhahn @lebedev.ri @nikic?

Wed, Jul 14, 8:41 AM · Restricted Project

Wed, Jun 30

uint256_t added a comment to D104180: [LICM] Create LoopNest Invariant Code Motion (LNICM) pass.
Wed, Jun 30, 8:51 AM · Restricted Project

Tue, Jun 29

uint256_t added a comment to D104180: [LICM] Create LoopNest Invariant Code Motion (LNICM) pass.

Yes, you're right. My explanation was confusing.

Tue, Jun 29, 9:35 AM · Restricted Project
uint256_t added a comment to D104180: [LICM] Create LoopNest Invariant Code Motion (LNICM) pass.

We're thinking of replacing LICM in LPM1 with LNICM and adding LPM3 containing LICM after LPM2.
In long term, LPM3 should be removed though.

Tue, Jun 29, 3:13 AM · Restricted Project

Sat, Jun 26

uint256_t updated the diff for D104180: [LICM] Create LoopNest Invariant Code Motion (LNICM) pass.

I am sorry to make you have any unintentional negative feelings. English is not my first language.
I appreciate all review comments I have gotten. I will try to have the motivation more up front next time.

Sat, Jun 26, 9:47 AM · Restricted Project

Thu, Jun 24

uint256_t added a comment to D104180: [LICM] Create LoopNest Invariant Code Motion (LNICM) pass.

I don't introduce a lot of changes for LNICM, and reuse as much code in LICM as possible.
Some transformations really benefit from perfect loop nest. One of the examples is loop-interchange as shown in a lit test.
LICM cannot maintain perfect loop nest, so we need to add LNICM.

Thu, Jun 24, 9:47 AM · Restricted Project

Jun 23 2021

uint256_t updated subscribers of D104180: [LICM] Create LoopNest Invariant Code Motion (LNICM) pass.
Jun 23 2021, 8:02 AM · Restricted Project
uint256_t updated the summary of D104180: [LICM] Create LoopNest Invariant Code Motion (LNICM) pass.
Jun 23 2021, 8:02 AM · Restricted Project
uint256_t updated the diff for D104180: [LICM] Create LoopNest Invariant Code Motion (LNICM) pass.

Update a test case to show loop-interchange doesn't run after running LICM but LNICM.

Jun 23 2021, 7:45 AM · Restricted Project
uint256_t added a comment to D104180: [LICM] Create LoopNest Invariant Code Motion (LNICM) pass.

Is LoopNest Invariant Code Motion Pass only about not doing the movement that breaks perfect loop nest?

Yes.

What about all the code that is no longer moved?
What is the envisioned final pipeline structure?
Do we end up having to run both LNICM and LICM?

Yes, we need to run both LNICM and LICM. Sometimes we should run either one.

Jun 23 2021, 7:19 AM · Restricted Project

Jun 22 2021

uint256_t updated the diff for D104180: [LICM] Create LoopNest Invariant Code Motion (LNICM) pass.

Add a test case to demonstrate that LNICM hoists invariants only out of loop nest and keeps perfect loop nest.

Jun 22 2021, 9:26 AM · Restricted Project

Jun 20 2021

uint256_t added a comment to D104180: [LICM] Create LoopNest Invariant Code Motion (LNICM) pass.

I'm sorry to be late to reply.
I'm making small tests and some code changes to demonstrate the following:

Jun 20 2021, 3:10 AM · Restricted Project

Jun 15 2021

uint256_t added a comment to D104180: [LICM] Create LoopNest Invariant Code Motion (LNICM) pass.

LNICM itself is no faster, but we can expect other optimizations to run thanks to LNICM and may be able to get more optimized code.

Jun 15 2021, 10:53 AM · Restricted Project
uint256_t added a comment to D104180: [LICM] Create LoopNest Invariant Code Motion (LNICM) pass.

Actually, LNICM is to enable other optimizations in loop pipeline that require perfect loop nest by hoisting innermost invariants out of loop nest at once.
I said that LNICM can efficiently perform LICM, but after tweaking the code and running some tests, I realized that it might not get faster.
However, even if it gets no faster, LNICM is worth adding as a new pass.

Jun 15 2021, 10:39 AM · Restricted Project

Jun 12 2021

uint256_t updated the summary of D104180: [LICM] Create LoopNest Invariant Code Motion (LNICM) pass.
Jun 12 2021, 9:30 AM · Restricted Project
uint256_t updated subscribers of D104180: [LICM] Create LoopNest Invariant Code Motion (LNICM) pass.
Jun 12 2021, 9:16 AM · Restricted Project
uint256_t updated the diff for D104180: [LICM] Create LoopNest Invariant Code Motion (LNICM) pass.
Jun 12 2021, 9:14 AM · Restricted Project
uint256_t updated the diff for D104180: [LICM] Create LoopNest Invariant Code Motion (LNICM) pass.
Jun 12 2021, 9:13 AM · Restricted Project
uint256_t added a comment to D104180: [LICM] Create LoopNest Invariant Code Motion (LNICM) pass.

As the patch is written I am concerned that this appears to mostly duplicate the existing code of LICM (which adds a maintenance burden) and just changes the type of the pass.

I'll update the code to contain less duplication. I'm sorry to trouble you.

Jun 12 2021, 8:37 AM · Restricted Project
uint256_t requested review of D104180: [LICM] Create LoopNest Invariant Code Motion (LNICM) pass.
Jun 12 2021, 7:43 AM · Restricted Project

Jun 7 2021

uint256_t updated the diff for D99149: [LoopUnrollAndJam] Change LoopUnrollAndJamPass to LoopNest pass.

Just a small change.

Jun 7 2021, 8:16 PM · Restricted Project
uint256_t added inline comments to D99149: [LoopUnrollAndJam] Change LoopUnrollAndJamPass to LoopNest pass.
Jun 7 2021, 2:49 AM · Restricted Project

Jun 6 2021

uint256_t added inline comments to D99149: [LoopUnrollAndJam] Change LoopUnrollAndJamPass to LoopNest pass.
Jun 6 2021, 8:49 PM · Restricted Project
uint256_t updated the diff for D99149: [LoopUnrollAndJam] Change LoopUnrollAndJamPass to LoopNest pass.

Code updated. No crash on legacy pass manager in my environment.

Jun 6 2021, 8:37 PM · Restricted Project
uint256_t added inline comments to D99149: [LoopUnrollAndJam] Change LoopUnrollAndJamPass to LoopNest pass.
Jun 6 2021, 9:29 AM · Restricted Project
uint256_t added inline comments to D99149: [LoopUnrollAndJam] Change LoopUnrollAndJamPass to LoopNest pass.
Jun 6 2021, 8:53 AM · Restricted Project
uint256_t added inline comments to D99149: [LoopUnrollAndJam] Change LoopUnrollAndJamPass to LoopNest pass.
Jun 6 2021, 8:12 AM · Restricted Project

May 27 2021

uint256_t updated the diff for D99149: [LoopUnrollAndJam] Change LoopUnrollAndJamPass to LoopNest pass.
May 27 2021, 9:14 AM · Restricted Project

May 25 2021

uint256_t added inline comments to D99149: [LoopUnrollAndJam] Change LoopUnrollAndJamPass to LoopNest pass.
May 25 2021, 7:13 AM · Restricted Project
uint256_t added inline comments to D99149: [LoopUnrollAndJam] Change LoopUnrollAndJamPass to LoopNest pass.
May 25 2021, 6:54 AM · Restricted Project
uint256_t updated the diff for D99149: [LoopUnrollAndJam] Change LoopUnrollAndJamPass to LoopNest pass.

Maybe fixed the problem.

May 25 2021, 6:50 AM · Restricted Project

May 24 2021

uint256_t reopened D99149: [LoopUnrollAndJam] Change LoopUnrollAndJamPass to LoopNest pass.
May 24 2021, 7:41 PM · Restricted Project
uint256_t added a comment to D99149: [LoopUnrollAndJam] Change LoopUnrollAndJamPass to LoopNest pass.

Thank you for reporting. I'll revert the commit and fix the problem.

May 24 2021, 12:06 PM · Restricted Project

May 22 2021

uint256_t updated the diff for D99149: [LoopUnrollAndJam] Change LoopUnrollAndJamPass to LoopNest pass.

To avoid a failure by address sanitizer

May 22 2021, 3:48 AM · Restricted Project
uint256_t reopened D99149: [LoopUnrollAndJam] Change LoopUnrollAndJamPass to LoopNest pass.
May 22 2021, 1:38 AM · Restricted Project

May 11 2021

uint256_t added a comment to D99149: [LoopUnrollAndJam] Change LoopUnrollAndJamPass to LoopNest pass.

The pre-merge checks failed, so I fixed it.

May 11 2021, 6:29 PM · Restricted Project
uint256_t updated the diff for D99149: [LoopUnrollAndJam] Change LoopUnrollAndJamPass to LoopNest pass.
May 11 2021, 10:07 AM · Restricted Project
uint256_t updated the diff for D99149: [LoopUnrollAndJam] Change LoopUnrollAndJamPass to LoopNest pass.

Updated the code. Thanks.

May 11 2021, 7:26 AM · Restricted Project

Mar 26 2021

uint256_t updated the diff for D99149: [LoopUnrollAndJam] Change LoopUnrollAndJamPass to LoopNest pass.

Updated the code

Mar 26 2021, 10:32 AM · Restricted Project

Mar 25 2021

uint256_t added a comment to D99149: [LoopUnrollAndJam] Change LoopUnrollAndJamPass to LoopNest pass.

Does it work, in general, to have a loop pass that creates and destroys loops? Even if the outer loop is completely unrolled?

I should have added code like

if (Result == LoopUnrollResult::FullyUnrolled)
      LPM.markLoopAsDeleted(*L);

after calling tryToUnrollAndJamLoop.

Mar 25 2021, 11:49 PM · Restricted Project

Mar 23 2021

uint256_t updated the diff for D99149: [LoopUnrollAndJam] Change LoopUnrollAndJamPass to LoopNest pass.

Followed clang-tidy's warning

Mar 23 2021, 7:50 AM · Restricted Project
uint256_t requested review of D99149: [LoopUnrollAndJam] Change LoopUnrollAndJamPass to LoopNest pass.
Mar 23 2021, 12:28 AM · Restricted Project