Revision tags: llvmorg-21-init, llvmorg-19.1.7 |
|
#
fc97d2e6 |
| 18-Dec-2024 |
Peter Klausler <pklausler@nvidia.com> |
[flang] Add UNSIGNED (#113504)
Implement the UNSIGNED extension type and operations under control of a
language feature flag (-funsigned).
This is nearly identical to the UNSIGNED feature that h
[flang] Add UNSIGNED (#113504)
Implement the UNSIGNED extension type and operations under control of a
language feature flag (-funsigned).
This is nearly identical to the UNSIGNED feature that has been available
in Sun Fortran for years, and now implemented in GNU Fortran for
gfortran 15, and proposed for ISO standardization in J3/24-116.txt.
See the new documentation for details; but in short, this is C's
unsigned type, with guaranteed modular arithmetic for +, -, and *, and
the related transformational intrinsic functions SUM & al.
show more ...
|
Revision tags: llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1 |
|
#
104f3c18 |
| 19-Sep-2024 |
Slava Zakharin <szakharin@nvidia.com> |
Reland "[flang][runtime] Use cuda::std::complex in F18 runtime CUDA build. (#109078)" (#109207)
`std::complex` operators do not work for the CUDA device compilation
of F18 runtime. This change make
Reland "[flang][runtime] Use cuda::std::complex in F18 runtime CUDA build. (#109078)" (#109207)
`std::complex` operators do not work for the CUDA device compilation
of F18 runtime. This change makes use of `cuda::std::complex` from
`libcudacxx`.
`cuda::std::complex` does not have specializations for `long double`,
so the change is accompanied with a clean-up for `long double` usage.
Additional change on top of #109078 is to use `cuda::std::complex`
only for the device compilation, otherwise the host compilation
fails because `libcudacxx` may not support `long double` specialization
at all (depending on the compiler).
show more ...
|
#
36192fdf |
| 18-Sep-2024 |
Slava Zakharin <szakharin@nvidia.com> |
Revert "[flang][runtime] Use cuda::std::complex in F18 runtime CUDA build." (#109173)
Reverts llvm/llvm-project#109078
|
#
be187a68 |
| 18-Sep-2024 |
Slava Zakharin <szakharin@nvidia.com> |
[flang][runtime] Use cuda::std::complex in F18 runtime CUDA build. (#109078)
`std::complex` operators do not work for the CUDA device compilation
of F18 runtime. This change makes use of `cuda::std
[flang][runtime] Use cuda::std::complex in F18 runtime CUDA build. (#109078)
`std::complex` operators do not work for the CUDA device compilation
of F18 runtime. This change makes use of `cuda::std::complex` from
`libcudacxx`.
`cuda::std::complex` does not have specializations for `long double`,
so the change is accompanied with a clean-up for `long double` usage.
show more ...
|
Revision tags: llvmorg-19.1.0 |
|
#
6facf698 |
| 04-Sep-2024 |
Peter Klausler <35819229+klausler@users.noreply.github.com> |
[flang][runtime] Correct RANDOM_INIT seed generation (#106250)
The initial seed was generated from a bitwise AND ("&") of two
clock-generated values, instead of an XOR or (best) a truncated integer
[flang][runtime] Correct RANDOM_INIT seed generation (#106250)
The initial seed was generated from a bitwise AND ("&") of two
clock-generated values, instead of an XOR or (best) a truncated integer
multiplication. Maybe I mistyped a shift-7 instead of a shift-6 or
shift-8 when I wrote that line, but it was most likely just stupidity.
Fixes https://github.com/llvm/llvm-project/issues/106221.
show more ...
|
Revision tags: llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, 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 |
|
#
71e0261f |
| 15-Mar-2024 |
Slava Zakharin <szakharin@nvidia.com> |
[flang][runtime] Added Fortran::common::optional for use on device.
This is a simplified implementation of std::optional that can be used in the offload builds for the device code. The methods are p
[flang][runtime] Added Fortran::common::optional for use on device.
This is a simplified implementation of std::optional that can be used in the offload builds for the device code. The methods are properly marked with RT_API_ATTRS so that the device compilation succedes.
Reviewers: klausler, jeanPerier
Reviewed By: jeanPerier
Pull Request: https://github.com/llvm/llvm-project/pull/85177
show more ...
|
#
e0738cc6 |
| 13-Mar-2024 |
Slava Zakharin <szakharin@nvidia.com> |
[flang] Moved REAL(16) RANDOM_NUMBER to Float128Math library. (#85002)
|
Revision tags: 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 |
|
#
04b18530 |
| 29-Nov-2023 |
Pete Steinfeld <47540744+psteinfeld@users.noreply.github.com> |
[flang] Cleanup of NYI messages (#73740)
This update makes the user visible messages relating to features that
are not yet implemented be more consistent. I also cleaned up some of
the code.
Fo
[flang] Cleanup of NYI messages (#73740)
This update makes the user visible messages relating to features that
are not yet implemented be more consistent. I also cleaned up some of
the code.
For NYI messages that refer to intrinsics, I made sure the the message
begins with "not yet implemented: intrinsic:" to make them easier to
recognize.
I created some utility functions for NYI reporting that I put into
.../include/Optimizer/Support/Utils.h. These mainly convert MLIR types
to their Fortran equivalents.
I converted the NYI code to use the newly created utility functions.
show more ...
|
Revision tags: llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3 |
|
#
301a0dba |
| 16-Oct-2023 |
Peter Klausler <35819229+klausler@users.noreply.github.com> |
[flang][runtime] Better non-repeatable RANDOM_INIT() (#67363)
Use a higher-frequency clock base when initializing the pseudo-random
number generator to implement
CALL RANDOM_INIT(REPEATABLE=.FA
[flang][runtime] Better non-repeatable RANDOM_INIT() (#67363)
Use a higher-frequency clock base when initializing the pseudo-random
number generator to implement
CALL RANDOM_INIT(REPEATABLE=.FALSE.)
show more ...
|
Revision tags: llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init |
|
#
478e0b58 |
| 17-Jul-2023 |
Peter Steinfeld <psteinfeld@nvidia.com> |
[flang] Quadmath 128 bit floating point intrinsics
This update allows constant folding for many 128 bit floating point intrinsics through the library quadmath, which is only available on some platfo
[flang] Quadmath 128 bit floating point intrinsics
This update allows constant folding for many 128 bit floating point intrinsics through the library quadmath, which is only available on some platforms.
Differential Revision: https://reviews.llvm.org/D156435
show more ...
|
Revision tags: 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, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3 |
|
#
cc71e694 |
| 09-Aug-2022 |
V Donaldson <vdonaldson@nvidia.com> |
[flang] Intrinsic RANDOM_SEED calls with dynamically absent/present arguments
|
Revision tags: llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init, llvmorg-14.0.6, llvmorg-14.0.5 |
|
#
4daa33f6 |
| 31-May-2022 |
Peter Klausler <pklausler@nvidia.com> |
[flang][runtime] Use __float128 where possible & needed in runtime
On targets with __float128 available and distinct from long double, use it to support more kind=16 entry points. This affects most
[flang][runtime] Use __float128 where possible & needed in runtime
On targets with __float128 available and distinct from long double, use it to support more kind=16 entry points. This affects mostly x86-64 targets. This means that more runtime entry points are defined for lowering to call.
Delete Common/long-double.h and its LONG_DOUBLE macro in favor of testing the standard macro LDBL_MANT_DIG.
Differential Revision: https://reviews.llvm.org/D127025
show more ...
|
#
ea1a69d6 |
| 04-Jun-2022 |
Peter Klausler <pklausler@nvidia.com> |
[flang][runtime] Don't let random seed queries change the sequence
When the current seed of the pseudo-random generator is queried with CALL RANDOM_SEED(GET=n), that query should not change the stre
[flang][runtime] Don't let random seed queries change the sequence
When the current seed of the pseudo-random generator is queried with CALL RANDOM_SEED(GET=n), that query should not change the stream of pseudo-random numbers produced by CALL RANDOM_NUMBER().
Differential Revision: https://reviews.llvm.org/D127023
show more ...
|
#
f3278e0f |
| 30-May-2022 |
Peter Klausler <pklausler@nvidia.com> |
[flang][runtime] Ensure that 0. <= RANDOM_NUMBER() < 1.
It was possible for RANDOM_NUMBER() to return 1.0.
Differential Revision: https://reviews.llvm.org/D127020
|
Revision tags: llvmorg-14.0.4 |
|
#
d4609ae4 |
| 09-May-2022 |
Peter Steinfeld <psteinfeld@nvidia.com> |
[flang] Change "bad kind" messages in the runtime to "not yet implemented"
Similar to change D125046.
If a programmer is able to compile and link a program that contains types that are not yet supp
[flang] Change "bad kind" messages in the runtime to "not yet implemented"
Similar to change D125046.
If a programmer is able to compile and link a program that contains types that are not yet supported by the runtime, it must be because they're not yet implemented.
This change will make it easier to find unimplemented code in tests.
Differential Revision: https://reviews.llvm.org/D125267
show more ...
|
Revision tags: llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0 |
|
#
e3550f19 |
| 11-Mar-2022 |
Peter Steinfeld <psteinfeld@nvidia.com> |
[flang] Improve runtime crash messages
Where possible, I added additional information to the messages to help programmers figure out what went wrong. I also removed all uses of the word "bad" from
[flang] Improve runtime crash messages
Where possible, I added additional information to the messages to help programmers figure out what went wrong. I also removed all uses of the word "bad" from the messages since (to me) that implies a moral judgement rather than a programming error. I replaced it with either "invalid" or "unsupported" where appropriate.
Differential Revision: https://reviews.llvm.org/D121493
show more ...
|
Revision tags: llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, 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 |
|
#
a0bd2445 |
| 10-Jun-2021 |
Zachary Selk <> |
[flang] Fixed simple typo in runtime code
Reviewed By: klausler
Differential Revision: https://reviews.llvm.org/D104034
|
Revision tags: llvmorg-12.0.1-rc1 |
|
#
50386fe1 |
| 12-Apr-2021 |
Tim Keith <tkeith@nvidia.com> |
[flang] Fix narrowing warning on macos
With clang 11 on macos we were getting this warning: ``` flang/runtime/random.cpp:61:30: error: non-constant-expression cannot be narrowed from type 'unsigned
[flang] Fix narrowing warning on macos
With clang 11 on macos we were getting this warning: ``` flang/runtime/random.cpp:61:30: error: non-constant-expression cannot be narrowed from type 'unsigned long long' to 'runtime::GeneratedWord' (aka 'unsigned int') in initializer list [-Wc++11-narrowing] GeneratedWord word{(generator() - generator.min()) & rangeMask}; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ flang/runtime/random.cpp:99:5: note: in instantiation of function template specialization 'runtime::Generate<double, 53>' requested here Generate<CppTypeFor<TypeCategory::Real, 8>, 53>(harvest); ^ ```
Changing the type of `rangeMask` fixes it.
Differential Revision: https://reviews.llvm.org/D100320
show more ...
|
#
e1114045 |
| 07-Apr-2021 |
peter klausler <pklausler@nvidia.com> |
[flang] RANDOM_NUMBER, RANDOM_SEED, RANDOM_INIT in runtime
Add APIs, initial non-coarray implementations, and unit tests for the intrinsic subroutines for pseudo-random number generation.
Different
[flang] RANDOM_NUMBER, RANDOM_SEED, RANDOM_INIT in runtime
Add APIs, initial non-coarray implementations, and unit tests for the intrinsic subroutines for pseudo-random number generation.
Differential Revision: https://reviews.llvm.org/D100064
show more ...
|