[llvm-branch-commits] [libcxxabi] 4094728 - [libc++abi] Apply simplify scan_eh_tab to SjLj
Author: Kazushi (Jam) Marukawa
Date: 2021-08-26T13:22:32-04:00
New Revision: 4094728a81478ae05e4e6cefdc7b2a2cb3a5e73b
URL:
https://github.com/llvm/llvm-project/commit/4094728a81478ae05e4e6cefdc7b2a2cb3a5e73b
DIFF:
https://github.com/llvm/llvm-project/commit/4094728a81478ae05e4e6cefdc7b2a2cb3a5e73b.diff
LOG: [libc++abi] Apply simplify scan_eh_tab to SjLj
Previous "simplify scan_eh_tab" patch, https://reviews.llvm.org/D93190,
saves landingpad if and only if the target is not using SjLj exceptions.
However, the landingpad is used by SjLj exception handler also. This
patch changes to set landingpad for both exception handlers.
Differential Revision: https://reviews.llvm.org/D108082
(cherry picked from commit 9d2740f331772d372d4d437192da56b8c60e9fe8)
Added:
Modified:
libcxxabi/src/cxa_personality.cpp
Removed:
diff --git a/libcxxabi/src/cxa_personality.cpp
b/libcxxabi/src/cxa_personality.cpp
index a4f81d74735f1..91b584eb8c8d4 100644
--- a/libcxxabi/src/cxa_personality.cpp
+++ b/libcxxabi/src/cxa_personality.cpp
@@ -702,10 +702,10 @@ static void scan_eh_tab(scan_results &results,
_Unwind_Action actions,
return;
}
landingPad = (uintptr_t)lpStart + landingPad;
-results.landingPad = landingPad;
#else // __USING_SJLJ_EXCEPTIONS__
++landingPad;
#endif // __USING_SJLJ_EXCEPTIONS__
+results.landingPad = landingPad;
if (actionEntry == 0)
{
// Found a cleanup
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [libcxx] 198edf0 - [libc++] XFAIL align.pass.cpp for PowerPC LE
Author: Louis Dionne
Date: 2021-08-26T13:22:50-04:00
New Revision: 198edf09f58e19ae912206f871207af3ceace192
URL:
https://github.com/llvm/llvm-project/commit/198edf09f58e19ae912206f871207af3ceace192
DIFF:
https://github.com/llvm/llvm-project/commit/198edf09f58e19ae912206f871207af3ceace192.diff
LOG: [libc++] XFAIL align.pass.cpp for PowerPC LE
This patch XFAILs the `align.pass.cpp` for PowerPC (LE).
It appears that this test will fail on Power for the `LLIArr2` and `Padding`
structs within the test,
as the `assert` for `alignof(AtomicImpl) >= sizeof(AtomicImpl)` will be false.
In this case, these structs
presumably should not be lock-free, so we currently XFAIL this for now.
The failure was discovered after D97913 was committed. It looks like
`alignof(AtomicImpl) < sizeof(AtomicImpl)`,
even prior to this commit, but this test began running on Power after D97913,
whereas we were
not running `align.pass.cpp` before.
This patch addresses https://bugs.llvm.org/show_bug.cgi?id=51548 by temporarily
XFAILing the test
in order to investigate it further.
Differential Revision: https://reviews.llvm.org/D108668
(cherry picked from commit f640c31e4b12e6d12d2fc540451e07bf49dba257)
Added:
Modified:
libcxx/test/libcxx/atomics/atomics.align/align.pass.cpp
Removed:
diff --git a/libcxx/test/libcxx/atomics/atomics.align/align.pass.cpp
b/libcxx/test/libcxx/atomics/atomics.align/align.pass.cpp
index 279fc090244f0..3735bb50367b8 100644
--- a/libcxx/test/libcxx/atomics/atomics.align/align.pass.cpp
+++ b/libcxx/test/libcxx/atomics/atomics.align/align.pass.cpp
@@ -20,6 +20,12 @@
// std::atomic when used with __attribute__((vector(X))).
// XFAIL: gcc
+// This fails on PowerPC, as the LLIArr2 and Padding structs do not have
+// adequate alignment, despite these types returning true for the query of
+// being lock-free. This is an issue that occurs when linking in the
+// PowerPC GNU libatomic library into the test.
+// XFAIL: target=powerpc{{.*}}le-unknown-linux-gnu
+
//
// Verify that the content of atomic is properly aligned if the type is
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [libcxx] 34300c3 - [libc++] Fix incorrect bypassing of
Author: Louis Dionne Date: 2021-08-26T13:34:30-04:00 New Revision: 34300c3c00f5c724b662fc228bac8df5196f75c9 URL: https://github.com/llvm/llvm-project/commit/34300c3c00f5c724b662fc228bac8df5196f75c9 DIFF: https://github.com/llvm/llvm-project/commit/34300c3c00f5c724b662fc228bac8df5196f75c9.diff LOG: [libc++] Fix incorrect bypassing of Differential Revision: https://reviews.llvm.org/D108709 (cherry picked from commit a4357bc496d05fd16a7d3df7817b6c3161faab0b) Added: Modified: libcxx/include/cwctype libcxx/include/wctype.h Removed: diff --git a/libcxx/include/cwctype b/libcxx/include/cwctype index 17c68d6d4544f..27eea2f15730d 100644 --- a/libcxx/include/cwctype +++ b/libcxx/include/cwctype @@ -59,6 +59,7 @@ wctrans_t wctrans(const char* property); _LIBCPP_BEGIN_NAMESPACE_STD +#if defined(_LIBCPP_INCLUDED_C_LIBRARY_WCTYPE_H) using ::wint_t _LIBCPP_USING_IF_EXISTS; using ::wctrans_t _LIBCPP_USING_IF_EXISTS; using ::wctype_t _LIBCPP_USING_IF_EXISTS; @@ -80,6 +81,7 @@ using ::towlower _LIBCPP_USING_IF_EXISTS; using ::towupper _LIBCPP_USING_IF_EXISTS; using ::towctrans _LIBCPP_USING_IF_EXISTS; using ::wctrans _LIBCPP_USING_IF_EXISTS; +#endif // _LIBCPP_INCLUDED_C_LIBRARY_WCTYPE_H _LIBCPP_END_NAMESPACE_STD diff --git a/libcxx/include/wctype.h b/libcxx/include/wctype.h index 1b4b1461496c0..3b614759ac6d1 100644 --- a/libcxx/include/wctype.h +++ b/libcxx/include/wctype.h @@ -50,8 +50,18 @@ wctrans_t wctrans(const char* property); #pragma GCC system_header #endif +// TODO: +// In the future, we should unconditionally include_next here and instead +// have a mode under which the library does not need libc++'s or +// at all (i.e. a mode without wchar_t). As it stands, we need to do that to completely +// bypass the using declarations in when we did not include . +// Otherwise, a using declaration like `using ::wint_t` in will refer to +// nothing (with using_if_exists), and if we include another header that defines one +// of these declarations (e.g. ), the second `using ::wint_t` with using_if_exists +// will fail because it does not refer to the same declaration. #if __has_include_next() # include_next +# define _LIBCPP_INCLUDED_C_LIBRARY_WCTYPE_H #endif #ifdef __cplusplus ___ llvm-branch-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang] 34ff6a7 - [docs] Update release notes for OpenMP 5.1 loop transformations.
Author: Michael Kruse Date: 2021-08-26T13:45:39-05:00 New Revision: 34ff6a75f58377f32a5046a29f55c4c0e58bee9e URL: https://github.com/llvm/llvm-project/commit/34ff6a75f58377f32a5046a29f55c4c0e58bee9e DIFF: https://github.com/llvm/llvm-project/commit/34ff6a75f58377f32a5046a29f55c4c0e58bee9e.diff LOG: [docs] Update release notes for OpenMP 5.1 loop transformations. Added: Modified: clang/docs/ReleaseNotes.rst Removed: diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index 285e057d92dde..4b6f4fe5e245b 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -161,6 +161,24 @@ ABI Changes in Clang OpenMP Support in Clang --- +- Support for loop transformation directives from OpenMP 5.1 have been added. + ``#pragma omp unroll`` is a standardized alternative to ``#pragma unroll`` + (or ``#pragma clang loop unroll(enable)``) but also allows composition with + other OpenMP loop associated constructs as in + + .. code-block:: c +#pragma omp parallel for +#pragma omp unroll partial(4) +for (int i = 0; i < n; ++i) + + ``#pragma omp tile`` applies tiling to a perfect loop nest using a + user-defined tile size. + + .. code-block:: c +#pragma omp tile sizes(8,8) +for (int i = 0; i < m; ++i) + for (int j = 0; j < n; ++j) + - ... CUDA Support in Clang ___ llvm-branch-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang] 884f6d6 - [CMake] Change -DENABLE_EXPERIMENTAL_NEW_PASS_MANAGER=off to -DLLVM_ENABLE_NEW_PASS_MANAGER=off
Author: Fangrui Song
Date: 2021-08-26T16:40:38-07:00
New Revision: 884f6d65e42e2c6fa0ab5f4b3cd0bcddee28ee5b
URL:
https://github.com/llvm/llvm-project/commit/884f6d65e42e2c6fa0ab5f4b3cd0bcddee28ee5b
DIFF:
https://github.com/llvm/llvm-project/commit/884f6d65e42e2c6fa0ab5f4b3cd0bcddee28ee5b.diff
LOG: [CMake] Change -DENABLE_EXPERIMENTAL_NEW_PASS_MANAGER=off to
-DLLVM_ENABLE_NEW_PASS_MANAGER=off
LLVM_ENABLE_NEW_PASS_MANAGER is set to ENABLE_EXPERIMENTAL_NEW_PASS_MANAGER, so
-DLLVM_ENABLE_NEW_PASS_MANAGER=off has no effect.
Change the cache variable to LLVM_ENABLE_NEW_PASS_MANAGER instead.
A user opting out the new PM needs to switch from
-DENABLE_EXPERIMENTAL_NEW_PASS_MANAGER=off to
-DLLVM_ENABLE_NEW_PASS_MANAGER=off.
Also give a warning that -DLLVM_ENABLE_NEW_PASS_MANAGER=off is deprecated.
Reviewed By: aeubanks, phosek
Differential Revision: https://reviews.llvm.org/D108775
(cherry picked from commit a42bd1b560524905d3b9aebcb658cf6dc9521d26)
Added:
Modified:
clang/cmake/caches/Fuchsia-stage2.cmake
clang/cmake/caches/Fuchsia.cmake
llvm/CMakeLists.txt
llvm/docs/NewPassManager.rst
Removed:
diff --git a/clang/cmake/caches/Fuchsia-stage2.cmake
b/clang/cmake/caches/Fuchsia-stage2.cmake
index aa45c1549340b..e50681484ff54 100644
--- a/clang/cmake/caches/Fuchsia-stage2.cmake
+++ b/clang/cmake/caches/Fuchsia-stage2.cmake
@@ -41,7 +41,6 @@ set(CLANG_ENABLE_ARCMT OFF CACHE BOOL "")
set(CLANG_ENABLE_STATIC_ANALYZER ON CACHE BOOL "")
set(CLANG_PLUGIN_SUPPORT OFF CACHE BOOL "")
-set(ENABLE_EXPERIMENTAL_NEW_PASS_MANAGER ON CACHE BOOL "")
set(ENABLE_LINKER_BUILD_ID ON CACHE BOOL "")
set(ENABLE_X86_RELAX_RELOCATIONS ON CACHE BOOL "")
diff --git a/clang/cmake/caches/Fuchsia.cmake
b/clang/cmake/caches/Fuchsia.cmake
index babc14e51a8da..a98354b7782fc 100644
--- a/clang/cmake/caches/Fuchsia.cmake
+++ b/clang/cmake/caches/Fuchsia.cmake
@@ -32,7 +32,6 @@ set(CLANG_ENABLE_ARCMT OFF CACHE BOOL "")
set(CLANG_ENABLE_STATIC_ANALYZER ON CACHE BOOL "")
set(CLANG_PLUGIN_SUPPORT OFF CACHE BOOL "")
-set(ENABLE_EXPERIMENTAL_NEW_PASS_MANAGER ON CACHE BOOL "")
set(ENABLE_LINKER_BUILD_ID ON CACHE BOOL "")
set(ENABLE_X86_RELAX_RELOCATIONS ON CACHE BOOL "")
diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt
index 99773a5ee546c..af53a26d2d67f 100644
--- a/llvm/CMakeLists.txt
+++ b/llvm/CMakeLists.txt
@@ -702,8 +702,13 @@ else()
endif()
option(LLVM_ENABLE_PLUGINS "Enable plugin support"
${LLVM_ENABLE_PLUGINS_default})
-set(ENABLE_EXPERIMENTAL_NEW_PASS_MANAGER TRUE CACHE BOOL
+set(LLVM_ENABLE_NEW_PASS_MANAGER TRUE CACHE BOOL
"Enable the new pass manager by default.")
+if(NOT LLVM_ENABLE_NEW_PASS_MANAGER)
+ message(WARNING "Using the legacy pass manager for the optimization pipeline"
+ " is deprecated. The functionality will degrade over time
and"
+ " be removed in a future release.")
+endif()
include(HandleLLVMOptions)
@@ -833,10 +838,6 @@ if (NOT TENSORFLOW_AOT_PATH STREQUAL "")
set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS tf_xla_runtime)
endif()
-# Keep the legacy CMake flag ENABLE_EXPERIMENTAL_NEW_PASS_MANAGER for
-# compatibility.
-set(LLVM_ENABLE_NEW_PASS_MANAGER ${ENABLE_EXPERIMENTAL_NEW_PASS_MANAGER})
-
# Configure the three LLVM configuration header files.
configure_file(
${LLVM_MAIN_INCLUDE_DIR}/llvm/Config/config.h.cmake
diff --git a/llvm/docs/NewPassManager.rst b/llvm/docs/NewPassManager.rst
index b3951cd76ea71..55898ef3b1fe6 100644
--- a/llvm/docs/NewPassManager.rst
+++ b/llvm/docs/NewPassManager.rst
@@ -449,7 +449,7 @@ with the legacy PM.
For the optimization pipeline, the new PM is the default PM. The legacy PM is
available for the optimization pipeline either by setting the CMake flag
-``-DENABLE_EXPERIMENTAL_NEW_PASS_MANAGER=OFF`` when building LLVM, or by
+``-DLLVM_ENABLE_NEW_PASS_MANAGER=OFF`` when building LLVM, or by
various compiler/linker flags, e.g. ``-flegacy-pass-manager`` for ``clang``.
There will be efforts to deprecate and remove the legacy PM for the
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
