| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[flang][cuda] Extends matching distance computation (#91810) Extends the computation of the matching distance in the generic resolution to support options described in the table: https://docs.nvidia.com/hpc-sdk/archive/24.3/compilers/cuda-fortran-prog-guide/index.html#cfref-var-attr-unified-data Options are added as language features in the SemanticsContext and a flag is added in bbc for testing purpose. | 2 年前 | |
[flang] Complete implementation of OUT_OF_RANGE() (#89334) The intrinsic function OUT_OF_RANGE() lacks support in lowering and the runtime. This patch obviates a need for any such support by implementing OUT_OF_RANGE() via rewriting in semantics. This rewriting of OUT_OF_RANGE() calls replaces the existing code that folds OUT_OF_RANGE() calls with constant arguments. Some changes and fixes were necessary outside of OUT_OF_RANGE()'s folding code (now rewriting code), whose testing exposed some other issues worth fixing. - The common::RealDetails<> template class was recoded in terms of a new base class with a constexpr constructor, so that the the characteristics of the various REAL kinds could be queried dynamically as well. This affected some client usage. - There were bugs in the code that folds TRANSFER() when the type of X or MOLD was REAL(10) -- this is a type that occupies 16 bytes per element in execution memory but only 10 bytes (was 12) in the data of std::vector<Scalar<>> in a Constant<>. - Folds of REAL->REAL conversions weren't preserving infinities. | 2 年前 | |
[flang] Implement SECOND intrinsic (#98881) The SECOND intrinsic is a gnu extension providing an alias for CPU_TIME: https://gcc.gnu.org/onlinedocs/gfortran/SECOND.html This cannot be implemented as a straightforward alias because there is both a function and a subroutine form. | 2 年前 | |
| 2 年前 | ||
[flang] New -fdebug-unparse-with-modules option (#91660) This option is a compilation action that parses a source file and performs semantic analysis on it, like the existing -fdebug-unparse option does. Its output, however, is preceded by the effective contents of all of the non-intrinsic modules on which it depends but does not define, transitively preceded by the closure of all of those modules' dependencies. The output from this option is therefore the analyzed parse tree for a source file encapsulated with all of its non-intrinsic module dependencies. This output may be useful for extracting code from large applications for use as an attachment to a bug report, or as input to a test case reduction tool for problem isolation. | 2 年前 | |
| 2 年前 | ||
[flang][debug] Set scope of internal functions correctly. (#99531) Summary: The functions internal to subroutine should have the scope set to the parent function. This allows a user to evaluate local variables of parent function when control is stopped in the child. Fixes #96314 Test Plan: Reviewers: Subscribers: Tasks: Tags: Differential Revision: https://phabricator.intern.facebook.com/D60250527 (cherry picked from commit 626022bfd18f335ef62a461992a05dfed4e6d715) | 2 年前 | |
[flang] A nested STRUCTURE must declare entities (#99379) When a DEC legacy STRUCTURE definition appears within another, its STRUCTURE statement must also declare some components of the enclosing structure. Fixes https://github.com/llvm/llvm-project/issues/99288. | 2 年前 | |
[flang] ASSOCIATE/SELECT TYPE entities aren't pointer/allocatable (#99364) Fix what seems to be a regression in semantics in definability checking: the construct entities of ASSOCIATE and SELECT TYPE constructs are never pointers or allocatables, even when their selectors are so. SELECT RANK construct entities, however, can be pointers or allocatables. | 2 年前 | |
[flang][driver] Delete f18 (i.e. the old Flang driver) This patch removes f18, a.k.a. the old driver. It is being replaced with the new driver, flang-new, which has reached feature parity with f18 a while ago. This was discussed in [1] and also in [2]. With this change, FLANG_BUILD_NEW_DRIVER is no longer needed and is also deleted. This means that we are making the dependency on Clang permanent (i.e. it cannot be disabled with a CMake flag). LIT set-up is updated accordingly. All references to f18 or f18.cpp are either updated or removed. The F18_FC variable from the flang bash script is replaced with FLANG_FC. The former is still supported for backwards compatibility. [1] https://lists.llvm.org/pipermail/flang-dev/2021-June/000742.html [2] https://reviews.llvm.org/D103177 Differential Revision: https://reviews.llvm.org/D105811 | 4 年前 |