- Aug 11, 2022
-
-
Kadir Cetinkaya authored
This reverts commit 4e94f665. See https://reviews.llvm.org/D129973#3698969 for reasoning. (cherry picked from commit df48e3fb)
-
Fangrui Song authored
BSD and GNU ranlib support more than one input file. Implement this. While here, update OVERVIEW (Ranlib => ranlib) since "ranlib" is more common. Remove "speed access" since the index has nothing to do with performance: it is mandatory for GNU ld and gold but ignored for ld.lld (D119074). Close https://github.com/llvm/llvm-project/issues/54565 Differential Revision: https://reviews.llvm.org/D131375 (cherry picked from commit aa173573)
-
Fangrui Song authored
(cherry picked from commit 350f17ab)
-
Mark de Wever authored
This paper was accepted during the last plenary and is intended to be backported to LLVM 15. When backporting the release notes in the branch should be updated too. Note the feature-test macro isn't updated since this will change; three papers have updated the same macro in the same plenary. Implements: - P2508R1 Exposing std::basic-format-string Reviewed By: ldionne, #libc Differential Revision: https://reviews.llvm.org/D130643 (cherry picked from commit f712775d)
-
- Aug 10, 2022
-
-
Michael Kruse authored
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 8c0979c8)
-
Kadir Cetinkaya authored
-
David Green authored
D129150 added a combine from shuffles to And that creates a BUILD_VECTOR of constant elements. We need to ensure that the elements are of a legal type, to prevent asserts during lowering. Fixes #56970. Differential Revision: https://reviews.llvm.org/D131350 (cherry picked from commit 061e0189)
-
David Green authored
(cherry picked from commit f8d97617)
-
Diana Picus authored
When linking scudo standalone on armv7, it can't find symbols related to unwinding (e.g. __aeabi_unwind_cpp_pr0). This is because it is passing --unwindlib=none. This patch hacks around the issue by adding COMPILER_RT_UNWINDER_LINK_LIBS to the link line. I don't know anything about scudo, so I'm not sure what the original intention was. See also https://github.com/llvm/llvm-project/issues/56900 Differential Revision: https://reviews.llvm.org/D131250 (cherry picked from commit 8342ea6e)
-
Tom Stellard authored
As discussed on RFC mapping into SPIR-V requires pointer being preserved in some cases: https://discourse.llvm.org/t/rfc-better-support-for-typed-pointers-in-an-opaque-pointer-world/63339/23?u=anastasiastulova As the work is still unfinished the best approach is to continue using pointer types. Note that this change is only planned to be committed in release 15 branch. This fixing PR56660. Reviewed By: jcranmer-intel Differential Revision: https://reviews.llvm.org/D130766
-
Alex Brachet authored
This was recently introduced in GNU linkers and it makes sense for ld.lld to have the same support. This implementation omits checking if the input string is valid json to reduce size bloat. Differential Revision: https://reviews.llvm.org/D131439 (cherry picked from commit dbd04b85)
-
- Aug 09, 2022
-
-
Martin Storsjö authored
CMAKE_DL_LIBS is documented as "Name of library containing dlopen and dlclose". On Windows platforms, there's no system provided dlopen/dlclose, but it can be argued that if you really intend to call dlopen/dlclose, you're going to be using a third party compat library like https://github.com/dlfcn-win32/dlfcn-win32, and CMAKE_DL_LIBS should expand to its name. This has been argued upstream in CMake in https://gitlab.kitware.com/cmake/cmake/-/issues/17600 and https://gitlab.kitware.com/cmake/cmake/-/merge_requests/1642, that CMAKE_DL_LIBS should expand to "dl" on mingw platforms. The merge request wasn't merged though, as it caused some amount of breakage, but in practice, Fedora still carries a custom CMake patch with the same effect. Thus, this patch fixes cross compiling OpenMP for mingw targets on Fedora with their custom-patched CMake. Differential Revision: https://reviews.llvm.org/D130892 (cherry picked from commit 7f24fd26)
-
Jonathan Peyton authored
omp50_taskdep_depobj.c relies on the test compiler's omp.h file. If the test compiler does not have an omp.h file, then use the one within the build tree. Fixes: https://github.com/llvm/llvm-project/issues/56820 Differential Revision: https://reviews.llvm.org/D131000 (cherry picked from commit 9cf6511b)
-
David Sherwood authored
Eliminate an AND by redefining an anyext|sext|zext. (and (extract_subvector (anyext|sext|zext v) _) iN_mask) => (extract_subvector (zeroext_iN v)) Differential Revision: https://reviews.llvm.org/D130782 (cherry picked from commit 41119a0f) -
David Sherwood authored
A build vector of two extracted elements is equivalent to an extract subvector where the inner vector is any-extended to the extract_vector_elt VT, because extract_vector_elt has the effect of an any-extend. (build_vector (extract_elt_i16_to_i32 vec Idx+0) (extract_elt_i16_to_i32 vec Idx+1)) => (extract_subvector (anyext_i16_to_i32 vec) Idx) Depends on D130697 Differential Revision: https://reviews.llvm.org/D130698 (cherry picked from commit 487fa6f8)
-
David Sherwood authored
Add tests which show code quality of uitofp and sitofp. Differential Revision: https://reviews.llvm.org/D130697 (cherry picked from commit 6953e754)
-
Martin Storsjö authored
This fixes warnings like these: ../runtime/src/kmp_dispatch.cpp:2159:24: warning: left operand of comma operator has no effect [-Wunused-value] OMPT_LOOP_DISPATCH(*p_lb, *p_ub, pr->u.p.st, status); ^~~~~ ../runtime/src/kmp_dispatch.cpp:2159:31: warning: left operand of comma operator has no effect [-Wunused-value] OMPT_LOOP_DISPATCH(*p_lb, *p_ub, pr->u.p.st, status); ^~~~~ ../runtime/src/kmp_dispatch.cpp:2159:46: warning: left operand of comma operator has no effect [-Wunused-value] OMPT_LOOP_DISPATCH(*p_lb, *p_ub, pr->u.p.st, status); ~~~~~~~ ^~ ../runtime/src/kmp_dispatch.cpp:2159:50: warning: expression result unused [-Wunused-value] OMPT_LOOP_DISPATCH(*p_lb, *p_ub, pr->u.p.st, status); ^~~~~~ (cherry picked from commit 3f25ad33) -
Dmitry Vassiliev authored
This patch fixes the error llvm/lib/CodeGen/MachineScheduler.cpp(755): error C2065: 'MISchedCutoff': undeclared identifier in case of NDEBUG and LLVM_ENABLE_ABI_BREAKING_CHECKS. Note MISchedCutoff is declared under #ifndef NDEBUG. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D130425 (cherry picked from commit adc38746)
-
Stefan Gränitz authored
Macros that expand into multiple terms can cause interesting preprocessor hickups depending on the context they are used in. https://github.com/llvm/llvm-project/issues/56867 reported a miscompilation of `llvm_unreachable(msg)` inside a `LLVM_DEBUG({ ... })` block. We were able to fix it by wrapping the expansion in a `do {} while(false)`. Differential Revision: https://reviews.llvm.org/D131337 (cherry picked from commit 7a66fe10)
-
Jez Ng authored
Previously we only supporting using the system pointer size (aka the `absptr` encoding) because `llvm-mc`'s CFI directives always generate EH frames with that encoding. But libffi uses 4-byte-encoded, hand-rolled EH frames, so this patch adds support for it. Fixes #56576. Reviewed By: #lld-macho, oontvoo Differential Revision: https://reviews.llvm.org/D130804 (cherry picked from commit 6c9f6812)
-
Louis Dionne authored
When back-deploying to older platforms, we can still provide assertions, but we might not be able to provide a great implementation for the verbose handler. Instead, we can just call ::abort(). Differential Revision: https://reviews.llvm.org/D131199 (cherry picked from commit e36f9e13)
-
Konstantin Varlamov authored
The newly-completed papers: - P0896R4 ("The One Ranges Proposal"); - P1243R4 ("Rangify New Algorithms"); - P1252R2 ("Ranges Design Cleanup"); - P1716R3 ("Range Comparison Algorithms Are Over-Constrained"); - P1871R1 ("Concept traits should be named after concepts"); - P2106R0 ("Alternative wording for GB315 and GB316"). Differential Revision: https://reviews.llvm.org/D131234 (cherry picked from commit 3fa291fa) -
Konstantin Varlamov authored
Also fix `std::find_first_of` (which accidentally copied the predicate in the implementation). Differential Revision: https://reviews.llvm.org/D131235 (cherry picked from commit 8ac015ca)
-
Louis Dionne authored
This partially reverts commit 7d855bb8. The comments were actually not outdated, they were simply unclear. (cherry picked from commit cf08452e)
-
Louis Dionne authored
(cherry picked from commit 7d855bb8)
-
Konstantin Varlamov authored
Evaluating `contiguous_iterator` on an iterator that satisfies all the constraints except the `to_address` constraint and doesn't have `operator->` defined results in a hard error. This is because instantiating `to_address` ends up instantiating templates dependent on the given type which might lead to a hard error even in a SFINAE context. Differential Revision: https://reviews.llvm.org/D130835 (cherry picked from commit 52d4c501)
-
Nikolas Klauser authored
Co-authored-by:
Konstantin Varlamov <varconst@apple.com> Differential Revision: https://reviews.llvm.org/D127194 (cherry picked from commit 4038c859)
-
Igor Zhukov authored
I found it in this commit: https://github.com/llvm/llvm-project/commit/a203acb9dd7227323d6161431225189d49917744 Reviewed By: Mordante Differential Revision: https://reviews.llvm.org/D131163 (cherry picked from commit 1915c1c0)
-
Nikolas Klauser authored
Differential Revision: https://reviews.llvm.org/D126193 (cherry picked from commit a203acb9)
-
Konstantin Varlamov authored
Also fix `ranges::stable_sort` and `ranges::inplace_merge` to support proxy iterators now that their internal implementations can correctly dispatch `rotate`. Differential Revision: https://reviews.llvm.org/D130758 (cherry picked from commit 36c746ca)
-
Louis Dionne authored
(cherry picked from commit 144cea2c)
-
Tobias Hieta authored
These are new debug types that ships with the latest Windows SDK and would warn and finally fail lld-link. The symbols seems to be related to Microsoft's XFG which is their version of CFG. We can't handle any of this yet, so for now we can just ignore these types so that lld doesn't fail with a new version of Windows SDK. Fixes: #56285 Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D129378 (cherry picked from commit 576375a2)
-
Nikita Popov authored
As mentioned in https://reviews.llvm.org/D121379#3690593, this change broke the build of compiler-rt targeting powerpc using GCC. The 32-bit powerpc target is not supposed to emit 128-bit libcalls -- if it does, then that's a backend bug and needs to be fixed there. This reverts commit 8f24a56a. Differential Revision: https://reviews.llvm.org/D130988 (cherry picked from commit 542977d4)
-
Fangrui Song authored
D74537 introduced a bug: if `(config->andFeatures & GNU_PROPERTY_AARCH64_FEATURE_1_PAC) != 0` with -z pac-plt unspecified, we incorrectly use AArch64BtiPac, whose writePlt will make out-of-bounds write after the .plt section. This is often benign because the output section after .plt will usually overwrite the content. This is very difficult to test without D131247 (Parallelize writes of different OutputSections). (cherry picked from commit d7cbfcf3)
-
Fangrui Song authored
The place from D61712 seems unneeded now. We can just use the place added by D62609 (support AArch64 BTI/PAC). (cherry picked from commit e89d6d2a)
-
Fangrui Song authored
D91426 makes .got possibly empty while needed. If .got and .data have the same address, and .got's content is written after .data, the first word of .data will be corrupted. The bug is not testable without D131247. (cherry picked from commit 28d05d67)
-
Fangrui Song authored
Some tests (e.g. aarch64-feature-pac.s) segfault in libstdc++ _GLIBCXX_DEBUG builds (enabled by LLVM_ENABLE_EXPENSIVE_CHECKS). dyn_cast<ThunkSection> is incorrectly true for any SyntheticSection. std::merge transitively calls mergeCmp(x, x) (due to __glibcxx_requires_irreflexive_pred) and will segfault in `ta->getTargetInputSection()`. The dyn_cast<ThunkSection> issue should be eventually fixed properly, bug `a != b` is robust enough for now. (cherry picked from commit abd98075)
-
Keith Smiley authored
Fixes https://github.com/llvm/llvm-project/issues/56960 Differential Revision: https://reviews.llvm.org/D131288 (cherry picked from commit 9ec4ddd2)
-
Nathan James authored
In https://github.com/llvm/llvm-project/commit/6e566bc5523f743bc34a7e26f050f1f2b4d699a8, The directory structure of the documentation for clang-tidy checks was changed, however clangd wasn't updated. Now all the links generated will point to old dead pages. This updated clangd to use the new page structure. Reviewed By: sammccall, kadircet Differential Revision: https://reviews.llvm.org/D128379 (cherry picked from commit 4c106c93)
-
David Green authored
Given a poison constant as input, the dyn_cast to a ConstantInt would fail so we would fall through to the generic code that attempts to fold each element of the input vectors. The inputs to these intrinsics are not vectors though, leading to a compile time crash. Instead bail out properly for poison values by returning nullptr. This doesn't try to define what poison means for these intrinsics. Fixes #56945 (cherry picked from commit b2de8463)
-