#
514c1ec5 |
| 24-Jun-2024 |
Peter Klausler <35819229+klausler@users.noreply.github.com> |
[flang][runtime] Interoperable POINTER deallocation validation (#96100)
Extend the runtime validation of deallocated pointers so that it also
works when pointers are allocated &/or deallocated outs
[flang][runtime] Interoperable POINTER deallocation validation (#96100)
Extend the runtime validation of deallocated pointers so that it also
works when pointers are allocated &/or deallocated outside Fortran.
Previously, bogus runtime errors would be reported for pointers
allocated via CFI_allocate() and deallocated in Fortran, and
CFI_deallocate() did not check that it was deallocating a whole
contiguous pointer that was allocated as such.
show more ...
|
Revision tags: llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init |
|
#
ef2d59b1 |
| 06-Dec-2023 |
madanial0 <118996571+madanial0@users.noreply.github.com> |
[Flang] malloc(1) on AIX as malloc(0) returns nullptr (#73878)
On AIX malloc(0) reutrns nullptr, which fails test case
`Evaluate/ISO-Fortran-binding.test`, using malloc(1) in AIX for
consistent be
[Flang] malloc(1) on AIX as malloc(0) returns nullptr (#73878)
On AIX malloc(0) reutrns nullptr, which fails test case
`Evaluate/ISO-Fortran-binding.test`, using malloc(1) in AIX for
consistent behaviour
---------
Co-authored-by: Mark Danial <mark.danial@ibm.com>
show more ...
|
Revision tags: llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4 |
|
#
77ab08e1 |
| 17-Oct-2023 |
Jean Perier <jperier@nvidia.com> |
[flang][runtime] fix buildbot failure after #69199
Fix https://lab.llvm.org/buildbot/#/builders/268/builds/360
|
#
bef3e8ea |
| 17-Oct-2023 |
jeanPerier <jperier@nvidia.com> |
[flang][runtime] Fix another IsContiguous edge case (#69199)
A recent PR addressed zero and one element edge cases but did not cover
another case where the descriptors of arrays with more than two
[flang][runtime] Fix another IsContiguous edge case (#69199)
A recent PR addressed zero and one element edge cases but did not cover
another case where the descriptors of arrays with more than two elements
may have byte strides that are not perfect multiples, like when creating
a descriptor for A(:, 1:1:2).
In general, the byte stride in a dimension is only meaningful if that
dimension has more than one element. Update IsContiguous and
CFI_is_contiguous to reflect that.
show more ...
|
Revision tags: llvmorg-17.0.3 |
|
#
7755cdf0 |
| 13-Oct-2023 |
jeanPerier <jperier@nvidia.com> |
[flang][runtime] Fix IsContiguous for zero and one element arrays (#68869)
The byte strides in zero and one element array descriptor may not be
perfect multiple of the element size and previous and
[flang][runtime] Fix IsContiguous for zero and one element arrays (#68869)
The byte strides in zero and one element array descriptor may not be
perfect multiple of the element size and previous and extents.
IsContiguous and its CFI equivalent should still return true for such
arrays (Fortran 2018 standards says in 8.5.7 that an array is not
contiguous if it has two or more elements and ....).
show more ...
|
#
8b953fdd |
| 04-Oct-2023 |
Slava Zakharin <szakharin@nvidia.com> |
[flang][runtime] Added Assign runtime to CUDA build closure. (#68171)
|
Revision tags: llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0 |
|
#
f5592f30 |
| 13-Sep-2023 |
Peter Klausler <35819229+klausler@users.noreply.github.com> |
[flang][runtime] Handle type code synonyms in CFI_... runtime (#66231)
Some CFI_type_... type codes are synonyms; ensure that they are treated
as equivalent when validating inputs to CFI_... runtim
[flang][runtime] Handle type code synonyms in CFI_... runtime (#66231)
Some CFI_type_... type codes are synonyms; ensure that they are treated
as equivalent when validating inputs to CFI_... runtime routines.
show more ...
|
Revision tags: llvmorg-17.0.0-rc4 |
|
#
668f261b |
| 23-Aug-2023 |
Slava Zakharin <szakharin@nvidia.com> |
[flang] Make ISO_Fortran_binding.h a standalone header again.
This implements the proposal from https://discourse.llvm.org/t/adding-flang-specific-header-files-to-clang/72442/6 Since ISO_Fortran_bin
[flang] Make ISO_Fortran_binding.h a standalone header again.
This implements the proposal from https://discourse.llvm.org/t/adding-flang-specific-header-files-to-clang/72442/6 Since ISO_Fortran_binding.h is supposed to be included from users' C/C++ codes, it would better have no dependencies on other header files.
Reviewed By: PeteSteinfeld
Differential Revision: https://reviews.llvm.org/D158549
show more ...
|
Revision tags: llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, working, llvmorg-15.0.2 |
|
#
d37250c9 |
| 22-Sep-2022 |
Slava Zakharin <szakharin@nvidia.com> |
[flang][runtime] Fixes for element size calculation.
BytesFor() used to return KIND for the size, which is not always correct, so I changed it to return the size of the actual CppType corresponding
[flang][runtime] Fixes for element size calculation.
BytesFor() used to return KIND for the size, which is not always correct, so I changed it to return the size of the actual CppType corresponding to the given category and kind.
MinElemLen() used to calculate size incorrectly (e.g. CFI_type_extended_double was sized 10, whereas it may occupy more bytes on a target), so I changed it to call BytesFor().
Additional changes were needed to resolve new failures for transformational intrinsics. These intrinsics used to work for not fully supported data types (e.g. REAL(3)), but now stopped working because CppType cannot be computed for those categories/kinds. The solution is to use known element size from the source argument(s) for establishing the destination descriptor - the element size is all that is needed for transformational intrinsics to keep working.
Note that this does not help cases, where runtime still has to compute the element size, e.g. when it creates descriptors for components of derived types. If the component has unsupported data type, BytesFor() will still fail. So these cases require adding support for the missing types.
New regression unit test in Runtime/Transformational.cpp demonstrates the case that will start working properly with this commit.
show more ...
|
Revision tags: llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init, llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3 |
|
#
3b61587c |
| 09-Mar-2022 |
Peter Klausler <pklausler@nvidia.com> |
[flang] LBOUND() edge case: empty dimension
LBOUND must return 1 for an empty dimension, no matter what explicit expression might appear in a declaration or arrive in a descriptor.
Differential Rev
[flang] LBOUND() edge case: empty dimension
LBOUND must return 1 for an empty dimension, no matter what explicit expression might appear in a declaration or arrive in a descriptor.
Differential Revision: https://reviews.llvm.org/D121488
show more ...
|
Revision tags: llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3 |
|
#
e43b2e4f |
| 14-Jan-2022 |
V Donaldson <vdonaldson@nvidia.com> |
[flang] "CFI" types for Fortran REAL and COMPLEX kinds 2, 3, 10, 16
Add additional "CFI" types for Fortran REAL and COMPLEX kinds 2, 3, 10, 16 to allow their use in Fortran descriptors.
|
Revision tags: llvmorg-13.0.1-rc2, llvmorg-13.0.1-rc1, llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3 |
|
#
830c0b90 |
| 01-Sep-2021 |
Peter Klausler <pklausler@nvidia.com> |
[flang] Move runtime API headers to flang/include/flang/Runtime
Move the closure of the subset of flang/runtime/*.h header files that are referenced by source files outside flang/runtime (apart from
[flang] Move runtime API headers to flang/include/flang/Runtime
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
show more ...
|
Revision tags: llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1, llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2 |
|
#
45cd405d |
| 11-Jun-2021 |
Diana Picus <diana.picus@linaro.org> |
[flang] Add clang-tidy check for braces around if
Flang diverges from the llvm coding style in that it requires braces around the bodies of if/while/etc statements, even when the body is a single st
[flang] Add clang-tidy check for braces around if
Flang diverges from the llvm coding style in that it requires braces around the bodies of if/while/etc statements, even when the body is a single statement.
This commit adds the readability-braces-around-statements check to flang's clang-tidy config file. Hopefully the premerge bots will pick it up and report violations in Phabricator.
We also explicitly disable the check in the directories corresponding to the Lower and Optimizer libraries, which rely heavily on mlir and llvm and therefore follow their coding style. Likewise for the tools directory.
We also fix any outstanding violations in the runtime and in lib/Semantics.
Differential Revision: https://reviews.llvm.org/D104100
show more ...
|
Revision tags: llvmorg-12.0.1-rc1 |
|
#
aaab7040 |
| 30-Apr-2021 |
Diana Picus <diana.picus@linaro.org> |
[flang] Fix handling of elem_len in CFI_establish
The current code computes the minimum element length based on the `type` used to create the descriptor and uses that as the element length whenever
[flang] Fix handling of elem_len in CFI_establish
The current code computes the minimum element length based on the `type` used to create the descriptor and uses that as the element length whenever it is greater than 0. This means that the `elem_len` parameter is essentially ignored for any type where we can compute a minimum element length (which includes `CFI_type_char[16|32]_t`), and we may therefore end up with descriptors with a lower element length than expected.
This patch fixes the issue by explicitly doing what the standard says, i.e. it uses the given `elem_len` for character types, `CFI_type_struct` and `CFI_type_other`, and ignores it (falls back to the minimum element length) for everything else.
Differential Revision: https://reviews.llvm.org/D101659
show more ...
|
#
32f901bd |
| 30-Apr-2021 |
Diana Picus <diana.picus@linaro.org> |
[flang] Use CFI_TYPE_LAST instead of CFI_type_struct
It looks like CFI_type_struct was once used as the last valid CFI_type value, but in the meantime CFI_type_char16_t and CFI_type_char32_t were ad
[flang] Use CFI_TYPE_LAST instead of CFI_type_struct
It looks like CFI_type_struct was once used as the last valid CFI_type value, but in the meantime CFI_type_char16_t and CFI_type_char32_t were added, making that assumption no longer true. Luckily, in the meantime we also got a define for CFI_TYPE_LAST, which we can now use to allow CFI_establish and CFI_allocate to work with descriptors of CFI_type_char16_t, CFI_type_char32_t and any other future types.
Differential Revision: https://reviews.llvm.org/D101658
show more ...
|
Revision tags: llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3, llvmorg-12.0.0-rc2, llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1, llvmorg-13-init, llvmorg-11.1.0-rc2, llvmorg-11.1.0-rc1, llvmorg-11.0.1, llvmorg-11.0.1-rc2, llvmorg-11.0.1-rc1 |
|
#
8df28f0a |
| 10-Nov-2020 |
peter klausler <pklausler@nvidia.com> |
[flang] Implement runtime support for basic ALLOCATE/DEALLOCATE
Add error reporting infrastructure and support for ALLOCATE and DEALLOCATE statements of intrinsic types without SOURCE= or MOLD=.
Di
[flang] Implement runtime support for basic ALLOCATE/DEALLOCATE
Add error reporting infrastructure and support for ALLOCATE and DEALLOCATE statements of intrinsic types without SOURCE= or MOLD=.
Differential revision: https://reviews.llvm.org/D91215
show more ...
|
Revision tags: llvmorg-11.0.0, llvmorg-11.0.0-rc6, llvmorg-11.0.0-rc5, llvmorg-11.0.0-rc4, llvmorg-11.0.0-rc3, llvmorg-11.0.0-rc2, llvmorg-11.0.0-rc1, llvmorg-12-init, llvmorg-10.0.1, llvmorg-10.0.1-rc4, llvmorg-10.0.1-rc3, llvmorg-10.0.1-rc2 |
|
#
3d627d6f |
| 17-Jun-2020 |
peter klausler <pklausler@nvidia.com> |
[flang] More Fortran runtime support for CHARACTER operations
Summary: - Remove C++ library dependence from lock.h - Implement LEN_TRIM, REPEAT, ADJUSTL, ADJUSTR, MAX/MIN intrinsic functions for C
[flang] More Fortran runtime support for CHARACTER operations
Summary: - Remove C++ library dependence from lock.h - Implement LEN_TRIM, REPEAT, ADJUSTL, ADJUSTR, MAX/MIN intrinsic functions for CHARACTER
Reviewers: tskeith, PeteSteinfeld, sscalpone, schweitz, DavidTruby
Reviewed By: PeteSteinfeld
Subscribers: llvm-commits, flang-commits
Tags: #flang, #llvm
Differential Revision: https://reviews.llvm.org/D82054
show more ...
|
Revision tags: llvmorg-10.0.1-rc1 |
|
#
b98ad941 |
| 09-Apr-2020 |
David Truby <david.truby@arm.com> |
[flang] Merge flang-compiler/f18
This is the initial merge of flang-compiler, which is done in this way principally to preserve the history and git-blame, without generating a large number of commit
[flang] Merge flang-compiler/f18
This is the initial merge of flang-compiler, which is done in this way principally to preserve the history and git-blame, without generating a large number of commits on the first-parent history of LLVM.
If you don't care about the flang history during a bisect remember that you can supply paths to git-bisect, e.g. `git bisect start clang llvm`.
The history of f18 was rewritten to:
* Put the code under /flang/. * Linearize the history. * Rewrite commit messages so that issue and PR numbers point to the old repository.
Credit to Peter Waller for writing the flatten and merge script.
Updates: flang-compiler/f18#876 (submission into llvm-project) Mailing-list: http://lists.llvm.org/pipermail/llvm-dev/2020-January/137989.html ([llvm-dev] Flang landing in the monorepo - next Monday!) Mailing-list: http://lists.llvm.org/pipermail/llvm-dev/2019-December/137661.html ([llvm-dev] Flang landing in the monorepo)
Co-authored-by: Peter Waller <peter.waller@arm.com>
show more ...
|
#
1f879005 |
| 29-Mar-2020 |
Tim Keith <tkeith@nvidia.com> |
[flang] Reformat with latest clang-format and .clang-format
Original-commit: flang-compiler/f18@9fe84f45d7fd685051004678d6b5775dcc4c6f8f Reviewed-on: https://github.com/flang-compiler/f18/pull/1094
|
Revision tags: llvmorg-10.0.0, llvmorg-10.0.0-rc6, llvmorg-10.0.0-rc5, llvmorg-10.0.0-rc4, llvmorg-10.0.0-rc3 |
|
#
3b635714 |
| 13-Feb-2020 |
peter klausler <pklausler@nvidia.com> |
[flang] Use hash table for UnitMap, avoid C++ STL binary dependence
Scan FORMAT strings locally to avoid C++ binary runtime dependence when computing deepest parenthesis nesting
Remove a dependency
[flang] Use hash table for UnitMap, avoid C++ STL binary dependence
Scan FORMAT strings locally to avoid C++ binary runtime dependence when computing deepest parenthesis nesting
Remove a dependency on ostream from runtime
Remove remaining direct external references from runtime to C++ library binaries
Remove runtime dependences on lib/common
SetPos() and SetRec()
Instantiate templates for input
Begin input; rearrange locking, deal with CLOSE races
View()
Update error message in test to agree with compiler change
First cut at real input
More robust I/O runtime error handling
Debugging of REAL input
Add iostat.{h,cpp}
Rename runtime/numeric-* to runtime/edit-*
Move templates around, templatize integer output editing
Move LOGICAL and CHARACTER output from io-api.cpp to edit-output.cpp
Change pointer argument to reference
More list-directed input
Complex list-directed input
Use enum class Direction rather than bool for templates
Catch up with changes to master
Undo reformatting of Lower code
Use record number instead of subscripts for internal unit
Unformatted sequential backspace
Testing and debugging
Dodge bogus GCC warning
Add <cstddef> for std::size_t to fix CI build
Address review comments
Original-commit: flang-compiler/f18@50406b349609efdde76e48bf2caa039d031dd1c4 Reviewed-on: https://github.com/flang-compiler/f18/pull/1053
show more ...
|
Revision tags: llvmorg-10.0.0-rc2, llvmorg-10.0.0-rc1 |
|
#
352d347a |
| 28-Jan-2020 |
Alexis Perry <AlexisPerry@users.noreply.github.com> |
[flang] Changed *.cc file extension to *.cpp (updated scripts) (flang-compiler/f18#958)
Updated CMake files accordingly, using better regex
Updated license headers to match new extension and fit wi
[flang] Changed *.cc file extension to *.cpp (updated scripts) (flang-compiler/f18#958)
Updated CMake files accordingly, using better regex
Updated license headers to match new extension and fit within 80 columns
Updated other comments within files that referred to the old extension
Original-commit: flang-compiler/f18@ae7721e611918631d1e3821dbb60f5ffcd9a69b1 Reviewed-on: https://github.com/flang-compiler/f18/pull/958
show more ...
|