Page MenuHomePhabricator
Feed Advanced Search

Mon, Sep 13

uint256_t added inline comments to D109646: [LNICM] Fix the crashing problem.
Mon, Sep 13, 2:01 AM · Restricted Project

Sat, Sep 11

uint256_t updated subscribers of D109646: [LNICM] Fix the crashing problem.
Sat, Sep 11, 11:26 AM · Restricted Project
uint256_t requested review of D109646: [LNICM] Fix the crashing problem.
Sat, Sep 11, 11:25 AM · Restricted Project

Fri, Sep 10

uint256_t added a comment to D107219: [LICM] Support sinking in LNICM.

Thank you for the report. I'll look into it.

Fri, Sep 10, 2:31 AM · Restricted Project

Tue, Aug 24

uint256_t updated the diff for D108087: [SimpleLoopUnswitch] Create SimpleLoopNestUnswitch pass.
  • No longer do findBestUnswitchTI every time we call unswitchBestCondition.
  • Remove the condition BestUnswitchTIForLoopNest == findBestUnswitchTI, which was confusing.
Tue, Aug 24, 8:17 PM · Restricted Project
uint256_t added inline comments to D108087: [SimpleLoopUnswitch] Create SimpleLoopNestUnswitch pass.
Tue, Aug 24, 8:06 PM · Restricted Project

Mon, Aug 23

uint256_t added a comment to D108087: [SimpleLoopUnswitch] Create SimpleLoopNestUnswitch pass.

For example, we may have an opportunity to perform loop-interchange (or some other transformations that require a perfect loop nest) after performing simple-loop-nest-unswitch.
We can perform simple-loop-unswitch after that, so there should be no problem for loop vectorization.
How we arrange passes including simple-loop-nest-unswitch in a pass pipeline is still a problem though...

Mon, Aug 23, 1:50 AM · Restricted Project

Aug 21 2021

uint256_t updated the diff for D108087: [SimpleLoopUnswitch] Create SimpleLoopNestUnswitch pass.

Follow clang-tidy

Aug 21 2021, 9:13 AM · Restricted Project
uint256_t updated the diff for D108087: [SimpleLoopUnswitch] Create SimpleLoopNestUnswitch pass.

Small change

Aug 21 2021, 8:15 AM · Restricted Project

Aug 20 2021

uint256_t updated the summary of D108087: [SimpleLoopUnswitch] Create SimpleLoopNestUnswitch pass.
Aug 20 2021, 4:22 AM · Restricted Project
uint256_t updated subscribers of D108087: [SimpleLoopUnswitch] Create SimpleLoopNestUnswitch pass.
Aug 20 2021, 4:20 AM · Restricted Project
uint256_t added reviewers for D108087: [SimpleLoopUnswitch] Create SimpleLoopNestUnswitch pass: chandlerc, jaykang10.
Aug 20 2021, 4:19 AM · Restricted Project
uint256_t set the repository for D108087: [SimpleLoopUnswitch] Create SimpleLoopNestUnswitch pass to rG LLVM Github Monorepo.
Aug 20 2021, 4:09 AM · Restricted Project
uint256_t updated the diff for D108087: [SimpleLoopUnswitch] Create SimpleLoopNestUnswitch pass.

Ready for review

Aug 20 2021, 4:05 AM · Restricted Project

Aug 18 2021

uint256_t added a comment to D108087: [SimpleLoopUnswitch] Create SimpleLoopNestUnswitch pass.

This patch is not ready for review. I'll update the diff soon.

Aug 18 2021, 1:24 AM · Restricted Project

Aug 16 2021

uint256_t accepted D108166: [LNICM] Fix infinite loop.

LGTM, thank you.

Aug 16 2021, 8:49 PM · Restricted Project

Aug 15 2021

uint256_t requested review of D108087: [SimpleLoopUnswitch] Create SimpleLoopNestUnswitch pass.
Aug 15 2021, 8:49 AM · Restricted Project

Aug 9 2021

uint256_t updated the diff for D107219: [LICM] Support sinking in LNICM.

Added doc comment

Aug 9 2021, 8:51 PM · Restricted Project
uint256_t added inline comments to D107219: [LICM] Support sinking in LNICM.
Aug 9 2021, 7:51 PM · Restricted Project

Aug 5 2021

uint256_t updated the diff for D107219: [LICM] Support sinking in LNICM.

Added doc comment

Aug 5 2021, 7:19 AM · Restricted Project

Aug 4 2021

uint256_t added inline comments to D107219: [LICM] Support sinking in LNICM.
Aug 4 2021, 9:09 AM · Restricted Project
uint256_t added inline comments to D107219: [LICM] Support sinking in LNICM.
Aug 4 2021, 8:10 AM · Restricted Project
uint256_t added inline comments to D107219: [LICM] Support sinking in LNICM.
Aug 4 2021, 7:24 AM · Restricted Project
uint256_t added inline comments to D107219: [LICM] Support sinking in LNICM.
Aug 4 2021, 6:41 AM · Restricted Project
uint256_t updated the diff for D107219: [LICM] Support sinking in LNICM.

Fixed test

Aug 4 2021, 5:55 AM · Restricted Project
uint256_t updated the diff for D107219: [LICM] Support sinking in LNICM.

Fixed bug

Aug 4 2021, 4:52 AM · Restricted Project

Jul 31 2021

uint256_t updated the diff for D107219: [LICM] Support sinking in LNICM.

Updated test to make it more readable

Jul 31 2021, 5:32 AM · Restricted Project
uint256_t added inline comments to D107219: [LICM] Support sinking in LNICM.
Jul 31 2021, 5:29 AM · Restricted Project
uint256_t requested review of D107219: [LICM] Support sinking in LNICM.
Jul 31 2021, 3:50 AM · Restricted Project

Jul 14 2021

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?

Jul 14 2021, 8:41 AM · Restricted Project

Jun 30 2021

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

Jun 29 2021

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

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

Jun 29 2021, 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.

Jun 29 2021, 3:13 AM · Restricted Project

Jun 26 2021

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.

Jun 26 2021, 9:47 AM · Restricted Project

Jun 24 2021

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.

Jun 24 2021, 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