- Dec 10, 2023
-
-
Florian Hahn authored
Move vector pointer generation to a separate VPInstruction opcode. This untangles address computation from the memory recipes future and is also needed to enable explicit unrolling in VPlan. Pull Request: https://github.com/llvm/llvm-project/pull/72164
-
Stephan T. Lavavej authored
Found while running libc++'s test suite with MSVC's STL. After @CaseyCarter's [LLVM-D118279](https://reviews.llvm.org/D118279) https://github.com/llvm/llvm-project/commit/c5ba46ea1804dfefb22e6d2bb65ff1636d2cc8cd "\[libcxx\]\[test\] `MaybePOCCAAllocator` should meet the *Cpp17Allocator* requirements" followed by @philnik777's [LLVM-D68365](https://reviews.llvm.org/D68365) https://github.com/llvm/llvm-project/commit/98d3d5b5da66e3cf7807c23a0294280bb796466b "\[libc++\] Implement [P1004R2](https://wg21.link/P1004R2) (`constexpr std::vector`)", one more change is necessary. MSVC's `constexpr vector` implementation noticed this because we always rebind allocators.
-
Oskar Wirga authored
I accidentally closed https://github.com/llvm/llvm-project/pull/74806 If the dynamic allocation size is 0, then we will still probe the current sp value despite not decrementing sp! This results in overwriting stack data, in my case the stack canary. The fix here is just to load the value of [sp] into xzr which is essentially a no-op but still performs a read/probe of the new page.
-
paperchalice authored
-
Stephan T. Lavavej authored
[libc++] LWG-4021 "`mdspan::is_always_meow()` should be `noexcept`", use `LIBCPP_STATIC_ASSERT` for `noexcept` strengthening (#74254) Found while running libc++'s test suite with MSVC's STL. * I've filed [LWG-4021](https://cplusplus.github.io/LWG/issue4021) "`mdspan::is_always_meow()` should be `noexcept`" and implemented this in libc++'s product and test code. * Use `LIBCPP_STATIC_ASSERT` to avoid issues with `noexcept` strengthening in MSVC's STL. + As permitted by the Standard, MSVC's STL conditionally strengthens `mdspan` construction/`is_meow`/`stride` and `elements_view` iterator `base() &&`, and always strengthens `basic_stringbuf` `swap`. + In `mdspan/properties.pass.cpp`, this also upgrades runtime `assert`s to `static_assert`s. * Improvement: Upgrade `assert` to `static_assert` when inspecting the `noexcept`ness of `std::ranges::iter_move`. (These `!noexcept` tests weren't causing issues for MSVC's STL, so I didn't change them to be libc++-specific.)
-
Anatoly Trosinenko authored
When importing instruction selection patterns into GlobalISel, the operands matched in the "source" DAG are copied into corresponding operands of the "destination" DAG according to their names (such as Rd). If multiple operands in the source DAG share the same name, a GIM_CheckIsSameOperand predicate makes instruction selector check the corresponding operands for equality (at compiler run-time) as part of matching the source pattern. The Def operands of the root node of the destination DAG are handled specially. The operands of the instruction corresponding to the root node are taken and GIM_CheckRegBankForClass predicates are tablegen-erated accordingly. If by coincidence the Def operand in question has the same name as one of the named operands in the pattern, a GIM_CheckIsSameOperand predicate is automatically added that is likely to prevent matching the source of otherwise applicable selection pattern at compiler run-time. This patch mangles the Def operand names taken from the instruction corresponding to the root of the destination DAG (for example, "Rd" becomes "DstI[Rd]") preventing unexpected name clashes with pattern's named operands. The patch consists of three sets of changes: * changes to the GlobalISelEmitter.cpp file are the actual fix * a test case is added to GlobalISelEmitter.td file as a regression test * everything else is the biggest and least interesting part - updates to the existing test cases: renames of the form Rd -> DstI[Rd] inside the inline comments in tablegen-erated code
-
Kazu Hirata authored
-
Kazu Hirata authored
-
Kazu Hirata authored
Without this patch, CallingConvLower.h is relying on the transitive include of ArrayRef.h in TypeSize.h, which doesn't need ArrayRef.h.
-
Fangrui Song authored
-
Kazu Hirata authored
These files are relying on the transitive include of <bitset> from GIMatchTableExecutor.h, which doesn't actually use std::bitset.
-
Kazu Hirata authored
-
James Y Knight authored
-
Kazu Hirata authored
-
Kazu Hirata authored
-
Craig Topper authored
hasExtension already checks if the extension is supported.
-
Kazu Hirata authored
This patch renames {starts,ends}with to {starts,ends}_with for consistency with std::{string,string_view}::{starts,ends}_with in C++20. Since there are only a handful of occurrences, this patch skips the deprecation phase and simply renames them. -
Craig Topper authored
-
Florian Hahn authored
depend_diff_types.ll already covers the same tests afer it hs been converted to opaque pointersj, so remove the redundant depend_diff_types_opaque_ptr.ll
-
Kazu Hirata authored
These functions have been deprecated since: commit 1117d806 Author: Kazu Hirata <kazu@google.com> Date: Mon Jun 5 13:18:07 2023 -0700
-
Daniil Kovalev authored
This patch introduces llvm-objdump tests for new `AARCH64_AUTH_RELR`, `AARCH64_AUTH_RELRSZ` and `AARCH64_AUTH_RELRENT` dynamic tags. Depends on https://github.com/llvm/llvm-project/pull/74874
-
Justin Bogner authored
Define HLSL's RasterizerOrderedBuffer resource type through the external sema source. This doesn't fully work as is, but defining it allows us to exercise the ROV logic in the DirectX backend from HLSL rather than having to manually edit metadata, so it's useful for further testing and development. Pull Request: https://github.com/llvm/llvm-project/pull/74897
-
Nathan Sidwell authored
Query the executable for address size.
-
Craig Topper authored
These names are never used so just waste a lot of memory. If do need them ever, it would be better to store pointers to the StringMapEntry objects that store the same strings.
-
Justin Bogner authored
Pull Request: https://github.com/llvm/llvm-project/pull/74896
-
Kiran Chandramohan authored
-
- Dec 09, 2023
-
-
Nathan Sidwell authored
An 8 bit bitfield should not have a preferred type of bool.
-
Mark de Wever authored
This fixes a clang-tidy diagnostic when building libc++ with RTTI disabled. This was originally part of #65518.
-
Richard Dzenis authored
Fixes regression introduced in b3e6ff33 Fixes bot failure https://lab.llvm.org/buildbot/#/builders/60/builds/15037 ``` .---command stderr------------ | error: 'supported-warning' diagnostics seen but not expected: | File C:\buildbot\as-builder-1\x-armv7l\llvm-project\clang\test\SemaCXX\ms-constexpr-new.cpp Line 7: '__cdecl' calling convention is not supported for this target | 1 error generated. `----------------------------- ```
-
Mark de Wever authored
This adds the std.compat module. The patch contains a bit of refactoring to avoid code duplication between the std and std.compat module. Implements parts of - P2465R3 Standard Library Modules std and std.compat
-
Benjamin Maxwell authored
-
Mark de Wever authored
This change requires quite a number of changes in the tests; this is not code I expect people to use in the wild. So I don't expect breakage for users. Implements: - P2905R2 Runtime format strings, as a Defect Report
-
Jie Fu authored
llvm-project/clang/lib/AST/ExprConstant.cpp:5645:74: error: '&&' within '||' [-Werror,-Wlogical-op-parentheses] 5645 | (Definition->isConstexpr() || Info.CurrentCall->CanEvalMSConstexpr && | ~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~ 5646 | Definition->hasAttr<MSConstexprAttr>())) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ llvm-project/clang/lib/AST/ExprConstant.cpp:5645:74: note: place parentheses around the '&&' expression to silence this warning 5645 | (Definition->isConstexpr() || Info.CurrentCall->CanEvalMSConstexpr && | ^ | ( 5646 | Definition->hasAttr<MSConstexprAttr>())) | | ) 1 error generated. -
Benjamin Kramer authored
-
Richard Dzenis authored
This commit introduces support for the MSVC-specific C++11-style attribute `[[msvc::constexpr]]`, which was introduced in MSVC 14.33. The semantics of this attribute are enabled only under MSVC compatibility (`-fms-compatibility-version`) 14.33 and higher. Additionally, the default value of `_MSC_VER` has been raised to 1433. The current implementation lacks support for: - `[[msvc::constexpr]]` constructors (see #72149); at the time of this implementation, such support would have required an unreasonable number of changes in Clang. - `[[msvc::constexpr]] return ::new` (constexpr placement new) from non-std namespaces (see #74924). Relevant to: #57696
-
Jay Foad authored
-
Vlad Serebrennikov authored
This patch continues the work started with ea5b1ef0. See that commit and its corresponding PR for details.
-
Yingwei Zheng authored
Alive2: https://alive2.llvm.org/ce/z/38KiC_
-
Vlad Serebrennikov authored
-
Brad Smith authored
Invert the logic and choose the ELF path by default as a fallback. Move check for Darwin to the top.
-