| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[flang] Use the Flang cmake-functions to add targets. Summary: It also removes the cycle-dependency between FortranSemantics and FortranEvaluate. Reviewers: #flang, jdoerfert, sscalpone Reviewed By: #flang, sscalpone Subscribers: DavidTruby, schweitz, tskeith, mgorny, aartbik, llvm-commits Tags: #flang, #llvm Differential Revision: https://reviews.llvm.org/D78215 | 6 年前 | |
[flang] Install runtime libs with the toolchain Make sure that FortranDecimal, FortranRuntime and Fortran_main are installed/packaged even when LLVM_INSTALL_TOOLCHAIN_ONLY is enabled. They are used by flang to link executables, so they should be provided even with minimal installs. Differential Revision: https://reviews.llvm.org/D131670 (cherry picked from commit 467abac2046d037f8d4cf428e76b77e5b06c187f) | 3 年前 | |
[flang] Allow restricted specific intrinsic functions as implicitly-interfaced procedure pointer targets The predicate "CanBeCalledViaImplicitInterface()" was returning false for restricted specific intrinsic functions (e.g., SIN) because their procedure characteristics have the elemental attribute; this leads to a bogus semantic error when one attempts to use them as proc-targets in procedure pointer assignment statements when the left-hand side of the assignment is a procedure pointer with an implicit interface. However, these restricted specific intrinsic functions have always been allowed as special cases for such usage -- it is as if they are elemental when it is necessary for them to be so, but not when it's a problem. Differential Revision: https://reviews.llvm.org/D130386 | 3 年前 | |
[flang] Run algebraic simplification optimization pass. Try 2 to merge 4fbd1d6c872e8228f23a6e13914222af40ca6461. Flang algebraic simplification pass will run algebraic simplification rewrite patterns for Math/Complex/etc. dialects. It is enabled under opt-for-speed optimization levels (i.e. for O1/O2/O3; Os/Oz will not enable it). With this change the FIR/MLIR optimization pipeline becomes affected by the -O* optimization level switches. Until now these switches only affected the middle-end and back-end. Differential Revision: https://reviews.llvm.org/D130035 | 3 年前 | |
[flang][Driver] Refine _when_ driver diagnostics are formatted This patch refines //when// driver diagnostics are formatted so that flang-new and flang-new -fc1 behave consistently with clang and clang -cc1, respectively. This change only applies to driver diagnostics. Scanning, parsing and semantic diagnostics are separate and not covered here. **NEW BEHAVIOUR** To illustrate the new behaviour, consider the following input file: ! file.f90 program m integer :: i = k end In the following invocations, "error: Semantic errors in file.f90" _will be_ formatted: $ flang-new file.f90 error: Semantic errors in file.f90 ./file.f90:2:18: error: Must be a constant value integer :: i = k $ flang-new -fc1 -fcolor-diagnostics file.f90 error: Semantic errors in file.f90 ./file.f90:2:18: error: Must be a constant value integer :: i = k However, in the following invocations, "error: Semantic errors in file.f90" _will not be_ formatted: $ flang-new -fno-color-diagnostics file.f90 error: Semantic errors in file.f90 ./file.f90:2:18: error: Must be a constant value integer :: i = k $ flang-new -fc1 file.f90 error: Semantic errors in file.f90 ./file.f90:2:18: error: Must be a constant value integer :: i = k Before this change, none of the above would be formatted. Note also that the default behaviour in flang-new is different to flang-new -fc1 (this is consistent with Clang). **NOTES ON IMPLEMENTATION** Note that the diagnostic options are parsed in createAndPopulateDiagOpts in driver.cpp. That's where the driver's DiagnosticEngine options are set. Like most command-line compiler driver options, these flags are "claimed" in Flang.cpp (i.e. when creating a frontend driver invocation) by calling getLastArg rather than in driver.cpp. In Clang's Options.td, defm color_diagnostics is replaced with two separate definitions: def fcolor_diagnostics and def fno_color_diagnostics. That's because originally color_diagnostics derived from OptInCC1FFlag, which is a multiclass for opt-in options in CC1. In order to preserve the current behaviour in clang -cc1 (i.e. to keep -fno-color-diagnostics unavailable in clang -cc1) and to implement similar behaviour in flang-new -fc1, we can't re-use OptInCC1FFlag`. Formatting is only available in consoles that support it and will normally mean that the message is printed in bold + color. Co-authored-by: Andrzej Warzynski <andrzej.warzynski@arm.com> Reviewed By: rovka Differential Revision: https://reviews.llvm.org/D126164 | 3 年前 | |
Revert "[flang][OpenMP] Lowering support for default clause" This reverts commit 05e6fce84fd39d150195b8928561f2c90c71e538. | 3 年前 | |
[flang] Add Solaris/x86 support to Optimizer/CodeGen/Target.cpp When testing LLVM 15.0.0 rc1 on Solaris, I found that 50+ flang tests FAILed with error: /vol/llvm/src/llvm-project/local/flang/lib/Optimizer/CodeGen/Target.cpp:310: not yet implemented: target not implemented This patch fixes that for Solaris/x86, where the fix is trivial (just handling it like the other x86 OSes). Tested on amd64-pc-solaris2.11; only a single failure remains now. Differential Revision: https://reviews.llvm.org/D131054 (cherry picked from commit bcb2740f415b0f825402f656dda3271414121a0e) | 3 年前 | |
[flang] Fix parsing and semantics for array element substring%KIND/%LEN A type-param-inquiry of %KIND or %LEN applies to a designator, and so must also be allowed for a substring. F18 presently (mis)parses instances of a type-param-inquiry as structure component references and then fixes them in expression semantics when types are known and we can distinguish them. But when the base of a type-param-inquiry is a substring of an array element, as in "charArray(i)(j:k)%len", parsing fails. Adjust the grammar to parse these cases, and extend expression semantics to process the new production. Differential Revision: https://reviews.llvm.org/D130375 | 3 年前 | |
Revert "[flang][OpenMP] Lowering support for default clause" This reverts commit 05e6fce84fd39d150195b8928561f2c90c71e538. | 3 年前 | |
[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 年前 |