How to join the open MLIR Project

To begin with, don’t use arc land: it adds noisy tags to the commit message that we rather have cleaned up before pushing.

Then for getting commit access, the process is described here: https://llvm.org/docs/DeveloperPolicy.html#obtaining-commit-access

We should likely reference this from the MLIR getting started page!

All projects require some degree of independence, you should not feel dependent on my schedule or anybody else’s as long as people are aware who is working on what parts to avoid effort duplication. My general advise is to avoid building expectations on the schedule, the MLIR community is rather broad and distributed. Because of time zone difference, expect at least a workday in all time zones for all relevant people to have an opportunity to catch up on questions and messages, sometimes more. In particular, people involved in affine really are around the globe. From my experience, getting the code reviewed takes a couple of days. So it’s preferable to work on several things to avoid being blocked.

You don’t have commit access. Read Mehdi’s link to see how it works (generally, it takes some commits before you get access). While you don’t have it, the common way to go is to ask code reviewers to commit the changes on your behalf. I just did for ⚙ D73848 Add AffineMaxOp.

Thank you! @joker-eph

My general advise is to avoid building expectations on the schedule, the MLIR community is rather broad and distributed.

Okay, thank you for your advice ! @ ftynse

I just did for https://reviews.llvm.org/D73848.

Great, I will continue next pr for issues mentioned in D73848 and the “parallel.for” issue.

Great, thanks for working on this!

Incidentally, is there a place where there is the list of all who have commit access? (I couldn’t find anything by Googling.)

It’s a private group, we can see each other but it is not listed publicly. There may be security implications in making the list public.

1 Like

Hi, I have two new questions:

  1. I’ve tried add an if-else in AffineForLowering, like:
    if (isLoopParallel(op)) {
    } else {
    }

    While the test from Toy/Ch6/llvm-lowering.mlir failed with:

     //===-------------------------------------------===//
     Legalizing operation : 'affine.for'(0x5c568d0) {
       * Fold {
       } -> FAILURE : unable to fold
    
       * Pattern : 'affine.for -> ()' {
       } -> FAILURE : pattern was already applied
     } -> FAILURE : no matched legalization pattern
     //===-------------------------------------------===//
    

Do you have any ideas about that ?

Another question is, since the question is quite different from the original “how to join the open mlir project”, may I just start a new topic or may I send you message if my question is project-specific and too small ?

You modified an existing conversion to work differently than before, so it’s not surprising that tests using it fail, they expect the old behavior. I would suggest you look into the IR this test produces with and without your changes, and what it expects. See the testing guide for more details. This is purely an exercise to understand how the infrastructure works.

Once you understood that, I would argue that affine.for->loop.parallel conversion should not be enabled by default. It may make sense to have a different conversion pattern, or an option in the existing pattern that is forwarded from the pass constructor. I’ll let you consider the alternatives and suggest what you think makes most sense to avoid always generating parallel loops.

I think it’s preferable for you to engage with the community, which means using the forum instead of writing 1:1 emails. This also lets other people see your work and eventually answer the questions (I don’t have all the answers). Feel free to start a new thread if you feel this thread diverged from its original purpose.

I would suggest you look into the IR this test produces with and without your changes, and what it expects.

Yap, I’ve done that, and it failed before any transformation result showed up because the error saied: “pattern was already applied” while I think this transformation has been applied only once (In the same rewritten pattern!)

Feel free to start a new thread if you feel this thread diverged from its original purpose

Cool, I will start a new thread after this question if there are more.