aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
19 hours[libc++][TZDB] Finishes zoned_time member functions.users/mordante/zoned_time__membersMark de Wever8-2/+855
Note the implementation of zoned_time& operator=(const local_time<Duration>& lt); is not correct; however the wording cannot be easily implemented. It could be if the object caches the local_time assigned. However this does not seem to intended. The current implementation matches MSVC STL and libstdc++. Implements parts of: - P0355 Extending to chrono Calendars and Time Zones
22 hours[libc++][TZDB] Finishes zoned_time constructors.users/mordante/zoned_time__constructorMark de Wever14-7/+1252
Completes - LWG3225 zoned_time converting constructor shall not be noexcept - LWG3226 zoned_time constructor from string_view should accept zoned_time<Duration2, TimeZonePtr2> Implements parts of: - P0355 Extending to chrono Calendars and Time Zones
24 hours[libc++][TZDB] Adds basics of zoned_time class.users/mordante/zoned_time__classMark de Wever16-2/+842
This implements the class, its non-templated constructors and its getters to verify the construction. Completes - LWG3224 zoned_time constructor from TimeZonePtr does not specify initialization of tp_ Implements parts of: - P0355 Extending chrono to Calendars and Time Zones
25 hours[libc++][TZDB] Makes implementation experimental. (#95657)Mark de Wever11-10/+10
This moves the files to libcxx/src/experimental/ as discussed in #90394. Fixes: https://github.com/llvm/llvm-project/issues/94902
26 hours[AMDGPU][MC] Allow UC_VERSION_* constant reuse (#96461)Carl Ritson3-2/+220
If more than one disassembler is created for a context then allow reuse of existing constants. Warn if constants values do not match.
33 hours[Clang] Add captures to the instantiation scope for noexcept specifiers (#97166)Younan Zhang3-0/+31
The noexcept specifiers of dependent lambdas would be transformed and rebuilt, where the map of instantiation should also contain captured variables in case they are used from the noexcept specifier. I also uncovered another assertion failure while at it. However, I decided to leave it as-is because 1) that doesn't appear to be the case in the release version and 2) fixing that might lead to ABI breakage. Anyhow, the case has been added to the test comment. Fixes https://github.com/llvm/llvm-project/issues/95735
33 hoursRevert "[libc] Add `link.h` and `elf.h` headers" (#97931)Schrodinger ZHU Yifan10-150/+2
Reverts llvm/llvm-project#97924
33 hours[libc] Add `link.h` and `elf.h` headers (#97924)Izaak Schroeder10-2/+150
Headers for https://github.com/llvm/llvm-project/pull/97504
33 hoursFix build break for [CGData] Outlined Hash Tree (#89792)Kyungwoo Lee1-8/+8
33 hoursReleaseNotes: add lld/ELF notesFangrui Song1-0/+33
34 hours[CGData] Outlined Hash Tree (#89792)Kyungwoo Lee10-0/+701
This defines the OutlinedHashTree class. It contains sequences of stable hash values of instructions that have been outlined. This OutlinedHashTree can be used to track the outlined instruction sequences across modules. A trie structure is used in its implementation, allowing for a compact sharing of common prefixes. This is a patch for https://discourse.llvm.org/t/rfc-enhanced-machine-outliner-part-2-thinlto-nolto/78753.
35 hours[llvm] Remove redundant calls to std::unique_ptr<T>::get (NFC) (#97914)Kazu Hirata27-45/+43
35 hours[clangd] Use std::make_unique (NFC) (#97915)Kazu Hirata1-1/+1
35 hours[libc] Add `dlfcn.h` placeholder (#97501)Izaak Schroeder14-0/+238
Adds `dlopen` and friends. This is needed as part of the effort to compile `libunwind` + `libc` without baremetal mode. This is part of https://github.com/llvm/llvm-project/issues/97191. This should still be spec compliant, since `dlopen` always returns `NULL` and `dlerror` always returns an error message. > If dlopen() fails for any reason, it returns NULL. > The function dlclose() returns 0 on success, and nonzero on error. > Since the value of the symbol could actually be NULL (so that a NULL return from dlsym() need not indicate an error), the correct way to test for an error is to call dlerror() to clear any old error conditions, then call dlsym(), and then call dlerror() again, saving its return value into a variable, and check whether this saved value is not NULL. See: - https://linux.die.net/man/3/dlopen
35 hours[libc] Fix Cppcheck Issues (#96999)jameshu158692-15/+14
This PR fixes linting issues discovered by `cppcheck`. Fixes: https://github.com/llvm/llvm-project/issues/96863
37 hours[libc++] Remove dead code from the locale base API and support code (#89070)Nikolas Klauser10-114/+20
37 hours[Bitcode] Use range-based for loops (NFC) (#97776)Kazu Hirata3-15/+14
37 hours[MC] Make MCCFIInstruction smallerFangrui Song1-22/+35
by placing `Operation` next to a 4-byte member. Refactor the union representation so that it is easy to add a pointer member for .cfi_label support without increasing the total size. There are two primary forms (RI and RR) and RIA for AMDGPU-specific .cfi_llvm_def_aspace_cfa.
37 hours[LAA] Only invalidate loops that require runtime checks (NFCI).Florian Hahn2-1/+17
LAA doesn't keep references to IR outside the loop or references to SCEVs that may be invalidated, unless runtime checks are needed (either memory or SCEV predicates). For the current LAA users, it should be sufficient to invalidate entries for loops that require runtime checks, thus avoiding analyzing loops again unnecessarily. This helps reduce compile-time, in particular when removing the restrictions added in 234cc40adc6. https://llvm-compile-time-tracker.com/compare.php?from=73894dba2cdbcc00678d0c13a6b61765675f60b4&to=05c6bdc41b5f63696ebeb7116325725fa94f66d6&stat=instructions:u
39 hours[libcxx][test][NFC] Fix std::pair convertible tests in light of CWG2137 (#97403)Mital Ashok1-1/+22
https://cplusplus.github.io/CWG/issues/2137.html This change was previously made as part of 924701311aa79180e86ad8ce43d253f27d25ec7d (#77768) and later reverted in 6e4930c67508a90bdfd756f6e45417b5253cd741 This change is still needed because the comment is still true: A standards-conformant compiler is currently supposed to fail this test. This also means that any future work on CWG2137 with Clang would not need to modify the libc++ test suite
40 hours[libc++] Assume newer LLVM versions for not-yet-released macOS versionsLouis Dionne1-1/+1
This makes the test suite forward-compatible with future versions of macOS. Previously, the Lit features were built in a way that they would assume that any newer macOS version doesn't contain any version of LLVM, which doesn't make sense.
42 hoursRevert "[Support] Silence function cast warning when building with Clang ToT ↵Alexandre Ganea2-18/+0
targetting Windows" This reverts commit 593f708118aef792f434185547f74fedeaf51dd4.
42 hoursRevert "[compiler-rt] Silence function cast warning when building with Clang ↵Alexandre Ganea2-18/+0
ToT targetting Windows" This reverts commit 10e1b935e5d9017067207d62ababa733df088ecd.
42 hoursRevert "[lldb] Silence function cast warning when building with Clang ToT ↵Alexandre Ganea1-9/+0
targetting Windows" This reverts commit cf1ded3ac248ad4feeed7b4dd20c60b7e3c40339.
43 hours[libc++] Remove annotations for GCC 13 and update the documentation (#97744)Nikolas Klauser11-21/+13
GCC 14 has been released a while ago. We've updated the CI to use GCC 14 now. This removes any old annotations in the tests and updates the documentation to reflect the updated version requirements.
44 hours[Clang] Fix typo in cxx_status.htmlcor3ntin1-1/+1
45 hours[lld-macho] Remove symbols to `__mod_init_func` with `-init_offsets` (#97156)Daniel Bertalan4-2/+43
When `-fixup_chains`/`-init_offsets` is used, a different section, `__init_offsets` is synthesized from `__mod_init_func`. If there are any symbols defined inside `__mod_init_func`, they are added to the symbol table unconditionally while processing the input files. Later, when querying these symbols' addresses (when constructing the symtab or exports trie), we crash with a null deref, as there is no output section assigned to them. Just making the symbols point to `__init_offsets` is a bad idea, as the new section stores 32-bit integers instead of 64-bit pointers; accessing the symbols would not do what the programmer intended. We should entirely omit them from the output. This is what ld64 and ld-prime do. This patch uses the same mechanism as dead-stripping to mark these symbols as not needed in the output. There might be nicer fixes than the workaround, this is discussed in #97155. Fixes https://github.com/llvm/llvm-project/pull/79894#issuecomment-1944092892 Fixes #94716
45 hours[libc++][NFC] Merge identical char_traits functions into a base class (#97700)Nikolas Klauser1-202/+64
45 hoursOutline X86 autoupgrade patterns (#97851)Justin Holewinski1-1757/+1693
Outlining these patterns has a significant impact on the overall stack frame size of llvm::UpgradeIntrinsicCall. This is helpful for scenarios where compilation threads are stack-constrained. The overall impact is low when using clang as the host compiler, but very pronounced when using MSVC 2022 with release builds. Clang: 1,624 -> 824 bytes MSVC: 23,560 -> 6,120 bytes
45 hours[libc][C23][math] Implement cospif function correctly rounded for all ↵Hendrik Hübner18-4/+406
rounding modes (#97464) I also fixed a comment in sinpif.cpp in the first commit. Should this be included in this PR? All tests were passed, including the exhaustive test. CC: @lntue
45 hours[Clang] Simplify release notes and remove irrelevant comment (#96407)Gábor Spaits2-6/+0
As discussed before with @cor3ntin before (https://github.com/llvm/llvm-project/pull/94752) here is the simplification of the release note written for the previously mentioned PR and the removal of a comment that is no longer useful. (Sorry for creating this PR this late.) Co-authored-by: Gabor Spaits <Gabor.Spaits@hightec-rt.com>
46 hoursDynamicAPInt: optimize size of structure (#97831)Ramkumar Ramachandra4-11/+40
Reuse the APInt::BitWidth to eliminate DynamicAPInt::HoldsLarge, cutting the size of DynamicAPInt by four bytes. This is implemented by making DynamicAPInt a friend of SlowDynamicAPInt and APInt, so it can directly access SlowDynamicAPInt::Val and APInt::BitWidth. We get a speedup of 4% with this patch.
46 hours[clang] Add C++26 diagnostics to compatibility diagnosic groups (#97806)Vlad Serebrennikov2-11/+30
This patch adds `CXXPre26Compat` and `CXXPre26CompatPedantic` groups (which are concerned with new features not available in older language modes) to `CXX98Compat`, etc. This way, if user has `-Wc++20-compat` and they use pack indexing, they will be warned. Ideally this should have been done when C++26 groups were created, but we shipped two releases of Clang since then.
47 hoursRevert "[AArch64][PAC] Support BLRA* instructions in SLS Hardening pass" ↵Anatoly Trosinenko2-469/+118
(#97887) This reverts commit 88b26293a24bdd85fce2b2f7191cc0a5bc0cecfe due to failures of CodeGen/AArch64/speculation-hardening-sls-blra.mir
48 hours[AArch64][PAC] Support BLRA* instructions in SLS Hardening pass (#97605)Anatoly Trosinenko2-118/+469
Make SLS Hardening pass handle BLRA* instructions the same way it handles BLR. The thunk names have the form __llvm_slsblr_thunk_xN for BLR thunks __llvm_slsblr_thunk_(aaz|abz)_xN for BLRAAZ and BLRABZ thunks __llvm_slsblr_thunk_(aa|ab)_xN_xM for BLRAA and BLRAB thunks Now there are about 1800 possible thunk names, so do not rely on linear thunk function's name lookup and parse the name instead.
2 days[mlir][Transforms][NFC] Dialect conversion: Reland docs improvement (#97886)Matthias Springer2-22/+41
#96207 was reverted but the improvements to the documentation of the dialect conversion are still useful.
2 days[NFC][libc++] removes std:: qualification,Mark de Wever1-5/+5
Elements in nested namespaces in the std namespace do not use fully qualified names in libc++. This adjusts a few cases found.
2 days[libc++][test] Updates sized deallocation tests. (#97833)Mark de Wever3-6/+8
In #90373 size deallocation was enabled by default. Some test were disabled to propagate the clang changes to the libc++ CI. These changes have been propagated so the test filter can be updated.
2 days[clang-doc] revert asset bug fix (#97882)PeterChou12-2/+1
reverts https://github.com/llvm/llvm-project/pull/97540 which broke clangs standalone build
2 days[Clang][ExprConstant] fix constant expression did not evaluate to integer ↵Zhikai Zeng3-3/+18
(#97146) fixes https://github.com/llvm/llvm-project/issues/96670 The cause is that we might return a lvalue here at https://github.com/llvm/llvm-project/blob/3e53c97d33210db68188e731e93ee48dbaeeae32/clang/lib/AST/ExprConstant.cpp#L15861-L15865 This PR will make sure we return a rvalue in `FastEvaluateAsRValue`.
2 days[llvm] Remove redundant calls to std::unique_ptr<T>::get (NFC) (#97778)Kazu Hirata9-24/+24
2 days[CMake] Use Clang to infer the target triple (#89425)Petr Hosek3-5/+33
When using Clang as a compiler, use Clang to normalize the triple that's used to construct path for runtime library build and install paths. This ensures that paths are consistent and avoids the issue where the build uses a different triple spelling. Differential Revision: https://reviews.llvm.org/D140925
2 days[libc] Add `dlfcn.h` headers (#97772)Izaak Schroeder6-0/+57
2 days[RISCV] Allow folding vmerge with implicit passthru when true has tied dest ↵Luke Lau3-74/+78
(#78565) We currently don't fold a vmerge if it has an implicit-def passthru and its true operand also has a passthru (i.e. tied dest). This restriction was added in https://reviews.llvm.org/D151596, back whenever we had separate TU/TA pseudos. It looks like it was added because the policy might not have been handled correctly. However the policy should be set correctly if we relax this restriction today, since we compute the policy differently now that we have removed the TU/TA distinction in our pseudos. We use a TUMU policy, and relax it to TAMU iff the vmerge's passthru is implicit-def. The reasoning behind this being that the tail elements always come from the vmerge's passthru[^1], so if vmerge's passthru is implicit-def then the tail is also implicit-def. So a tail agnostic policy is OK. [^1]: unless the VL was shrunk, but in this case which case we conservatively use TUMU.
2 days[RISCV] Remove unused check-prefixes. NFCCraig Topper1-5/+2
2 days[RISCV] Use EXTLOAD in lowerVECTOR_SHUFFLE. (#97862)Craig Topper2-2/+2
We're creating a load and a splat. The splat doesn't use the extended bits so it doesn't matter what extend we use.
2 days[openmp] Silence warning when building the x64 Windows LLVM release packageAlexandre Ganea1-1/+3
This fixes: ``` MASM : warning A4018:invalid command-line option : -U_GLIBCXX_ASSERTIONS ```
2 days[lldb] Silence function cast warning when building with Clang ToT targetting ↵Alexandre Ganea1-0/+9
Windows
2 days[compiler-rt] Silence function cast warning when building with Clang ToT ↵Alexandre Ganea2-0/+18
targetting Windows
2 days[Support] Silence function cast warning when building with Clang ToT ↵Alexandre Ganea2-0/+18
targetting Windows