<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/flang/lib/Lower/OpenMP/Utils.cpp, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>[flang][OpenMP] Store Block in OpenMPLoopConstruct, add access functions (#168078)</title>
<updated>2025-11-17T14:02:36+00:00</updated>
<author>
<name>Krzysztof Parzyszek</name>
<email>Krzysztof.Parzyszek@amd.com</email>
</author>
<published>2025-11-17T14:02:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e70e9ec3b83757761ccbba217a566d77b561ec53'/>
<id>e70e9ec3b83757761ccbba217a566d77b561ec53</id>
<content type='text'>
Instead of storing a variant with specific types, store parser::Block as
the body. Add two access functions to make the traversal of the nest
simpler.

This will allow storing loop-nest sequences in the future.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Instead of storing a variant with specific types, store parser::Block as
the body. Add two access functions to make the traversal of the nest
simpler.

This will allow storing loop-nest sequences in the future.</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenMP][Flang] Emit default declare mappers implicitly for derived types (#140562)</title>
<updated>2025-11-14T15:59:48+00:00</updated>
<author>
<name>Akash Banerjee</name>
<email>akash.banerjee@amd.com</email>
</author>
<published>2025-11-14T15:59:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8aa7d823b0cba96e54d4d73539df4b82c3b401b9'/>
<id>8aa7d823b0cba96e54d4d73539df4b82c3b401b9</id>
<content type='text'>
This patch adds support to emit default declare mappers for implicit
mapping of derived types when not supplied by user. This especially
helps tackle mapping of allocatables of derived types.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch adds support to emit default declare mappers for implicit
mapping of derived types when not supplied by user. This especially
helps tackle mapping of allocatables of derived types.</pre>
</div>
</content>
</entry>
<entry>
<title>[Flang][OpenMP][Dialect] Swap to using MLIR dialect enum to encode map flags (#164043)</title>
<updated>2025-10-21T19:54:25+00:00</updated>
<author>
<name>agozillon</name>
<email>Andrew.Gozillon@amd.com</email>
</author>
<published>2025-10-21T19:54:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f2b20d3410e4c0cc3be4a5b69e00120cab9f1d5e'/>
<id>f2b20d3410e4c0cc3be4a5b69e00120cab9f1d5e</id>
<content type='text'>
This PR shifts from using the LLVM OpenMP enumerator bit flags to an
OpenMP dialect specific enumerator. This allows us to better represent
map types that wouldn't be of interest to the LLVM backend and runtime
in the dialect.

Primarily things like
ref_ptr/ref_ptee/ref_ptr_ptee/atach_none/attach_always/attach_auto which
are of interest to the compiler for certrain transformations (primarily
in the FIR transformation passes dealing with mapping), but the runtime
has no need to know about them. It also means if another OpenMP
implementation comes along they won't need to stick to the same bit flag
system LLVM chose/do leg work to address it.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR shifts from using the LLVM OpenMP enumerator bit flags to an
OpenMP dialect specific enumerator. This allows us to better represent
map types that wouldn't be of interest to the LLVM backend and runtime
in the dialect.

Primarily things like
ref_ptr/ref_ptee/ref_ptr_ptee/atach_none/attach_always/attach_auto which
are of interest to the compiler for certrain transformations (primarily
in the FIR transformation passes dealing with mapping), but the runtime
has no need to know about them. It also means if another OpenMP
implementation comes along they won't need to stick to the same bit flag
system LLVM chose/do leg work to address it.</pre>
</div>
</content>
</entry>
<entry>
<title>[Flang][OpenMP] Fix negative array indexing with allocatable derived type array maps (#154193)</title>
<updated>2025-10-04T01:12:21+00:00</updated>
<author>
<name>agozillon</name>
<email>Andrew.Gozillon@amd.com</email>
</author>
<published>2025-10-04T01:12:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=716fe1cbd9496564ac3588069846a52b8539df65'/>
<id>716fe1cbd9496564ac3588069846a52b8539df65</id>
<content type='text'>
The main problem is that the previous intermediate map generation for
allocatable members wasn't quite handling negative bounds acccesses
correctly, it seems to require slightly more complicated access using
shape_shift/dimension information. So this more closely mimics what
Flang generates in other cases now.

There is still a path for non-Box types to go down the old route for the
moment, so it is possible we may still have issues with negative bounds
in these cases. But, that's better in another PR if we come across it,
instead of too much change in this one.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The main problem is that the previous intermediate map generation for
allocatable members wasn't quite handling negative bounds acccesses
correctly, it seems to require slightly more complicated access using
shape_shift/dimension information. So this more closely mimics what
Flang generates in other cases now.

There is still a path for non-Box types to go down the old route for the
moment, so it is possible we may still have issues with negative bounds
in these cases. But, that's better in another PR if we come across it,
instead of too much change in this one.</pre>
</div>
</content>
</entry>
<entry>
<title>[Flang] Add standalone tile support (#160298)</title>
<updated>2025-10-03T13:52:48+00:00</updated>
<author>
<name>Michael Kruse</name>
<email>llvm-project@meinersbur.de</email>
</author>
<published>2025-10-03T13:52:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=375f48942b9a3f3fbd82133390af25b6c96f1460'/>
<id>375f48942b9a3f3fbd82133390af25b6c96f1460</id>
<content type='text'>
Add support for the standalone OpenMP tile construct:
```f90
!$omp tile sizes(...)
DO i = 1, 100
  ...
```

This is complementary to #143715 which added support for the tile
construct as part of another loop-associated construct such as
worksharing-loop, distribute, etc.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add support for the standalone OpenMP tile construct:
```f90
!$omp tile sizes(...)
DO i = 1, 100
  ...
```

This is complementary to #143715 which added support for the tile
construct as part of another loop-associated construct such as
worksharing-loop, distribute, etc.</pre>
</div>
</content>
</entry>
<entry>
<title>[flang][OpenMP] Use OmpDirectiveSpecification in Omp[Begin|End]LoopDi… (#159087)</title>
<updated>2025-09-16T16:38:03+00:00</updated>
<author>
<name>Krzysztof Parzyszek</name>
<email>Krzysztof.Parzyszek@amd.com</email>
</author>
<published>2025-09-16T16:38:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e75e28ad3c9558c2cca32cd16cd5681b5219ff8d'/>
<id>e75e28ad3c9558c2cca32cd16cd5681b5219ff8d</id>
<content type='text'>
…rective

This makes accessing directive components, such as directive name or the
list of clauses simpler and more uniform across different directives. It
also makes the parser simpler, since it reuses existing parsing
functionality.

The changes are scattered over a number of files, but they all share the
same nature:
- getting the begin/end directive from OpenMPLoopConstruct,
- getting the llvm::omp::Directive enum, and the source location,
- getting the clause list.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
…rective

This makes accessing directive components, such as directive name or the
list of clauses simpler and more uniform across different directives. It
also makes the parser simpler, since it reuses existing parsing
functionality.

The changes are scattered over a number of files, but they all share the
same nature:
- getting the begin/end directive from OpenMPLoopConstruct,
- getting the llvm::omp::Directive enum, and the source location,
- getting the clause list.</pre>
</div>
</content>
</entry>
<entry>
<title>[flang][OpenMP] Enable tiling (#143715)</title>
<updated>2025-09-10T13:25:40+00:00</updated>
<author>
<name>Jan Leyonberg</name>
<email>jan_sjodin@yahoo.com</email>
</author>
<published>2025-09-10T13:25:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d452e67ee7b5d17aa040f71d8997abc1a47750e4'/>
<id>d452e67ee7b5d17aa040f71d8997abc1a47750e4</id>
<content type='text'>
This patch enables tiling in flang. In MLIR tiling is handled by
changing the the omp.loop_nest op to be able to represent both collapse
and tiling, so the flang front-end will combine the nested constructs into
a single MLIR op. The MLIR-&gt;LLVM-IR lowering of the LoopNestOp is
enhanced to first do the tiling if present, then collapse.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch enables tiling in flang. In MLIR tiling is handled by
changing the the omp.loop_nest op to be able to represent both collapse
and tiling, so the flang front-end will combine the nested constructs into
a single MLIR op. The MLIR-&gt;LLVM-IR lowering of the LoopNestOp is
enhanced to first do the tiling if present, then collapse.
</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC][flang][OpenMP] Create `FortranUtils` lib and move `createMapInfoOp` to it (#154483)</title>
<updated>2025-08-27T16:25:36+00:00</updated>
<author>
<name>Kareem Ergawy</name>
<email>kareem.ergawy@amd.com</email>
</author>
<published>2025-08-27T16:25:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=86e4c175e3de73bf529b6849614fefcb4b8d7011'/>
<id>86e4c175e3de73bf529b6849614fefcb4b8d7011</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[MLIR][OpenMP] Add lowering support for AUTOMAP modifier (#151513)</title>
<updated>2025-08-11T11:45:22+00:00</updated>
<author>
<name>Akash Banerjee</name>
<email>akash.banerjee@amd.com</email>
</author>
<published>2025-08-11T11:45:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=3b10b9a2b03a2954d9da54c0f1137daeb9e339c4'/>
<id>3b10b9a2b03a2954d9da54c0f1137daeb9e339c4</id>
<content type='text'>
Add Automap modifier to the MLIR op definition for the DeclareTarget
directive's Enter clause. Also add lowering support in Flang.

Automap Ref: OpenMP 6.0 section 7.9.7.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add Automap modifier to the MLIR op definition for the DeclareTarget
directive's Enter clause. Also add lowering support in Flang.

Automap Ref: OpenMP 6.0 section 7.9.7.</pre>
</div>
</content>
</entry>
<entry>
<title>[flang][OpenMP] General utility to get directive id from AST node (#150121)</title>
<updated>2025-07-23T13:25:33+00:00</updated>
<author>
<name>Krzysztof Parzyszek</name>
<email>Krzysztof.Parzyszek@amd.com</email>
</author>
<published>2025-07-23T13:25:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=43db6c5cc1a81b540ddca49bee197895c420ec2d'/>
<id>43db6c5cc1a81b540ddca49bee197895c420ec2d</id>
<content type='text'>
Fortran::parser::omp::GetOmpDirectiveName(t) will get the
OmpDirectiveName object that corresponds to construct t. That object (an
AST node) contains the enum id and the source information of the
directive.

Replace uses of extractOmpDirective and getOpenMPDirectiveEnum with the
new function.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fortran::parser::omp::GetOmpDirectiveName(t) will get the
OmpDirectiveName object that corresponds to construct t. That object (an
AST node) contains the enum id and the source information of the
directive.

Replace uses of extractOmpDirective and getOpenMPDirectiveEnum with the
new function.</pre>
</div>
</content>
</entry>
</feed>
