TTobias Hieta[flang][test] Don't require .exe suffix.
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[flang][test] Don't require .exe suffix. The suffix is only added then the path the (lld-)link.exe is fully resolved. Otherwise it may stay "link" or "lld-link". On non-Windows platforms, lld-link also exists as a symbolic link to lld, such that the full the path to lld-link might also be resolved without .exe suffix in this case. Note that CLANG_DEFAULT_LINKER could be set to other linkers such as mold, in which case the test may still fail. This also applies to the non-Windows tests that require "ld" in the linker name. Fixes issue #56955 (cherry picked from commit 8c0979c8f7723306862b33583c6bdb1f4566a969) | 3 年前 | |
[flang] Fold calls to ISHFTC() The integer arithmetic template supports ISHFTC() but the integer intrinsic folding code had yet to call it; finish the job. Differential Revision: https://reviews.llvm.org/D130379 | 3 年前 | |
[flang][test] Remove RUN COMMAND/EXPECTED OUTPUT/INPUT markers from other directories | 3 年前 | |
[flang] Runs FIR SimplifyRegionLitePass pass after calling the inliner In flang pipeline, the inliner calls createCanonicalizerPass with the region simplification disabled. The inliner pass does canonicalization even if no inlining happens. After canonicalization, FIR lite region simplification must be called to get rid of unreachable regions. This code exposes the need to run SimplifyRegionLitePass after the inliner is called with FIR pipeline. Differential Revision: https://reviews.llvm.org/D130484 | 3 年前 | |
[flang][test] Remove RUN COMMAND/EXPECTED OUTPUT/INPUT markers from other directories | 3 年前 | |
[flang] Try to lower math intrinsics to math operations first. This commit changes how math intrinsics are lowered: we, first, try to lower them into MLIR operations or libm calls via mathOperations table and only then fallback to pgmath runtime calls. The pgmath fallback is needed, because mathOperations does not support all intrinsics that pgmath supports. The main purpose of this change is to get rid of llvmIntrinsics table so that we do not have to update both llvmIntrinsics and mathOperations when adding new intrinsic support. mathOperations lowering should phase out pgmath lowering, when more operations are available (e.g. power operations being added in D129809 and D129811; complex type operations from Complex dialect). Differential Revision: https://reviews.llvm.org/D130129 | 3 年前 | |
Revert "[flang][OpenMP] Lowering support for default clause" This reverts commit 05e6fce84fd39d150195b8928561f2c90c71e538. | 3 年前 | |
Use lit_config.substitute instead of foo % lit_config.params everywhere This mechanically applies the same changes from D121427 everywhere. Differential Revision: https://reviews.llvm.org/D121746 | 4 年前 | |
[flang][OpenMP] Added parser support for in_reduction clause OpenMP 5.0 adds a new clause in_reduction on OpenMP directives. This patch adds parser support for the same. Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D124156 | 3 年前 | |
[flang] Support correct continuations for compiler directives If a line is over 72 characters long, flang's preprocessor cuts it there and continues on the next line. For this purpose it uses the standard way of continuing line with & on each line. However, it doesn't work with long compiler directives, like OpenMP or OpenACC ones. The line that continues the directive also has to contain the corresponding sentinel at the beginning. This change implements the described functionality. Also, some code was refactored in order to simplify and reuse existing code. Reviewed By: klausler Differential Revision: https://reviews.llvm.org/D126301 | 4 年前 | |
Reland "[flang] GET_COMMAND_ARGUMENT runtime implementation" Recommit https://reviews.llvm.org/D109813 and https://reviews.llvm.org/D109814. This implements the second and final entry point for GET_COMMAND_ARGUMENT, handling the VALUE, STATUS and ERRMSG parameters. It has a small fix in that we're now using memcpy instead of strncpy (which was a bad idea to begin with, since we're not actually interested in a string copy). | 4 年前 | |
Revert "[flang][OpenMP] Lowering support for default clause" This reverts commit 05e6fce84fd39d150195b8928561f2c90c71e538. | 3 年前 | |
Use lit_config.substitute instead of foo % lit_config.params everywhere This mechanically applies the same changes from D121427 everywhere. Differential Revision: https://reviews.llvm.org/D121746 | 4 年前 | |
[flang][driver] Add support for generating executables This patch adds 2 missing items required for flang-new to be able to generate executables: 1. The Fortran_main runtime library, which implements the main entry point into Fortran's PROGRAM in Flang, 2. Extra linker flags to include Fortran runtime libraries (e.g. Fortran_main). Fortran_main is the bridge between object files generated by Flang and the C runtime that takes care of program set-up at system-level. For every Fortran PROGRAM, Flang generates the _QQmain function. Fortran_main implements the C main function that simply calls _QQmain. Additionally, "<driver-path>/../lib" directory is added to the list of search directories for libraries. This is where the required runtime libraries are currently located. Note that this the case for the build directory. We haven't considered installation directories/targets yet. With this change, you can generate an executable that will print hello, world! as follows: bash $ cat hello.f95 PROGRAM HELLO write(*, *) "hello, world!" END PROGRAM HELLO $ flang-new -flang-experimental-exec hello.f95 ./a.out hello, world! NOTE 1: Fortran_main has to be a static library at all times. It invokes _QQmain, which is the main entry point generated by Flang for the given input file (you can check this with flang-new -S hello.f95 -o - | grep "Qmain"). This means that Fortran_main has an unresolved dependency at build time. The linker will allow this for a static library. However, if Fortran_main was a shared object, then the linker will produce an error: undefined symbol: _QQmain. NOTE 2: When Fortran runtime libraries are generated as shared libraries (excluding Fortran_main, which is always static), you will need to tell the dynamic linker (by e.g. tweaking LD_LIBRARY_PATH) where to look for them when invoking the executables. For example: bash LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<flang-build-dir>/lib/ ./a.out NOTE 3: This feature is considered experimental and currently guarded with a flag: -flang-experimental-exec. Differential Revision: https://reviews.llvm.org/D122008 [1] https://github.com/flang-compiler/f18-llvm-project CREDITS: Fortran_main was originally written by Eric Schweitz, Jean Perier, Peter Klausler and Steve Scalpone in the fir-dev branch in [1]. Co-authored-by: Eric Schweitz <eschweitz@nvidia.com> Co-authored-by: Peter Klausler <pklausler@nvidia.com> Co-authored-by: Jean Perier <jperier@nvidia.com> Co-authored-by: Steve Scalpone <sscalpone@nvidia.com | 4 年前 | |
[flang][driver] Add support for consuming LLVM IR/BC files This change makes sure that Flang's driver recognises LLVM IR and BC as supported file formats. To this end, isFortran is extended and renamed as isSupportedByFlang (the latter better reflects the new functionality). New tests are added to verify that the target triple is correctly overridden by the frontend driver's default value or the value specified with -triple. Strictly speaking, this is not a functionality that's new in this patch (it was added in D124664). This patch simply enables us to write such tests and hence I'm including them here. Differential Revision: https://reviews.llvm.org/D124667 | 4 年前 | |
Use lit_config.substitute instead of foo % lit_config.params everywhere This mechanically applies the same changes from D121427 everywhere. Differential Revision: https://reviews.llvm.org/D121746 | 4 年前 |