<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/flang/lib/Optimizer/CodeGen/LowerRepackArrays.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] Remove unused local variables (NFC) (#167105)</title>
<updated>2025-11-08T15:40:59+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-11-08T15:40:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ee0652b4da980785f34a35d6a3aedf1c4cb30668'/>
<id>ee0652b4da980785f34a35d6a3aedf1c4cb30668</id>
<content type='text'>
Identified with bugprone-unused-local-non-trivial-variable.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Identified with bugprone-unused-local-non-trivial-variable.</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir][NFC] update `flang/lib` create APIs (12/n) (#149914)</title>
<updated>2025-07-24T23:05:40+00:00</updated>
<author>
<name>Maksim Levental</name>
<email>maksim.levental@gmail.com</email>
</author>
<published>2025-07-24T23:05:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=dcfc853c51aecf6538182378c016f8e1604e7e97'/>
<id>dcfc853c51aecf6538182378c016f8e1604e7e97</id>
<content type='text'>
See https://github.com/llvm/llvm-project/pull/147168 for more info.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
See https://github.com/llvm/llvm-project/pull/147168 for more info.</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] Handle SEQUENCE derived types for array repacking. (#148777)</title>
<updated>2025-07-16T19:11:15+00:00</updated>
<author>
<name>Slava Zakharin</name>
<email>szakharin@nvidia.com</email>
</author>
<published>2025-07-16T19:11:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=bcee18a2e268dd106e4b3c2a1d083a4da21f4f23'/>
<id>bcee18a2e268dd106e4b3c2a1d083a4da21f4f23</id>
<content type='text'>
It is possible that a non-polymorphic dummy argument
has a dynamic type that does not match its static type
in a valid Fortran program, e.g. when the actual and
the dummy arguments have different compatible derived
SEQUENCE types:
module mod
  type t
    sequence
    integer x
  end type
contains
  subroutine test(x)
    type t
      sequence
      integer x
    end type
    type(t) :: x(:)
  end subroutine
end module

'test' may be called with an actual argument of type 'mod::t',
which is the dynamic type of 'x' on entry to 'test'.
If we create the repacking temporary based on the static type of 'x'
('test::t'), then the runtime will report the types mismatch
as an error. Thus, we have to create the temporary using
the dynamic type of 'x'. The fact that the dummy's type
has SEQUENCE or BIND attribute is not easily computable
at this stage, so we use the dynamic type for all derived
type cases. As long as this is done only when the repacking
actually happens, the overhead should not be noticeable.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It is possible that a non-polymorphic dummy argument
has a dynamic type that does not match its static type
in a valid Fortran program, e.g. when the actual and
the dummy arguments have different compatible derived
SEQUENCE types:
module mod
  type t
    sequence
    integer x
  end type
contains
  subroutine test(x)
    type t
      sequence
      integer x
    end type
    type(t) :: x(:)
  end subroutine
end module

'test' may be called with an actual argument of type 'mod::t',
which is the dynamic type of 'x' on entry to 'test'.
If we create the repacking temporary based on the static type of 'x'
('test::t'), then the runtime will report the types mismatch
as an error. Thus, we have to create the temporary using
the dynamic type of 'x'. The fact that the dummy's type
has SEQUENCE or BIND attribute is not easily computable
at this stage, so we use the dynamic type for all derived
type cases. As long as this is done only when the repacking
actually happens, the overhead should not be noticeable.</pre>
</div>
</content>
</entry>
<entry>
<title>[flang][acc][nfc] Move FIROpenACCSupport to Support subfolder (#148710)</title>
<updated>2025-07-14T20:42:20+00:00</updated>
<author>
<name>Razvan Lupusoru</name>
<email>razvan.lupusoru@gmail.com</email>
</author>
<published>2025-07-14T20:42:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=c4fc35815695bc2170be9ffc5a04985f62ff3a1e'/>
<id>c4fc35815695bc2170be9ffc5a04985f62ff3a1e</id>
<content type='text'>
In order to prepare for adding FIROpenACCTransforms, move the FIR
OpenACC support library to its own subfolder.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In order to prepare for adding FIROpenACCTransforms, move the FIR
OpenACC support library to its own subfolder.</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] Set low probability for array repacking code. (#144830)</title>
<updated>2025-06-19T19:12:04+00:00</updated>
<author>
<name>Slava Zakharin</name>
<email>szakharin@nvidia.com</email>
</author>
<published>2025-06-19T19:12:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8631b4f1b4f30edd1f26b20e35b7367517aba359'/>
<id>8631b4f1b4f30edd1f26b20e35b7367517aba359</id>
<content type='text'>
This allows LLVM to place the most probably cold blocks
that do the repacking out of the line of the potentially hot code.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This allows LLVM to place the most probably cold blocks
that do the repacking out of the line of the potentially hot code.</pre>
</div>
</content>
</entry>
<entry>
<title>[flang][hlfir] do not propagate polymorphic temporary as allocatables (#142609)</title>
<updated>2025-06-06T07:53:41+00:00</updated>
<author>
<name>jeanPerier</name>
<email>jperier@nvidia.com</email>
</author>
<published>2025-06-06T07:53:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6a41f53c39cb4a40a9085e26697f3460eb8bedb1'/>
<id>6a41f53c39cb4a40a9085e26697f3460eb8bedb1</id>
<content type='text'>
Polymorphic temporary are currently propagated as
fir.ref&lt;fir.class&lt;fir.heap&lt;&gt;&gt;&gt; because their allocation may be delayed
to the hlfir.assign copy (using realloc).

This patch moves away from this and directly allocate the temp and
propagate it as a fir.class.

The polymorphic temporaries creating is also simplified by avoiding the
need to call the runtime to setup the descriptor altogether (the runtime
is still call for the allocation currently because alloca/allocmem do
not support polymorphism).</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Polymorphic temporary are currently propagated as
fir.ref&lt;fir.class&lt;fir.heap&lt;&gt;&gt;&gt; because their allocation may be delayed
to the hlfir.assign copy (using realloc).

This patch moves away from this and directly allocate the temp and
propagate it as a fir.class.

The polymorphic temporaries creating is also simplified by avoiding the
need to call the runtime to setup the descriptor altogether (the runtime
is still call for the allocation currently because alloca/allocmem do
not support polymorphism).</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir] add a fluent API to GreedyRewriterConfig (#137122)</title>
<updated>2025-04-24T07:51:42+00:00</updated>
<author>
<name>Oleksandr "Alex" Zinenko</name>
<email>git@ozinenko.com</email>
</author>
<published>2025-04-24T07:51:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0c61b24337236a0f67be54c26e12c98e9aecef5b'/>
<id>0c61b24337236a0f67be54c26e12c98e9aecef5b</id>
<content type='text'>
This is similar to other configuration objects used across MLIR.

Rename some fields to better reflect that they are no longer booleans.

Reland 04d261101b4f229189463136a794e3e362a793af / #132253.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is similar to other configuration objects used across MLIR.

Rename some fields to better reflect that they are no longer booleans.

Reland 04d261101b4f229189463136a794e3e362a793af / #132253.</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[mlir] add a fluent API to GreedyRewriterConfig (#132253)"</title>
<updated>2025-04-18T16:40:28+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-04-18T16:40:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4cb9a3700c31357821e192124baeb3a3a35ff93b'/>
<id>4cb9a3700c31357821e192124baeb3a3a35ff93b</id>
<content type='text'>
This reverts commit 63b8f1c9482ed0a964980df4aed89bef922b8078.

Buildbot failure:
https://lab.llvm.org/buildbot/#/builders/172/builds/12083/steps/5/logs/stdio

I've reproduced the error with a release build (-DCMAKE_BUILD_TYPE=Release).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 63b8f1c9482ed0a964980df4aed89bef922b8078.

Buildbot failure:
https://lab.llvm.org/buildbot/#/builders/172/builds/12083/steps/5/logs/stdio

I've reproduced the error with a release build (-DCMAKE_BUILD_TYPE=Release).
</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir] add a fluent API to GreedyRewriterConfig (#132253)</title>
<updated>2025-04-18T13:19:57+00:00</updated>
<author>
<name>Oleksandr "Alex" Zinenko</name>
<email>git@ozinenko.com</email>
</author>
<published>2025-04-18T13:19:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=63b8f1c9482ed0a964980df4aed89bef922b8078'/>
<id>63b8f1c9482ed0a964980df4aed89bef922b8078</id>
<content type='text'>
This is similar to other configuration objects used across MLIR.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is similar to other configuration objects used across MLIR.</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] Defined SafeTempArrayCopyAttrInterface for array repacking. (#134346)</title>
<updated>2025-04-11T01:41:54+00:00</updated>
<author>
<name>Slava Zakharin</name>
<email>szakharin@nvidia.com</email>
</author>
<published>2025-04-11T01:41:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9aff19e7a3ff22ad15dc52609c65c785d4621fca'/>
<id>9aff19e7a3ff22ad15dc52609c65c785d4621fca</id>
<content type='text'>
This patch defines `fir::SafeTempArrayCopyAttrInterface` and the
corresponding
OpenACC/OpenMP related attributes in FIR dialect. The actual
implementations
are just placeholders right now, and array repacking becomes a no-op
if `-fopenacc/-fopenmp` is used for the compilation.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch defines `fir::SafeTempArrayCopyAttrInterface` and the
corresponding
OpenACC/OpenMP related attributes in FIR dialect. The actual
implementations
are just placeholders right now, and array repacking becomes a no-op
if `-fopenacc/-fopenmp` is used for the compilation.</pre>
</div>
</content>
</entry>
</feed>
