<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/flang/test/Lower/array-substring.f90, branch users/chapuni/cov/single/switch</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] Canonicalize redundant pointer converts. (#121864)</title>
<updated>2025-01-07T16:35:43+00:00</updated>
<author>
<name>Slava Zakharin</name>
<email>szakharin@nvidia.com</email>
</author>
<published>2025-01-07T16:35:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=2e637dbbb8bc9a41f8eabd1df347ca2559b1abd7'/>
<id>2e637dbbb8bc9a41f8eabd1df347ca2559b1abd7</id>
<content type='text'>
This patch adds a canonicalization pattern for optimizing redundant
"pointer" fir.converts. Such converts prevent the StackArrays pass
to recognize fir.freemem for the corresponding fir.allocmem, e.g.:
```
    %69 = fir.allocmem !fir.array&lt;2xi32&gt;
    %71:2 = hlfir.declare %69(%70) {uniq_name = ".tmp.arrayctor"} :
        (!fir.heap&lt;!fir.array&lt;2xi32&gt;&gt;, !fir.shape&lt;1&gt;) -&gt;
        (!fir.heap&lt;!fir.array&lt;2xi32&gt;&gt;, !fir.heap&lt;!fir.array&lt;2xi32&gt;&gt;)
    %95 = fir.convert %71#1 :
        (!fir.heap&lt;!fir.array&lt;2xi32&gt;&gt;) -&gt; !fir.ref&lt;!fir.array&lt;2xi32&gt;&gt;
    %100 = fir.convert %95 :
        (!fir.ref&lt;!fir.array&lt;2xi32&gt;&gt;) -&gt; !fir.heap&lt;!fir.array&lt;2xi32&gt;&gt;
    fir.freemem %100 : !fir.heap&lt;!fir.array&lt;2xi32&gt;&gt;
```
I found this in `tonto`, but the change does not affect performance at all.
Anyway, it looks like a reasonable thing to do, and it makes easier
to compare the performance profiles with other compilers'.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch adds a canonicalization pattern for optimizing redundant
"pointer" fir.converts. Such converts prevent the StackArrays pass
to recognize fir.freemem for the corresponding fir.allocmem, e.g.:
```
    %69 = fir.allocmem !fir.array&lt;2xi32&gt;
    %71:2 = hlfir.declare %69(%70) {uniq_name = ".tmp.arrayctor"} :
        (!fir.heap&lt;!fir.array&lt;2xi32&gt;&gt;, !fir.shape&lt;1&gt;) -&gt;
        (!fir.heap&lt;!fir.array&lt;2xi32&gt;&gt;, !fir.heap&lt;!fir.array&lt;2xi32&gt;&gt;)
    %95 = fir.convert %71#1 :
        (!fir.heap&lt;!fir.array&lt;2xi32&gt;&gt;) -&gt; !fir.ref&lt;!fir.array&lt;2xi32&gt;&gt;
    %100 = fir.convert %95 :
        (!fir.ref&lt;!fir.array&lt;2xi32&gt;&gt;) -&gt; !fir.heap&lt;!fir.array&lt;2xi32&gt;&gt;
    fir.freemem %100 : !fir.heap&lt;!fir.array&lt;2xi32&gt;&gt;
```
I found this in `tonto`, but the change does not affect performance at all.
Anyway, it looks like a reasonable thing to do, and it makes easier
to compare the performance profiles with other compilers'.</pre>
</div>
</content>
</entry>
<entry>
<title>Reland "[flang] Integrate the option -flang-experimental-integer-overflow into -fno-wrapv" (#118933)</title>
<updated>2024-12-10T07:26:53+00:00</updated>
<author>
<name>Yusuke MINATO</name>
<email>minato.yusuke@fujitsu.com</email>
</author>
<published>2024-12-10T07:26:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a88677edc0792534ba3157bf7d7a1b98e470f2fb'/>
<id>a88677edc0792534ba3157bf7d7a1b98e470f2fb</id>
<content type='text'>
This relands #110063.
The performance issue on 503.bwaves_r is found not to be related to the
patch, and is resolved by fbd89bcc when LTO is enabled.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This relands #110063.
The performance issue on 503.bwaves_r is found not to be related to the
patch, and is resolved by fbd89bcc when LTO is enabled.</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[flang] Integrate the option -flang-experimental-integer-overflow into -fno-wrapv" (#113901)</title>
<updated>2024-10-28T14:19:20+00:00</updated>
<author>
<name>Yusuke MINATO</name>
<email>minato.yusuke@fujitsu.com</email>
</author>
<published>2024-10-28T14:19:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=bd6ab32e6eb642f2b0b15be8c7c2a668192f07d8'/>
<id>bd6ab32e6eb642f2b0b15be8c7c2a668192f07d8</id>
<content type='text'>
Reverts llvm/llvm-project#110063 due to the performance regression on
503.bwaves_r in SPEC2017.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reverts llvm/llvm-project#110063 due to the performance regression on
503.bwaves_r in SPEC2017.</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] Integrate the option -flang-experimental-integer-overflow into -fno-wrapv (#110063)</title>
<updated>2024-10-25T06:20:23+00:00</updated>
<author>
<name>Yusuke MINATO</name>
<email>minato.yusuke@fujitsu.com</email>
</author>
<published>2024-10-25T06:20:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=96bb375f5cedcfcc5dcd96296ba54ff933b39d4d'/>
<id>96bb375f5cedcfcc5dcd96296ba54ff933b39d4d</id>
<content type='text'>
nsw is now added to do-variable increment when -fno-wrapv is enabled as
GFortran seems to do.
That means the option introduced by #91579 isn't necessary any more.

Note that the feature of -flang-experimental-integer-overflow is enabled
by default.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
nsw is now added to do-variable increment when -fno-wrapv is enabled as
GFortran seems to do.
That means the option introduced by #91579 isn't necessary any more.

Note that the feature of -flang-experimental-integer-overflow is enabled
by default.</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] Add nsw flag to do-variable increment with a new option (#91579)</title>
<updated>2024-05-16T04:16:07+00:00</updated>
<author>
<name>Yusuke MINATO</name>
<email>minato.yusuke@fujitsu.com</email>
</author>
<published>2024-05-16T04:16:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=526553b25131a69d9d6426e17c7b69c2ba27144f'/>
<id>526553b25131a69d9d6426e17c7b69c2ba27144f</id>
<content type='text'>
This patch adds nsw flag to the increment of do-variables when a new
option is enabled.
NOTE 11.10 in the Fortran 2018 standard says they never overflow.

See also the discussion in #74709 and the following discourse post.
https://discourse.llvm.org/t/rfc-add-nsw-flags-to-arithmetic-integer-operations-using-the-option-fno-wrapv/77584/5</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch adds nsw flag to the increment of do-variables when a new
option is enabled.
NOTE 11.10 in the Fortran 2018 standard says they never overflow.

See also the discussion in #74709 and the following discourse post.
https://discourse.llvm.org/t/rfc-add-nsw-flags-to-arithmetic-integer-operations-using-the-option-fno-wrapv/77584/5</pre>
</div>
</content>
</entry>
<entry>
<title>[flang][NFC] Use hlfir=false and flang-deprecated-no-hlfir in legacy tests (#71957)</title>
<updated>2023-11-13T08:14:05+00:00</updated>
<author>
<name>jeanPerier</name>
<email>jperier@nvidia.com</email>
</author>
<published>2023-11-13T08:14:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f35f863a88f83332bef9605ef4cfe4f05c066efb'/>
<id>f35f863a88f83332bef9605ef4cfe4f05c066efb</id>
<content type='text'>
Patch 2/3 of the transition step 1 described in

https://discourse.llvm.org/t/rfc-enabling-the-hlfir-lowering-by-default/72778/7.

All the modified tests are still here since coverage for the direct
lowering to FIR was still needed while it was default. Some already have
an HLFIR version, some have not and will need to be ported in step 2
described in the RFC.

Note that another 147 lit tests use -emit-fir/-emit-llvm outputs but do
not need a flag since the HLFIR/no HLFIR output is the same for what is
being tested.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Patch 2/3 of the transition step 1 described in

https://discourse.llvm.org/t/rfc-enabling-the-hlfir-lowering-by-default/72778/7.

All the modified tests are still here since coverage for the direct
lowering to FIR was still needed while it was default. Some already have
an HLFIR version, some have not and will need to be ported in step 2
described in the RFC.

Note that another 147 lit tests use -emit-fir/-emit-llvm outputs but do
not need a flag since the HLFIR/no HLFIR output is the same for what is
being tested.</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] Set default to -ffpcontract=fast</title>
<updated>2022-11-17T15:49:51+00:00</updated>
<author>
<name>Tom Eccles</name>
<email>tom.eccles@arm.com</email>
</author>
<published>2022-11-11T20:00:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4cc9437a7e649e2d1a1a47578f6ffb4d420b8d60'/>
<id>4cc9437a7e649e2d1a1a47578f6ffb4d420b8d60</id>
<content type='text'>
Following RFC at
https://discourse.llvm.org/t/rfc-ffp-contract-default-value/66301

This adds the `fastmath&lt;contract&gt;` attribute to `fir.call` and some
floating point arithmetic operations (hence the many test changes).
Instead of testing for this specific attribute, I am using a regular
expression to match any attributes.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Following RFC at
https://discourse.llvm.org/t/rfc-ffp-contract-default-value/66301

This adds the `fastmath&lt;contract&gt;` attribute to `fir.call` and some
floating point arithmetic operations (hence the many test changes).
Instead of testing for this specific attribute, I am using a regular
expression to match any attributes.
</pre>
</div>
</content>
</entry>
<entry>
<title>[flang][NFC] move constant lowering into its own unit</title>
<updated>2022-10-31T14:37:38+00:00</updated>
<author>
<name>Jean Perier</name>
<email>jperier@nvidia.com</email>
</author>
<published>2022-10-31T14:32:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=af91b19338dde956ce7ebd6890d1a8e4295b091b'/>
<id>af91b19338dde956ce7ebd6890d1a8e4295b091b</id>
<content type='text'>
This patch moves intrinsic evaluate::Constant&lt;T&gt; lowering into its own
unit outside of ScalarExpr and genarr lowering so that it can
be used by the new lowering without any changes.

DerivedType lowering cannot be shared at that stage because it is too
correlated with the current lowering (requires structure constructor
and designator lowering).

The code had to be refactored quite a bit so that it could be carved
out, but the only "functional" change is that the length of character
arrays lowered by genarr is now `index` instead of `i64` (see test change).
One non-functional benefit of the change is that `toEvExpr` is not
needed anymore and some compile time copies of big constant arrays
that it was causing are removed (see old calls in previous genarr code),
although I am not sure any compile time speed-ups are visible here.

Differential Revision: https://reviews.llvm.org/D136955
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch moves intrinsic evaluate::Constant&lt;T&gt; lowering into its own
unit outside of ScalarExpr and genarr lowering so that it can
be used by the new lowering without any changes.

DerivedType lowering cannot be shared at that stage because it is too
correlated with the current lowering (requires structure constructor
and designator lowering).

The code had to be refactored quite a bit so that it could be carved
out, but the only "functional" change is that the length of character
arrays lowered by genarr is now `index` instead of `i64` (see test change).
One non-functional benefit of the change is that `toEvExpr` is not
needed anymore and some compile time copies of big constant arrays
that it was causing are removed (see old calls in previous genarr code),
although I am not sure any compile time speed-ups are visible here.

Differential Revision: https://reviews.llvm.org/D136955
</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] Add lowering tests</title>
<updated>2022-06-28T13:22:21+00:00</updated>
<author>
<name>Valentin Clement</name>
<email>clementval@gmail.com</email>
</author>
<published>2022-06-28T13:21:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=3348c08359d39b4903f13be7e1bfa32dc27f748e'/>
<id>3348c08359d39b4903f13be7e1bfa32dc27f748e</id>
<content type='text'>
Add lowering tests left behind during the upstreaming.

This patch is part of the upstreaming effort from fir-dev branch.

Reviewed By: jeanPerier

Differential Revision: https://reviews.llvm.org/D128721

Co-authored-by: Jean Perier &lt;jperier@nvidia.com&gt;
Co-authored-by: Eric Schweitz &lt;eschweitz@nvidia.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add lowering tests left behind during the upstreaming.

This patch is part of the upstreaming effort from fir-dev branch.

Reviewed By: jeanPerier

Differential Revision: https://reviews.llvm.org/D128721

Co-authored-by: Jean Perier &lt;jperier@nvidia.com&gt;
Co-authored-by: Eric Schweitz &lt;eschweitz@nvidia.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
