<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/flang/lib/Optimizer/Support/Utils.cpp, branch users/ojhunt/ptrauth-additions</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][OpenACC] generate Destroy region to free memory of private and firstprivate if needed (#162702)</title>
<updated>2025-10-14T13:18:34+00:00</updated>
<author>
<name>jeanPerier</name>
<email>jperier@nvidia.com</email>
</author>
<published>2025-10-14T13:18:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0832f1afe99b7c87a7a92b5c0600380b6defeebe'/>
<id>0832f1afe99b7c87a7a92b5c0600380b6defeebe</id>
<content type='text'>
This patch extends the MappableTypeInterface to:
- allow genPrivateInit to indicate that a Destroy region will be needed.
- add genPrivateDestroy to generate the destruction code
- Implement both interfaces in FIR
- Update OpenACC lowering to generate the Destroy region when needed
using those interfaces.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch extends the MappableTypeInterface to:
- allow genPrivateInit to indicate that a Destroy region will be needed.
- add genPrivateDestroy to generate the destruction code
- Implement both interfaces in FIR
- Update OpenACC lowering to generate the Destroy region when needed
using those interfaces.</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenMP] Introduce omp.target_allocmem and omp.target_freemem omp dialect ops. (#145464)</title>
<updated>2025-08-18T12:45:11+00:00</updated>
<author>
<name>Chaitanya</name>
<email>Krishna.Sankisa@amd.com</email>
</author>
<published>2025-08-18T12:45:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4a3bf27c69473e65a9176858ff57c8b55dfb184c'/>
<id>4a3bf27c69473e65a9176858ff57c8b55dfb184c</id>
<content type='text'>
This PR introduces two new ops in omp dialect, omp.target_allocmem and
omp.target_freemem.
omp.target_allocmem: Allocates heap memory on device. Will be lowered to
omp_target_alloc call in llvm.
omp.target_freemem: Deallocates heap memory on device. Will be lowered
to omp+target_free call in llvm.


Example:
  %1 = omp.target_allocmem %device : i32, i64
  omp.target_freemem %device, %1 : i32, i64

The work in this PR is C-P/inspired from @ivanradanov commit from
coexecute implementation:
[Add fir omp target alloc and free
ops](https://github.com/ivanradanov/llvm-project/commit/be860ac8baf24b8405e6f396c75d7f0d26375de5)
[Lower omp_target_{alloc,free} to
llvm](https://github.com/ivanradanov/llvm-project/commit/6e2d584dc93ff99bb89adc28c7afbc2b21c46d39)</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR introduces two new ops in omp dialect, omp.target_allocmem and
omp.target_freemem.
omp.target_allocmem: Allocates heap memory on device. Will be lowered to
omp_target_alloc call in llvm.
omp.target_freemem: Deallocates heap memory on device. Will be lowered
to omp+target_free call in llvm.


Example:
  %1 = omp.target_allocmem %device : i32, i64
  omp.target_freemem %device, %1 : i32, i64

The work in this PR is C-P/inspired from @ivanradanov commit from
coexecute implementation:
[Add fir omp target alloc and free
ops](https://github.com/ivanradanov/llvm-project/commit/be860ac8baf24b8405e6f396c75d7f0d26375de5)
[Lower omp_target_{alloc,free} to
llvm](https://github.com/ivanradanov/llvm-project/commit/6e2d584dc93ff99bb89adc28c7afbc2b21c46d39)</pre>
</div>
</content>
</entry>
<entry>
<title>Reland "[flang] add extra component information in fir.type_info" (#97404)</title>
<updated>2024-07-02T13:19:49+00:00</updated>
<author>
<name>jeanPerier</name>
<email>jperier@nvidia.com</email>
</author>
<published>2024-07-02T13:19:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=66d5ca2a3d8df780951ce2987157ef03e73393c7'/>
<id>66d5ca2a3d8df780951ce2987157ef03e73393c7</id>
<content type='text'>
Reland #96746 with the proper Support/CMakelist.txt change.

fir.type does not contain all Fortran level information about
components. For instance, component lower bounds and default initial
value are lost. For correctness purpose, this does not matter because
this information is "applied" in lowering (e.g., when addressing the
components, the lower bounds are reflected in the hlfir.designate).

However, this "loss" of information will prevent the generation of
correct debug info for the type (needs to know about lower bounds). The
initial value could help building some optimization pass to get rid of
initialization runtime calls.

This patch adds lower bound and initial value information into
fir.type_info via a new fir.dt_component operation. This operation is
generated only for component that needs it, which helps keeping the IR
small for "boring" types.

In general, adding Fortran level info in fir.type_info will allow
delaying the generation of "type descriptors" gobals that are very
verbose in FIR and make it hard to work with FIR dumps from applications
with many derived types.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reland #96746 with the proper Support/CMakelist.txt change.

fir.type does not contain all Fortran level information about
components. For instance, component lower bounds and default initial
value are lost. For correctness purpose, this does not matter because
this information is "applied" in lowering (e.g., when addressing the
components, the lower bounds are reflected in the hlfir.designate).

However, this "loss" of information will prevent the generation of
correct debug info for the type (needs to know about lower bounds). The
initial value could help building some optimization pass to get rid of
initialization runtime calls.

This patch adds lower bound and initial value information into
fir.type_info via a new fir.dt_component operation. This operation is
generated only for component that needs it, which helps keeping the IR
small for "boring" types.

In general, adding Fortran level info in fir.type_info will allow
delaying the generation of "type descriptors" gobals that are very
verbose in FIR and make it hard to work with FIR dumps from applications
with many derived types.</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[flang] add extra component information in fir.type_info" (#96937)</title>
<updated>2024-06-27T17:22:48+00:00</updated>
<author>
<name>jeanPerier</name>
<email>jperier@nvidia.com</email>
</author>
<published>2024-06-27T17:22:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6a66b8224d8cbdb6156b9a12d9339fee71898941'/>
<id>6a66b8224d8cbdb6156b9a12d9339fee71898941</id>
<content type='text'>
Reverts llvm/llvm-project#96746
Breaking shared library buillds:
https://lab.llvm.org/buildbot/#/builders/89/builds/931</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reverts llvm/llvm-project#96746
Breaking shared library buillds:
https://lab.llvm.org/buildbot/#/builders/89/builds/931</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] add extra component information in fir.type_info (#96746)</title>
<updated>2024-06-27T16:59:03+00:00</updated>
<author>
<name>jeanPerier</name>
<email>jperier@nvidia.com</email>
</author>
<published>2024-06-27T16:59:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1448ed2000ff0be17025dab0aad7412d054425eb'/>
<id>1448ed2000ff0be17025dab0aad7412d054425eb</id>
<content type='text'>
fir.type does not contain all Fortran level information about
components. For instance, component lower bounds and default initial
value are lost. For correctness purpose, this does not matter because
this information is "applied" in lowering (e.g., when addressing the
components, the lower bounds are reflected in the hlfir.designate).

However, this "loss" of information will prevent the generation of
correct debug info for the type (needs to know about lower bounds). The
initial value could help building some optimization pass to get rid of
initialization runtime calls.

This patch adds lower bound and initial value information into
fir.type_info via a new fir.dt_component operation. This operation is
generated only for component that needs it, which helps keeping the IR
small for "boring" types.

In general, adding Fortran level info in fir.type_info will allow
delaying the generation of "type descriptors" gobals that are very
verbose in FIR and make it hard to work with FIR dumps from applications
with many derived types.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
fir.type does not contain all Fortran level information about
components. For instance, component lower bounds and default initial
value are lost. For correctness purpose, this does not matter because
this information is "applied" in lowering (e.g., when addressing the
components, the lower bounds are reflected in the hlfir.designate).

However, this "loss" of information will prevent the generation of
correct debug info for the type (needs to know about lower bounds). The
initial value could help building some optimization pass to get rid of
initialization runtime calls.

This patch adds lower bound and initial value information into
fir.type_info via a new fir.dt_component operation. This operation is
generated only for component that needs it, which helps keeping the IR
small for "boring" types.

In general, adding Fortran level info in fir.type_info will allow
delaying the generation of "type descriptors" gobals that are very
verbose in FIR and make it hard to work with FIR dumps from applications
with many derived types.</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] Remove circular dependency between libFIRSupport and libFIRDialect</title>
<updated>2023-03-08T20:36:32+00:00</updated>
<author>
<name>Renaud-K</name>
<email>rkauffmann@nvidia.com</email>
</author>
<published>2023-03-08T20:21:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=cf2942a12f5ceca9f2bb701e39626fdd3463286b'/>
<id>cf2942a12f5ceca9f2bb701e39626fdd3463286b</id>
<content type='text'>
Differential revision: https://reviews.llvm.org/D145602
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Differential revision: https://reviews.llvm.org/D145602
</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] Moving common polymorphic code into utility files</title>
<updated>2023-03-08T16:23:21+00:00</updated>
<author>
<name>Renaud-K</name>
<email>rkauffmann@nvidia.com</email>
</author>
<published>2023-03-08T00:09:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0538bfe7744ad9a1a4b1ffe5aa5c6466f88aac8f'/>
<id>0538bfe7744ad9a1a4b1ffe5aa5c6466f88aac8f</id>
<content type='text'>
Differential revision: https://reviews.llvm.org/D145530
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Differential revision: https://reviews.llvm.org/D145530
</pre>
</div>
</content>
</entry>
</feed>
