<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/flang, branch users/boomanaiden154/main.lit-remove-python-27-code-paths-in-builtin-diff</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][Test] Attempt to fix target-private-implicit-scalar-map-2.f90 for SLES builds</title>
<updated>2025-09-08T19:01:22+00:00</updated>
<author>
<name>agozillon</name>
<email>Andrew.Gozillon@amd.com</email>
</author>
<published>2025-09-08T18:53:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e9f5a43d484b6955a95bd9187d16c196b8b3653c'/>
<id>e9f5a43d484b6955a95bd9187d16c196b8b3653c</id>
<content type='text'>
Attempt to fix the Flang test target-private-implicit-scalar-map-2.f90 for SLES builds
as it is currently failing on the openmp-offload-sles-build-only bot, but seems fine
everywhere else so far.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Attempt to fix the Flang test target-private-implicit-scalar-map-2.f90 for SLES builds
as it is currently failing on the openmp-offload-sles-build-only bot, but seems fine
everywhere else so far.
</pre>
</div>
</content>
</entry>
<entry>
<title>[Flang][OpenMP] Fix default firstprivatization miscategorization of mod file symbols (#157009)</title>
<updated>2025-09-08T16:52:59+00:00</updated>
<author>
<name>agozillon</name>
<email>Andrew.Gozillon@amd.com</email>
</author>
<published>2025-09-08T16:52:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=262e994c8b1640a13819ca3d1de82dab300e1771'/>
<id>262e994c8b1640a13819ca3d1de82dab300e1771</id>
<content type='text'>
In at least certain cases, notably when equivalence is used (at least
for the example this showed up as a problem in) we currently
miscategorize symbols as firstprivate when they may not be, as they can
throw a false positive when a use symbol from a mod file is picked up.

The fix to this is to chase up the appropriate symbol to access the
correct details.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In at least certain cases, notably when equivalence is used (at least
for the example this showed up as a problem in) we currently
miscategorize symbols as firstprivate when they may not be, as they can
throw a false positive when a use symbol from a mod file is picked up.

The fix to this is to chase up the appropriate symbol to access the
correct details.</pre>
</div>
</content>
</entry>
<entry>
<title>Mark test in optimization-remark.f90 as UNSUPPORTED on RISC-V (#157036)</title>
<updated>2025-09-08T16:36:13+00:00</updated>
<author>
<name>julianmorillo</name>
<email>julianmorillo@users.noreply.github.com</email>
</author>
<published>2025-09-08T16:36:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f1fa037e2c1b13b0c5755b16d438f78d52b519ac'/>
<id>f1fa037e2c1b13b0c5755b16d438f78d52b519ac</id>
<content type='text'>
Make the test more tolerant (needed for RISC-V, as this target is not
expected to emit optimization remarks)</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Make the test more tolerant (needed for RISC-V, as this target is not
expected to emit optimization remarks)</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] do not rely on existing fir.convert in TargetRewrite (#157413)</title>
<updated>2025-09-08T15:22:25+00:00</updated>
<author>
<name>jeanPerier</name>
<email>jperier@nvidia.com</email>
</author>
<published>2025-09-08T15:22:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=3beec2f6875a9a41c4010db7d3ace5acdad48e5d'/>
<id>3beec2f6875a9a41c4010db7d3ace5acdad48e5d</id>
<content type='text'>
TargetRewrite is doing a shallow rewrite of function signatures. It is
only rewriting function definitions (FuncOp), calls (CallOp) and
AddressOfOp. It is not trying to visit each operations that may have an
operand with a function type.
It therefore needs function signature casts around the operations it is
rewriting.

Currently, these casts were not inserted after AddressOfOp rewrites
because lowering tends to always insert function cast after generating
AddressOfOp to the void type so the pass relied on implicitly updating
this cast operand type to get the required cast. This is brittle because
there is no guarantee such convert must be here and canonicalization and
passes may remove them.

Insert a cast after on the result of rewritten operations. If it is
redundant, it will be canonicalized away later.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
TargetRewrite is doing a shallow rewrite of function signatures. It is
only rewriting function definitions (FuncOp), calls (CallOp) and
AddressOfOp. It is not trying to visit each operations that may have an
operand with a function type.
It therefore needs function signature casts around the operations it is
rewriting.

Currently, these casts were not inserted after AddressOfOp rewrites
because lowering tends to always insert function cast after generating
AddressOfOp to the void type so the pass relied on implicitly updating
this cast operand type to get the required cast. This is brittle because
there is no guarantee such convert must be here and canonicalization and
passes may remove them.

Insert a cast after on the result of rewritten operations. If it is
redundant, it will be canonicalized away later.</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC][flang][OpenMP] Extract target region utils to map or clone outside values (#155754)</title>
<updated>2025-09-08T12:33:00+00:00</updated>
<author>
<name>Kareem Ergawy</name>
<email>kareem.ergawy@amd.com</email>
</author>
<published>2025-09-08T12:33:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=c85e6ac74d7ccb36dfaaf94989f27c22cf5c7e7c'/>
<id>c85e6ac74d7ccb36dfaaf94989f27c22cf5c7e7c</id>
<content type='text'>
Following up on #154483, this PR introduces further refactoring to
extract some shared utils between OpenMP lowering and `do concurrent`
conversion pass. In particular, this PR extracts 2 utils that handle
mapping or cloning values used inside target regions but defined
outside.

Later `do concurrent` PR(s) will also use these utils.

PR stack:
- https://github.com/llvm/llvm-project/pull/155754 ◀️
- https://github.com/llvm/llvm-project/pull/155987
- https://github.com/llvm/llvm-project/pull/155992
- https://github.com/llvm/llvm-project/pull/155993
- https://github.com/llvm/llvm-project/pull/156589
- https://github.com/llvm/llvm-project/pull/156610
- https://github.com/llvm/llvm-project/pull/156837</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Following up on #154483, this PR introduces further refactoring to
extract some shared utils between OpenMP lowering and `do concurrent`
conversion pass. In particular, this PR extracts 2 utils that handle
mapping or cloning values used inside target regions but defined
outside.

Later `do concurrent` PR(s) will also use these utils.

PR stack:
- https://github.com/llvm/llvm-project/pull/155754 ◀️
- https://github.com/llvm/llvm-project/pull/155987
- https://github.com/llvm/llvm-project/pull/155992
- https://github.com/llvm/llvm-project/pull/155993
- https://github.com/llvm/llvm-project/pull/156589
- https://github.com/llvm/llvm-project/pull/156610
- https://github.com/llvm/llvm-project/pull/156837</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] add missing header include after 156661 (#157431)</title>
<updated>2025-09-08T12:31:47+00:00</updated>
<author>
<name>jeanPerier</name>
<email>jperier@nvidia.com</email>
</author>
<published>2025-09-08T12:31:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e93baad414fd25dbca26b0de2f0cb4e2878eebb9'/>
<id>e93baad414fd25dbca26b0de2f0cb4e2878eebb9</id>
<content type='text'>
There is a missing header dependency in #156661.

https://lab.llvm.org/buildbot/#/builders/207/builds/6634</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There is a missing header dependency in #156661.

https://lab.llvm.org/buildbot/#/builders/207/builds/6634</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] Fix lowering of unused dummy procedure pointers (#155649)</title>
<updated>2025-09-08T11:39:07+00:00</updated>
<author>
<name>Leandro Lupori</name>
<email>leandro.lupori@linaro.org</email>
</author>
<published>2025-09-08T11:39:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=3dc314b8519099b1da43d01302d3d1710a6ccb3c'/>
<id>3dc314b8519099b1da43d01302d3d1710a6ccb3c</id>
<content type='text'>
Fixes #126453</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes #126453</pre>
</div>
</content>
</entry>
<entry>
<title>[flang][lowering] fix vector subscripts in character elemental procedures (#156661)</title>
<updated>2025-09-08T10:07:37+00:00</updated>
<author>
<name>jeanPerier</name>
<email>jperier@nvidia.com</email>
</author>
<published>2025-09-08T10:07:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a103b9b207f67e0afbaf41647a56a4cb716414c6'/>
<id>a103b9b207f67e0afbaf41647a56a4cb716414c6</id>
<content type='text'>
Fixes https://github.com/llvm/llvm-project/issues/145151

Character elemental procedures require evaluating the result
specification expression outside of the elemental loops when the
function result length is not a constant. This is needed so that the
array result storage can be allocated before the evaluation if a storage
is needed.

Because the result specification expression may depend on inquires about
the dummy argument (but not usages of values thanks to F2023 C15121),
some representation of the dummy must be created. Since this is an
elemental call, this requires providing an element, and not the whole
array actual argument (we only care about the properties of such element
it does not matter which element is being used).

The previous code was creating the element with a type cast from the
base array, but this did not work with vector subscripted arrays where
the lowering representation is more complex. This caused a compiler
assert to fire.

Switch the code to only copy the properties that can be inquired from
the actual argument to the mock dummy (length parameters, dynamic type
and presence). A mock one address is used instead of addressing the
actual argument before the loop (one is used instead of NULL so that
presence inquiry will work as expected for OPTIONAL arguments).</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes https://github.com/llvm/llvm-project/issues/145151

Character elemental procedures require evaluating the result
specification expression outside of the elemental loops when the
function result length is not a constant. This is needed so that the
array result storage can be allocated before the evaluation if a storage
is needed.

Because the result specification expression may depend on inquires about
the dummy argument (but not usages of values thanks to F2023 C15121),
some representation of the dummy must be created. Since this is an
elemental call, this requires providing an element, and not the whole
array actual argument (we only care about the properties of such element
it does not matter which element is being used).

The previous code was creating the element with a type cast from the
base array, but this did not work with vector subscripted arrays where
the lowering representation is more complex. This caused a compiler
assert to fire.

Switch the code to only copy the properties that can be inquired from
the actual argument to the mock dummy (length parameters, dynamic type
and presence). A mock one address is used instead of addressing the
actual argument before the loop (one is used instead of NULL so that
presence inquiry will work as expected for OPTIONAL arguments).</pre>
</div>
</content>
</entry>
<entry>
<title>[flang][FIR] enable fir.box_addr codegen inside fir.global (#157120)</title>
<updated>2025-09-08T08:15:22+00:00</updated>
<author>
<name>jeanPerier</name>
<email>jperier@nvidia.com</email>
</author>
<published>2025-09-08T08:15:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=355dbbc37c7221b5c8d55278b021b8b60c19ff2d'/>
<id>355dbbc37c7221b5c8d55278b021b8b60c19ff2d</id>
<content type='text'>
FIR lowering of the fir.box type inside fir.global is special (it is an
actual descriptor struct value instead of being a descriptor in memory)
and causes builtin.unrealized_conversion_cast to be inserted under the
hood by MLIR dialect conversion framework after each operation producing
a fir.box is translated. These builtin.unrealized_conversion_cast must
be removed before the code generation of operation of using the fir.box
in order to get the right "by value" code generation required in global
initial value definitions.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
FIR lowering of the fir.box type inside fir.global is special (it is an
actual descriptor struct value instead of being a descriptor in memory)
and causes builtin.unrealized_conversion_cast to be inserted under the
hood by MLIR dialect conversion framework after each operation producing
a fir.box is translated. These builtin.unrealized_conversion_cast must
be removed before the code generation of operation of using the fir.box
in order to get the right "by value" code generation required in global
initial value definitions.</pre>
</div>
</content>
</entry>
<entry>
<title>[flang][acc] honor reduction clause's implied copy attribute (#156982)</title>
<updated>2025-09-06T15:30:08+00:00</updated>
<author>
<name>Andre Kuhlenschmidt</name>
<email>andre.kuhlenschmidt@gmail.com</email>
</author>
<published>2025-09-06T15:30:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=fb4d72e2bc6b7068e887573869274d9eddada54a'/>
<id>fb4d72e2bc6b7068e887573869274d9eddada54a</id>
<content type='text'>
The Open ACC spec states that the reduction clause implies the copy
clause. Account for this in the check for `default(none)` variables. Add
a test that shouldn't error, but did before this PR.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The Open ACC spec states that the reduction clause implies the copy
clause. Account for this in the check for `default(none)` variables. Add
a test that shouldn't error, but did before this PR.</pre>
</div>
</content>
</entry>
</feed>
