| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[flang/flang-rt] Add -isysroot flag only to tests really requiring (#152914) -isysroot flag was added to all tests, but it makes Driver/darwin-version.f90 failed. In fact, only a few tests regarding interoperability with C need -isysroot flag to search for headers and libraries. So, -isysroot flag is now eliminated from the substitution %flang, and a new substitution %isysroot has been introduced. Moreover, Integration/iso-fortran-binding.cpp invokes clang++ via a shell script, which makes it hard to add -isysroot flag. So, it is refactored. Fixes #150765 | 11 个月前 | |
[Flang/Flang-RT] Fix OldUnit tests on Windows (#150734) Flang and Flang-RT have two flavours of unittests: 1. GTest unittests, using lit's lit.formats.GoogleTest format ending with Tests${CMAKE_EXECUTABLE_SUFFIX} 2. "non-GTest" or "OldUnit" unittests, a plain executable ending with .test${CMAKE_EXECUTABLE_SUFFIX} Both executables are emitted into the same unittests/ subdirectory. When running ... 1. tests/Unit/lit.cfg.py, only considers executable ending with Tests (or Tests.exe on Windows), hence skips the non-GTest tests. 2. tests/NonGtestUnit/lit.cfg.py considers all tests ending with .test or .exe. On Windows, The GTest unitests also end with .exe. In Flang-RT, .exe is considered an extension for non-GTest unitests which causes tests such as Flang's RuntimeTests.exe to be executed for both on Windows. This particular test includes a file write test, using a hard-coded filename ucsfile. If the two instances are executed concurrently, they might interfere with each other reading/writing ucsfile which results in a flaky test. This patch avoids the redundant execution by requiring the suffix .test.exe on Windows. lit has to be modified because it uses os.path.splitext the extract the extension, which would only recognize the last component. It was changed from the orginal endswith in c865abe747aa72192f02ebfdcabe730f2553e42f for unknown reasons. In Flang, .exe is not considered a suffix for non-GTest unittests and hence they are not run at all. Fixing by also added .test.exe as valid suffix, like with Flang-RT. Unfortunately, the Evaluate/real.test.exe test was failing on Windows: FAIL: flang-OldUnit :: Evaluate/real.test.exe (3592 of 3592) ******************** TEST 'flang-OldUnit :: Evaluate/real.test.exe' FAILED ******************** ..\_src\flang\unittests\Evaluate\real.cpp:511: FAIL: FlagsToBits(prod.flags) == 0x18, not 0x10 0 0x800001 * 0xbf7ffffe ..\_src\flang\unittests\Evaluate\real.cpp:511: FAIL: FlagsToBits(prod.flags) == 0x18, not 0x10 0 0x800001 * 0x3f7ffffe ..\_src\flang\unittests\Evaluate\real.cpp:511: FAIL: FlagsToBits(prod.flags) == 0x18, not 0x10 0 0x80800001 * 0xbf7ffffe ..\_src\flang\unittests\Evaluate\real.cpp:511: FAIL: FlagsToBits(prod.flags) == 0x18, not 0x10 0 0x80800001 * 0x3f7ffffe ... This is due to the __x86_64__ macro not being set by Microsoft's cl.exe and hence floating point status flags not being read out. The equivalent macro for Microsofts compiler is _M_X64 (or _M_X64). | 1 年前 | |
[flang/flang-rt] Add -isysroot flag only to tests really requiring (#152914) -isysroot flag was added to all tests, but it makes Driver/darwin-version.f90 failed. In fact, only a few tests regarding interoperability with C need -isysroot flag to search for headers and libraries. So, -isysroot flag is now eliminated from the substitution %flang, and a new substitution %isysroot has been introduced. Moreover, Integration/iso-fortran-binding.cpp invokes clang++ via a shell script, which makes it hard to add -isysroot flag. So, it is refactored. Fixes #150765 | 11 个月前 | |
[Flang] LLVM_ENABLE_RUNTIMES=flang-rt (#110217) Extract Flang's runtime library to use the LLVM_ENABLE_RUNTIME mechanism. It will only become active when LLVM_ENABLE_RUNTIMES=flang-rt is used, which also changes the FLANG_INCLUDE_RUNTIME to OFF so the old runtime build rules do not conflict. This also means that unless LLVM_ENABLE_RUNTIMES=flang-rt is passed, nothing changes with the current build process. Motivation: * Consistency with LLVM's other runtime libraries (compiler-rt, libc, libcxx, openmp offload, ...) * Allows compiling the runtime for multiple targets at once using the LLVM_RUNTIME_TARGETS configuration options * Installs the runtime into the compiler's per-target resource directory so it can be automatically found even when cross-compiling Also see RFC discussion at https://discourse.llvm.org/t/rfc-use-llvm-enable-runtimes-for-flangs-runtime/80826 | 1 年前 | |
[Flang-RT][Offload] Always use LLVM-built GTest (#143682) The Offload and Flang-RT had the ability to compile GTest themselves. But in bootstrapping builds, LLVM_LIBRARY_OUTPUT_INTDIR points to the same location as the stage1 build. If both are building GTest, they everwrite each others libllvm_gtest.a and libllvm_test_main.a which causes #143134. This PR removes the ability for the Offload/Flang-RT runtimes to build their own GTest and instead relies on the stage1 build of GTest. This was already the case with LLVM_INSTALL_GTEST=ON configurations. For LLVM_INSTALL_GTEST=OFF configurations, we now also export gtest into the buildtree configuration. Ultimately, this reduces combinatorial explosion of configurations in which unittests could be built (LLVM_INSTALL_GTEST=ON, GTest built by Offload, GTest built by Flang-RT, GTest built by Offload and also used by Flang-RT). GTest and therefore Offload/Runtime unittests will not be available if the runtimes are configured against an LLVM install tree. Since llvm-lit isn't available in the install tree either, it doesn't matter. Note that compiler-rt and libc also use GTest in non-default configrations. libc also depends on LLVM's GTest build (and would error-out if unavailable), but compiler-rt builds it completely different. Fixes #143134 | 1 年前 | |
[flang-rt] Enable lit internal shell by default (#156095) This patch enables the lit internal shell by default for testing flang-rt. The lit internal shell is able to run tests a bit faster as it avoids having to fork bash for every run line and also produces nicer debug information on failures. This is part of #102704. | 10 个月前 | |
[Flang] LLVM_ENABLE_RUNTIMES=flang-rt (#110217) Extract Flang's runtime library to use the LLVM_ENABLE_RUNTIME mechanism. It will only become active when LLVM_ENABLE_RUNTIMES=flang-rt is used, which also changes the FLANG_INCLUDE_RUNTIME to OFF so the old runtime build rules do not conflict. This also means that unless LLVM_ENABLE_RUNTIMES=flang-rt is passed, nothing changes with the current build process. Motivation: * Consistency with LLVM's other runtime libraries (compiler-rt, libc, libcxx, openmp offload, ...) * Allows compiling the runtime for multiple targets at once using the LLVM_RUNTIME_TARGETS configuration options * Installs the runtime into the compiler's per-target resource directory so it can be automatically found even when cross-compiling Also see RFC discussion at https://discourse.llvm.org/t/rfc-use-llvm-enable-runtimes-for-flangs-runtime/80826 | 1 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 11 个月前 | ||
| 1 年前 | ||
| 11 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 10 个月前 | ||
| 1 年前 |