[PATCH] D86071: [MLIR][OpenMP] Add omp.do operation

Johannes Doerfert via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 11 06:48:51 PDT 2020


jdoerfert added a comment.

In D86071#2267754 <https://reviews.llvm.org/D86071#2267754>, @ftynse wrote:

> In D86071#2267750 <https://reviews.llvm.org/D86071#2267750>, @jdoerfert wrote:
>
>> In D86071#2267473 <https://reviews.llvm.org/D86071#2267473>, @ftynse wrote:
>>
>>> In D86071#2266254 <https://reviews.llvm.org/D86071#2266254>, @jdoerfert wrote:
>>>
>>>> In D86071#2266169 <https://reviews.llvm.org/D86071#2266169>, @ftynse wrote:
>>>>
>>>>>> It has to be the OpenMPIRBuilder that lowers it into a CFG (eventually) because it is not "a fortran/mlir/affine/... loop" but an OpenMP worksharing loop with all what that entails.
>>>>>
>>>>> If there is an `OpenMPIRBuilder::CreateForLoop` or a plan to have it? So far, it looks a there is a non-negligible amount of code in Clang that emits the IR for loops, and replicating that code in mlir-translate is a no go.
>>>>
>>>>
>>>>
>>>> In D86071#2266169 <https://reviews.llvm.org/D86071#2266169>, @ftynse wrote:
>>>>
>>>>>> It has to be the OpenMPIRBuilder that lowers it into a CFG (eventually) because it is not "a fortran/mlir/affine/... loop" but an OpenMP worksharing loop with all what that entails.
>>>>>
>>>>> If there is an `OpenMPIRBuilder::CreateForLoop` or a plan to have it?
>>>>
>>>> Yes.
>>>
>>> Is there a written version somewhere we can see?
>>
>> A written version of the plan? Yes. A written version of the code, not yet.
>
> Could you post a link?

Sure: http://lists.flang-compiler.org/pipermail/flang-dev_lists.flang-compiler.org/2019-May/000197.html

>>>>> So far, it looks a there is a non-negligible amount of code in Clang that emits the IR for loops, and replicating that code in mlir-translate is a no go.
>>>>
>>>> All OpenMP related LLVM-IR code generation is (eventually) going to be moved into `OpenMPIRBuilder` so we do not duplicate the rather nontrivial parts in two places which would become a maintenance nightmare. That is (among other things) the point ;)
>>>
>>> This sounds great! 
>>> [...]
>>> and can the OpenMPIRBuilder be designed so as to eventually take an `mlir::Builder` instead of `llvm::IRBuilder<>` and produce LLVM dialect instead of LLVM; 
>>> [...]
>>
>> So far that was not on my TODO list and it seems like a lot of work assuming you do not port various other things into MLIR land. Could you help me understand what we would gain by generating LLVM dialect?
>
> Would you mind moving this to discourse / mailing list?

No, feel free to reply to the thread above or start a new one.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D86071/new/

https://reviews.llvm.org/D86071



More information about the llvm-commits mailing list