<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/llvm.git/flang/runtime/transformational.cpp, branch EmptyLineAfterFunctionDefinition</title>
<subtitle>github.com: llvm/llvm-project.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/'/>
<entry>
<title>[flang] Fix ORDER= argument to RESHAPE</title>
<updated>2021-11-12T18:25:00+00:00</updated>
<author>
<name>Peter Klausler</name>
<email>pklausler@nvidia.com</email>
</author>
<published>2021-11-10T23:49:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=85ec449352fb809e42e3e14dd10152cbdf8b5945'/>
<id>85ec449352fb809e42e3e14dd10152cbdf8b5945</id>
<content type='text'>
The ORDER= argument to the transformational intrinsic function RESHAPE
was being misinterpreted in an inverted way that could be detected only
with 3-d or higher rank array.  Fix in both folding and the runtime, and
extend tests.

Differential Revision: https://reviews.llvm.org/D113699
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The ORDER= argument to the transformational intrinsic function RESHAPE
was being misinterpreted in an inverted way that could be detected only
with 3-d or higher rank array.  Fix in both folding and the runtime, and
extend tests.

Differential Revision: https://reviews.llvm.org/D113699
</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] Fix vector cshift runtime with non zero lower bounds</title>
<updated>2021-11-12T08:26:08+00:00</updated>
<author>
<name>Jean Perier</name>
<email>jperier@nvidia.com</email>
</author>
<published>2021-11-12T08:25:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=6544d9a4a098c24ebafe2856259f927af8f211ec'/>
<id>6544d9a4a098c24ebafe2856259f927af8f211ec</id>
<content type='text'>
The source index should not be compared to zero after applying the
shift with the modulo, it must be compared to the lower bound.
Otherwise, the extent is not added in case it should and the computed
source index may be less than the lower bound, causing invalid results.

Differential Revision: https://reviews.llvm.org/D113659
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The source index should not be compared to zero after applying the
shift with the modulo, it must be compared to the lower bound.
Otherwise, the extent is not added in case it should and the computed
source index may be less than the lower bound, causing invalid results.

