<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/flang/lib/Optimizer/CodeGen/Target.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>[OpenMP] Add TargetAMDGPU support for Complex argument and return types (#144924)</title>
<updated>2025-07-16T13:00:06+00:00</updated>
<author>
<name>Akash Banerjee</name>
<email>akash.banerjee@amd.com</email>
</author>
<published>2025-07-16T13:00:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=dbb12109b947995d5882ca521f7b7716d6ac9ae4'/>
<id>dbb12109b947995d5882ca521f7b7716d6ac9ae4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] Use correct int extension flags for C-ABI calls on aarch64 (#137105)</title>
<updated>2025-04-25T13:57:56+00:00</updated>
<author>
<name>Asher Mancinelli</name>
<email>ashermancinelli@gmail.com</email>
</author>
<published>2025-04-25T13:57:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=41f1663f118285e63eaf28c5156af3caa972644f'/>
<id>41f1663f118285e63eaf28c5156af3caa972644f</id>
<content type='text'>
The AArch64 procedure call standard does not mandate that the callee
extends the return value. Clang does not add signext to functions
returning i8 or i16 on linux aarch64, but flang does.

This means that runtime routines returning i8's will have signext on the
callsite/declaration, but not on the implementation, and the call site
will assume the return value has already been sign extended when it has
not. This showed up in a test case calling MINVAL on an array of
INTEGER*1.

Adjust our integer extension flags to match clang and aarch64pcs on
linux. The behavior on Darwin should be preserved. This is listed on the
apple developer guide as a divergence from aarch64pcs.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The AArch64 procedure call standard does not mandate that the callee
extends the return value. Clang does not add signext to functions
returning i8 or i16 on linux aarch64, but flang does.

This means that runtime routines returning i8's will have signext on the
callsite/declaration, but not on the implementation, and the call site
will assume the return value has already been sign extended when it has
not. This showed up in a test case calling MINVAL on an array of
INTEGER*1.

Adjust our integer extension flags to match clang and aarch64pcs on
linux. The behavior on Darwin should be preserved. This is listed on the
apple developer guide as a divergence from aarch64pcs.</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] Add 32-bit AIX target specific in order to build 32-bit flang-rt (#136051)</title>
<updated>2025-04-17T18:26:36+00:00</updated>
<author>
<name>Daniel Chen</name>
<email>cdchen@ca.ibm.com</email>
</author>
<published>2025-04-17T18:26:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e2c382346f3d3e04a784ad69cbe11ec575b26444'/>
<id>e2c382346f3d3e04a784ad69cbe11ec575b26444</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] handle passing bind(c) derived type by value for ppc64le and powerpc64-aix (#128780)</title>
<updated>2025-03-03T19:43:43+00:00</updated>
<author>
<name>Kelvin Li</name>
<email>kkwli@users.noreply.github.com</email>
</author>
<published>2025-03-03T19:43:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=83f87212016c3be50484faee3c744a3417df175f'/>
<id>83f87212016c3be50484faee3c744a3417df175f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] fix AArch64 PCS for struct following pointer (#127802)</title>
<updated>2025-02-21T18:50:52+00:00</updated>
<author>
<name>David Truby</name>
<email>david.truby@arm.com</email>
</author>
<published>2025-02-21T18:50:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=449f84fea652e31de418c3087d7e3628809241b4'/>
<id>449f84fea652e31de418c3087d7e3628809241b4</id>
<content type='text'>
Pointers are already handled as taking up a register in the ABI
handling, but the handling for structs was not taking this into account.
This patch changes the struct handling to acknowledge that pointer
arguments take up an integer register.

Fixes #123075</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pointers are already handled as taking up a register in the ABI
handling, but the handling for structs was not taking this into account.
This patch changes the struct handling to acknowledge that pointer
arguments take up an integer register.

Fixes #123075</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir][IR] Remove factory methods from `FloatType` (#123026)</title>
<updated>2025-01-16T07:56:09+00:00</updated>
<author>
<name>Matthias Springer</name>
<email>me@m-sp.org</email>
</author>
<published>2025-01-16T07:56:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f023da12d12635f5fba436e825cbfc999e28e623'/>
<id>f023da12d12635f5fba436e825cbfc999e28e623</id>
<content type='text'>
This commit removes convenience methods from `FloatType` to make it
independent of concrete interface implementations.

See discussion here:
https://discourse.llvm.org/t/rethink-on-approach-to-low-precision-fp-types/82361

Note for LLVM integration: Replace `FloatType::getF32(` with
`Float32Type::get(` etc.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit removes convenience methods from `FloatType` to make it
independent of concrete interface implementations.

See discussion here:
https://discourse.llvm.org/t/rethink-on-approach-to-low-precision-fp-types/82361

Note for LLVM integration: Replace `FloatType::getF32(` with
`Float32Type::get(` etc.</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] AArch64 ABI for BIND(C) VALUE parameters (#118305)</title>
<updated>2024-12-18T07:43:22+00:00</updated>
<author>
<name>David Truby</name>
<email>david.truby@arm.com</email>
</author>
<published>2024-12-18T07:43:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=44aa476aa1468adbbbca79cc77cfb5905f5fd3d6'/>
<id>44aa476aa1468adbbbca79cc77cfb5905f5fd3d6</id>
<content type='text'>
This patch adds handling for derived type VALUE parameters in BIND(C)
functions for AArch64.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch adds handling for derived type VALUE parameters in BIND(C)
functions for AArch64.</pre>
</div>
</content>
</entry>
<entry>
<title>[flang][fir] fix ABI bug 116844 (#118121)</title>
<updated>2024-12-02T13:45:14+00:00</updated>
<author>
<name>jeanPerier</name>
<email>jperier@nvidia.com</email>
</author>
<published>2024-12-02T13:45:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=cbb49d4be676a251ca140db92aa2788dd5514569'/>
<id>cbb49d4be676a251ca140db92aa2788dd5514569</id>
<content type='text'>
Fix issue #116844.

The issue came from a look-up on the func.func for the sret attribute
when lowering fir.call with character arguments. This was broken because
the func.func may or may not have been rewritten when dealing with the
fir.call, but the lookup assumed it had not been rewritten yet. If the
func.func was rewritten and the result moved to a sret argument, the
call was lowered as if the character was meant to be the result, leading
to bad call code and an assert.

It turns out that the whole logic is actually useless since fir.boxchar
are never lowered as sret arguments, instead, lowering directly breaks
the character result into the first two `fir.ref&lt;&gt;, i64` arguments. So,
the sret case was actually never used, except in this bug.

Hence, instead of fixing the logic (probably by looking for argument
attributes on the call itself), just remove this logic that brings
unnecessary complexity.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix issue #116844.

The issue came from a look-up on the func.func for the sret attribute
when lowering fir.call with character arguments. This was broken because
the func.func may or may not have been rewritten when dealing with the
fir.call, but the lookup assumed it had not been rewritten yet. If the
func.func was rewritten and the result moved to a sret argument, the
call was lowered as if the character was meant to be the result, leading
to bad call code and an assert.

It turns out that the whole logic is actually useless since fir.boxchar
are never lowered as sret arguments, instead, lowering directly breaks
the character result into the first two `fir.ref&lt;&gt;, i64` arguments. So,
the sret case was actually never used, except in this bug.

Hence, instead of fixing the logic (probably by looking for argument
attributes on the call itself), just remove this logic that brings
unnecessary complexity.</pre>
</div>
</content>
</entry>
<entry>
<title>[Flang] LoongArch64 support for BIND(C) derived types in mabi=lp64d. (#117108)</title>
<updated>2024-11-29T03:50:28+00:00</updated>
<author>
<name>Zhaoxin Yang</name>
<email>yangzhaoxin@loongson.cn</email>
</author>
<published>2024-11-29T03:50:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=dab9fa2d7f3b3092d4ab0c815868ec68a968a31a'/>
<id>dab9fa2d7f3b3092d4ab0c815868ec68a968a31a</id>
<content type='text'>
This patch:
- Supports both the passing and returning of BIND(C) type parameters.
- Adds `mabi` check for LoongArch64. Currently, flang only supports
`mabi=` option
set to `lp64d` in LoongArch64, other ABIs will report an error and may
be supported
  in the future.

Reference ABI:

https://github.com/loongson/la-abi-specs/blob/release/lapcs.adoc#subroutine-calling-sequence</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch:
- Supports both the passing and returning of BIND(C) type parameters.
- Adds `mabi` check for LoongArch64. Currently, flang only supports
`mabi=` option
set to `lp64d` in LoongArch64, other ABIs will report an error and may
be supported
  in the future.

Reference ABI:

https://github.com/loongson/la-abi-specs/blob/release/lapcs.adoc#subroutine-calling-sequence</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] AArch64 support for BIND(C) derived return types (#114051)</title>
<updated>2024-11-25T14:36:53+00:00</updated>
<author>
<name>David Truby</name>
<email>david.truby@arm.com</email>
</author>
<published>2024-11-25T14:36:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=2d62daab497bfe1991869dc090c7d20a71108360'/>
<id>2d62daab497bfe1991869dc090c7d20a71108360</id>
<content type='text'>
This patch adds support for BIND(C) derived types as return values
matching the AArch64 Procedure Call Standard for C.

Support for BIND(C) derived types as value parameters will be in a
separate patch.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch adds support for BIND(C) derived types as return values
matching the AArch64 Procedure Call Standard for C.

Support for BIND(C) derived types as value parameters will be in a
separate patch.</pre>
</div>
</content>
</entry>
</feed>
