| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[flang][hlfir] Support polymorphic hlfir.expr values. This patch sets 'polymorphic' attribute of hlfir::ExprType when the value is created from a polymorphic entity. Memoization of such ExprType involves creating a mutable descriptor on the stack, which is initialized (as a null box) and passed to AllocatableApplyMold with the mold being the entity from which the ExprType value is being created. This patch fixes "creating polymorphic temporary" TODO and also several cases of "'fir.convert' op invalid type conversion" error. Reviewed By: tblah Differential Revision: https://reviews.llvm.org/D155541 | 3 年前 | |
[flang][hlfir] Array constructor lowering [part 3/4] Lower the cases that require runtime support to deal with the allocation, reallocation, or copy of ac-values to the array constructor storage. Differential Revision: https://reviews.llvm.org/D144513 | 3 年前 | |
[flang] Fixed managing copy-in/copy-out temps. There are several observations regarding the copy-in/copy-out: * Actual argument associated with INTENT(OUT) dummy argument that requires finalization (7.5.6.3 p. 7) may be read by the finalization function, so a copy-in is required. * A temporary created for the copy-in/copy-out must be destroyed without finalization after the call (or after the corresponding copy-out), otherwise, memory leaks may occur. * The copy-out assignment must not perform finalization for the LHS. * The copy-out assignment from the temporary to the actual argument may or may not need to initialize the LHS. This change-set introduces new runtime methods: CopyOutAssign and DestroyWithoutFinalization. They are called by the compiler generated code to match the behavior described above. Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D151135 | 3 年前 | |
[flang][NFC] Move Todo.h from Lower to Optimizer Remove a backwards dependence from Optimizer -> Lower by moving Todo.h to the optimizer and out of lowering. This patch is part of the upstreaming effort from fir-dev branch. Co-authored-by: Eric Schweitz <eschweitz@nvidia.com> Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D127292 | 4 年前 | |
[flang] Single entry point for GET_ENVIRONMENT_VARIABLE This patch refactors the runtime support for GET_ENVIRONMENT_VARIABLE to have a single entry point instead of 2. It also updates lowering accordingly. This makes it easier to handle dynamically optional arguments. See also https://reviews.llvm.org/D118777 Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D142489 | 3 年前 | |
[flang] Use fir.type_desc in nullify Do not look for the global early in nullify codegen. The type descriptor can be emitted later and it would raise an error as it could not be found. Use fir.type_desc instead so it delays the type descriptor lookup until evrything is emitted. https://github.com/llvm/llvm-project/issues/63775 Reviewed By: vzakhari Differential Revision: https://reviews.llvm.org/D154982 | 3 年前 | |
[Flang] Add -fconvert option to swap endianness for unformatted files. To accomplish this, this patch creates an optional list of environment variable default values to be set by the runtime to allow directly using the existing runtime implementation of FORT_CONVERT for I/O conversions. | 3 年前 | |
[flang] Support lowering of IS_CONTIGUOUS This supports the lowering of intrinsic IS_CONTIGUOUS for array argument. The argument of assumed rank is not supported since it is not implemented yet as the procedure argument. Add TODO for it. Reviewed By: PeteSteinfeld, jeanPerier Differential Revision: https://reviews.llvm.org/D141212 | 3 年前 | |
[flang] [NFC] Remove an unneeded include. The title says it all. Differential Revision: https://reviews.llvm.org/D151712 | 3 年前 | |
[flang] Lower MOD to Fortran runtime call. This change removes dependency on pgmath mod, and also allows Fortran runtime to issue a diagnostic message in case of zero denominator. Differential Revision: https://reviews.llvm.org/D131192 | 3 年前 | |
[flang] system_clock intrinsic calls with dynamically optional arguments system_clock intrinsic calls with dynamically optional arguments Modify intrinsic system_clock calls to allow for an argument that is optional or a disassociated pointer or an unallocated allocatable. A call with such an argument is the same as a call that does not specify that argument. Rename (genIsNotNull -> genIsNotNullAddr) and (genIsNull -> genIsNullAddr) and add a use of genIsNotNullAddr. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: PeteSteinfeld Differential Revision: https://reviews.llvm.org/D127616 Co-authored-by: V Donaldson <vdonaldson@nvidia.com> | 4 年前 | |
[flang] Lower F08 NORM2 intrinsic The implementation follows the pattern used in comparable intrinsics. Change the runtime API for Norm2 so it does not expect a mask argument since the Norm2 intrinsic does not accept a mask in Fortran. Differential Revision: https://reviews.llvm.org/D138150 | 3 年前 | |
[flang] Use std::nullopt instead of None (NFC) This patch mechanically replaces None with std::nullopt where the compiler would warn if None were deprecated. The intent is to reduce the amount of manual work required in migrating from Optional to std::optional. This is part of an effort to migrate from llvm::Optional to std::optional: https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716 | 3 年前 | |
[flang][hlfir] Codegen of hlfir.region_assign where LHS conflicts When the analysis of hlfir.region_assign determined that the LHS region evaluation may be impacted by the assignment effects, all LHS must be fully evaluated and saved before any assignment is done. This patch adds TemporaryStorage variants to save address, including vector subscripted entities addresses whose shape must be saved. It uses the DescriptorStack runtime to deal with complex cases inside forall. For the sake of simplicity, this is also used for vector subscripted LHS outside of foralls (each element address is saved as a descriptor on this stack. This is a bit suboptimal, but it is a safe start that will work with all kinds of type (polymorphic, PDTs...) without further work). Another approach would be to saved only the values that are conflicting in the LHS computation, but this would require a much more complex analysis of the LHS region DAG. Differential Revision: https://reviews.llvm.org/D154057 | 3 年前 | |
[flang][hlfir] lower hlfir.matmul_transpose to runtime call Depends on D145960 Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D145961 | 3 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 |