Differential Revision: https://reviews.llvm.org/D113659
</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] Move runtime API headers to flang/include/flang/Runtime</title>
<updated>2021-09-03T18:08:34+00:00</updated>
<author>
<name>Peter Klausler</name>
<email>pklausler@nvidia.com</email>
</author>
<published>2021-09-01T23:00:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=830c0b9023cd0cf91955900e0d96283e7a8c3711'/>
<id>830c0b9023cd0cf91955900e0d96283e7a8c3711</id>
<content type='text'>
Move the closure of the subset of flang/runtime/*.h header files that
are referenced by source files outside flang/runtime (apart from unit tests)
into a new directory (flang/include/flang/Runtime) so that relative
include paths into ../runtime need not be used.

flang/runtime/pgmath.h.inc is moved to flang/include/flang/Evaluate;
it's not used by the runtime.

Differential Revision: https://reviews.llvm.org/D109107
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Move the closure of the subset of flang/runtime/*.h header files that
are referenced by source files outside flang/runtime (apart from unit tests)
into a new directory (flang/include/flang/Runtime) so that relative
include paths into ../runtime need not be used.

flang/runtime/pgmath.h.inc is moved to flang/include/flang/Evaluate;
it's not used by the runtime.

Differential Revision: https://reviews.llvm.org/D109107
</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] Fix the vector version of EOSHIFT with a BOUNDARY argument</title>
<updated>2021-08-17T22:20:15+00:00</updated>
<author>
<name>Peter Steinfeld</name>
<email>psteinfeld@nvidia.com</email>
</author>
<published>2021-08-17T21:57:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=b8ecdcdd817cfe8ef187503726400971357c6854'/>
<id>b8ecdcdd817cfe8ef187503726400971357c6854</id>
<content type='text'>
When the vector version of EOSHIFT was called, the BOUNDARY argument was being
ignored.  I fixed that and added a test that would not pass without this fix.

Differential Revision: https://reviews.llvm.org/D108249
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When the vector version of EOSHIFT was called, the BOUNDARY argument was being
ignored.  I fixed that and added a test that would not pass without this fix.

Differential Revision: https://reviews.llvm.org/D108249
</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] Implement the runtime portion of the CSHIFT intrinsic</title>
<updated>2021-07-21T20:39:21+00:00</updated>
<author>
<name>Peter Steinfeld</name>
<email>psteinfeld@nvidia.com</email>
</author>
<published>2021-07-19T18:22:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=7898e7c82d98fabc8c87a5b7b4a4f7786df69314'/>
<id>7898e7c82d98fabc8c87a5b7b4a4f7786df69314</id>
<content type='text'>
This change fixes a bug in  the runtime portion of the CSHIFT intrinsic
that happens when the value of the SHIFT argument is negative.

Differential Revision: https://reviews.llvm.org/D106292
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change fixes a bug in  the runtime portion of the CSHIFT intrinsic
that happens when the value of the SHIFT argument is negative.

Differential Revision: https://reviews.llvm.org/D106292
</pre>
</div>
</content>
</entry>
<entry>
<title>Change the flang reshape runtime routine interface to use a result</title>
<updated>2021-06-25T00:05:12+00:00</updated>
<author>
<name>Mark Leair</name>
<email>leairmark@gmail.com</email>
</author>
<published>2021-06-24T23:55:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=a1034022888cadca5f2a4700f60beda4f7053c08'/>
<id>a1034022888cadca5f2a4700f60beda4f7053c08</id>
<content type='text'>
argument instead of a result result object.

Change the reshape flang unit test to use the new interface. Also, add an
order argument to exercise the order subscript code in the rehsape runtime
routine.

Differential Revision: https://reviews.llvm.org/D104586
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
argument instead of a result result object.

Change the reshape flang unit test to use the new interface. Also, add an
order argument to exercise the order subscript code in the rehsape runtime
routine.

Differential Revision: https://reviews.llvm.org/D104586
</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] Correct the subscripts used for arguments to character intrinsics</title>
<updated>2021-06-16T17:26:25+00:00</updated>
<author>
<name>peter klausler</name>
<email>pklausler@nvidia.com</email>
</author>
<published>2021-06-15T22:09:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=8ba9ee46e465a56a54f8361703d3af7f4bc98d63'/>
<id>8ba9ee46e465a56a54f8361703d3af7f4bc98d63</id>
<content type='text'>
When chasing down another unrelated bug, I noticed that the
implementations of various character intrinsic functions assume
that the lower bounds of (some of) their arguments were 1.
This isn't necessarily the case, so I've cleaned them up, tweaked
the unit tests to exercise the fix, and regularized the allocation
pattern used for results to use SetBounds() before Allocate() rather
than the old original Descriptor::Allocate() wrapper around
CFI_allocate().

Since there were few other remaining uses of the old original
Descriptor::Allocate() wrapper, I also converted them to the
new one and deleted the old one.

Differential Revision: https://reviews.llvm.org/D104325
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When chasing down another unrelated bug, I noticed that the
implementations of various character intrinsic functions assume
that the lower bounds of (some of) their arguments were 1.
This isn't necessarily the case, so I've cleaned them up, tweaked
the unit tests to exercise the fix, and regularized the allocation
pattern used for results to use SetBounds() before Allocate() rather
than the old original Descriptor::Allocate() wrapper around
CFI_allocate().

Since there were few other remaining uses of the old original
Descriptor::Allocate() wrapper, I also converted them to the
new one and deleted the old one.

Differential Revision: https://reviews.llvm.org/D104325
</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] Remove unused variable</title>
<updated>2021-05-20T21:08:43+00:00</updated>
<author>
<name>peter klausler</name>
<email>pklausler@nvidia.com</email>
</author>
<published>2021-05-20T21:04:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=27c3db32c033663dbdfa8b92ed962a990b99f21e'/>
<id>27c3db32c033663dbdfa8b92ed962a990b99f21e</id>
<content type='text'>
Fixes the clang build of flang/runtime/transformational.cpp.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes the clang build of flang/runtime/transformational.cpp.
</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] Fix broken build of flang with clang</title>
<updated>2021-05-20T20:49:31+00:00</updated>
<author>
<name>peter klausler</name>
<email>pklausler@nvidia.com</email>
</author>
<published>2021-05-20T20:49:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=854367240d62802a547d25fb6027b2c3956e8cbf'/>
<id>854367240d62802a547d25fb6027b2c3956e8cbf</id>
<content type='text'>
A recent commit (e00a170) inadvertently exposed the Reshape runtime
function as being extern "C", for which it is not yet ready, leading
to a valid warning from clang that we treat as an error.  Patch.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A recent commit (e00a170) inadvertently exposed the Reshape runtime
function as being extern "C", for which it is not yet ready, leading
to a valid warning from clang that we treat as an error.  Patch.
</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] Implement more transformational intrinsic functions in runtime</title>
<updated>2021-05-20T20:22:01+00:00</updated>
<author>
<name>peter klausler</name>
<email>pklausler@nvidia.com</email>
</author>
<published>2021-05-20T17:37:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=c1db35f0c232a8672d44f2531d178d4da35b5b3c'/>
<id>c1db35f0c232a8672d44f2531d178d4da35b5b3c</id>
<content type='text'>
Define APIs, naively implement, and add basic sanity unit tests for
the transformational intrinsic functions CSHIFT, EOSHIFT, PACK,
SPREAD, TRANSPOSE, and UNPACK.  These are the remaining transformational
intrinsic functions that rearrange data without regard to type
(except for default boundary values in EOSHIFT); RESHAPE was already
in place as a stress test for the runtime's descriptor handling
facilities.

Code is in place to create copies of allocatable/automatic
components when transforming arrays of derived type, but it won't
do anything until we have derived type information being passed to the
runtime from the frontend.

Differential Revision: https://reviews.llvm.org/D102857
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Define APIs, naively implement, and add basic sanity unit tests for
the transformational intrinsic functions CSHIFT, EOSHIFT, PACK,
SPREAD, TRANSPOSE, and UNPACK.  These are the remaining transformational
intrinsic functions that rearrange data without regard to type
(except for default boundary values in EOSHIFT); RESHAPE was already
in place as a stress test for the runtime's descriptor handling
facilities.

Code is in place to create copies of allocatable/automatic
components when transforming arrays of derived type, but it won't
do anything until we have derived type information being passed to the
runtime from the frontend.

Differential Revision: https://reviews.llvm.org/D102857
</pre>
</div>
</content>
</entry>
</feed>
