- May 24, 2023
-
-
Matt Arsenault authored
-
Matt Arsenault authored
-
Chuanqi Xu authored
Close https://github.com/llvm/llvm-project/issues/62796. Previously, we didn't serialize the evaluated result for VarDecl. This caused the compilation of template metaprogramming become slower than expect. This patch fixes the issue. This is a recommit tested with asan built clang.
-
Théo Degioanni authored
This patch implements SROA interfaces for MemRef, up to a given fixed size. Reviewed By: gysit, Dinistro Differential Revision: https://reviews.llvm.org/D151102
-
Sergei Barannikov authored
D151036 adds an assertions that prohibits iterating over sub- and super-registers of a null register. This is already the case when iterating over register units of a null register, and worked by accident for sub- and super-registers. Reviewed By: foad Differential Revision: https://reviews.llvm.org/D151289
-
Kazu Hirata authored
-
Aiden Grossman authored
MSVC has a `__cpuidex` function implemented to call the underlying cpuid instruction which accepts a leaf, subleaf, and data array that the output data is written into. This patch adds this functionality into clang under the cpuid.h header. This also makes clang match GCC's behavior. GCC has had `__cpuidex` in its cpuid.h since 2020. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D150646
-
LLVM GN Syncbot authored
-
Chuanqi Xu authored
This reverts commit c0d6f85e. The asan bot detected a memory leak after this patch. Revert it for now.
-
Mark de Wever authored
The type traits parts are moved to a type_traits detail header. This was discovered while working on modules. Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D150538
-
Mark de Wever authored
Clang has been updated to support C++26, this adds the same support for libc++. At the moment C++23 and C++26 are identical. During the next plenary in June the first C++26 papers will be voted on. Note like Clang this patch uses C++26 is the internal part and C++2c in the user visible part. Depends on D150795 Reviewed By: ldionne, #libc Differential Revision: https://reviews.llvm.org/D151026
-
Owen Pan authored
This reverts commit 72ab89e3. Reverted due to bots failures e.g. https://lab.llvm.org/buildbot/#/builders/139/builds/41339.
-
Kazu Hirata authored
-
Louis Dionne authored
Differential Revision: https://reviews.llvm.org/D151238
-
Louis Dionne authored
I stumbled upon the `operator new` and `operator new[]` tests while investigating an issue with `operator new` when exceptions are disabled, and I realized that our test coverage was incomplete. This patch refactors all the `operator new` and `operator new[]` tests to add consistency and better coverage for scenarios in which it should be possible to override an operator indirectly by defining another one (for example new(size_t, nothrow) should use new(size_t) if it has been provided). This is intended to be a NFC setting up the terrain for some refactoring work and bug fix in operator new. Differential Revision: https://reviews.llvm.org/D150408
-
wangpc authored
In D148197, we have made `defvar` statement able to refer to class template arguments. However, the priority of class/multiclass template argument is higher than variables defined by `defvar`, which is a little counterintuitive. In this patch, we unify the priority of variables. Each pair of braces introduces a new scope, which may contain some additional variables like template arguments, loop iterators, etc. We can define local variables inside this scope via `defvar` and these variables are of higher priority than additional variables. This means that `defvar` will shadow additional variables with the same name. The scope can be nested, and we use the innermost variable. This make variables defined by `defvar` prior to class/multiclass template arguments, loop iterators, etc. The shadow rules now are: * `V` in a record body shadows a global `V`. * `V` in a record body shadows template argument `V`. * `V` in template arguments shadows a global `V`. * `V` in a `foreach` statement list shadows any `V` in surrounding record or global scopes. Reviewed By: tra Differential Revision: https://reviews.llvm.org/D149016
-
Joshua Cao authored
The method is marked for deprecation. Delete the method and move all of its consumers to use the DomTreeUpdater version. Reviewed By: foad Differential Revision: https://reviews.llvm.org/D149428
-
Chuanqi Xu authored
The bot notes a warning-converted-error for the dangling pointer. And the patch fixes that.
-
Sedenion authored
The problem was that the LevelIndentTracker remembered the indentation level of previous deeper levels when leaving a scope. Afterwards, when it entered again a deeper level, it blindly reused the the previous indentation level. In case of the --lines option configured such that the previous deeper level was not formatted, that previous level was whatever happened to be there in the source code. The formatter simply believed it. This is fixed by letting the LevelIndentTracker forget the previous deeper levels when stepping out of them (=> change in LevelIndentTracker::nextLine()). Note that this used to be the case until LLVM 14.0.6, but was changed in https://github.com/llvm/llvm-project/issues/56352 to fix a crash. Our commit here essentially reverts that crash fix. It seemed to have been incorrect. The proper fix is to set the AnnotedLine::Level of joined lines correctly (=> change in LineJoiner::join()). See https://github.com/llvm/llvm-project/issues/59178#issuecomment-1542637781 for some more details. Fixes #58464. Fixes #59178. Differential Revision: https://reviews.llvm.org/D151047
-
Chuanqi Xu authored
Close https://github.com/llvm/llvm-project/issues/62796. Previously, we didn't serialize the evaluated result for VarDecl. This caused the compilation of template metaprogramming become slower than expect. This patch fixes the issue.
-
Bing1 Yu authored
[LegalizeType][X86] Support WidenVecRes_AssertZext and SplitVecRes_AssertZext for ISD::AssertZext during LegalizeType procedure Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D150941
-
Rahman Lavaee authored
This information helps to avoid considering cloning for blocks with indirect branches. Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D150611
-
Galen Elias authored
This is a retry of https://reviews.llvm.org/D114583, which was backed out for regressions. Clang Format is detecting a nested scope followed by another open brace as a braced initializer list due to incorrectly thinking it's matching a braced initializer at the end of a constructor initializer list which is followed by the body open brace. Unfortunately, UnwrappedLineParser isn't doing a very detailed parse, so it's not super straightforward to distinguish these cases given the current structure of calculateBraceTypes. My current hypothesis is that these can be disambiguated by looking at the token preceding the l_brace, as initializer list parameters will be preceded by an identifier, but a scope block generally will not (barring the MACRO wildcard). To this end, I am adding tracking of the previous token to the LBraceStack to help scope this particular case. TokenAnnotatorTests cherry picked from https://reviews.llvm.org/D150452. Fixes #33891. Fixes #52911. Differential Revision: https://reviews.llvm.org/D150403
-
Aart Bik authored
The alpha/beta variables, residing on the host, should have the 32-bit or 64-bit width of the result type. It was formerly always passed as double. Reviewed By: Peiming Differential Revision: https://reviews.llvm.org/D151255
-
Leonard Chan authored
This way, Fuchsia can use the 64-bit allocator settings in D151157 without changing the default behavior for others. Differential Revision: https://reviews.llvm.org/D151159
-
Akira Hatanaka authored
flexible array member A zero-element array type was incorrectly being used when an incomplete array was being initialized with a non-empty initializer. This fixes an assertion failure in AddInitializerToStaticVarDecl. See the discussion here: https://reviews.llvm.org/D123649#4362210 Differential Revision: https://reviews.llvm.org/D151172
-
Craig Topper authored
Avoids multi instruction isel patterns and enables mask optimizations on shift amount. Reviewed By: philipp.tomsich Differential Revision: https://reviews.llvm.org/D151263
-
Med Ismail Bennani authored
This reverts commit 273a2d33, since it might be the cause for `TestStackCoreScriptedProcess` and `TestInteractiveScriptedProcess` failures on GreenDragon: https://green.lab.llvm.org/green/job/lldb-cmake/55460/`
-
Peter Klausler authored
[flang][runtime] Complete partial output records when positioning/closing after non-advancing output Before positioning or closing a unit after a non-advancing output statement has left a partial record in its buffer, complete the record by calling AdvanceRecord(). Fixes https://github.com/llvm/llvm-project/issues/59761. Differential Revision: https://reviews.llvm.org/D151134
-
Peiming Liu authored
Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D151174
-
Shubham Sandeep Rastogi authored
salvageDebugInfo is a function that allows us to reatin debug info for instructions that have been optimized out. Currently, it doesn't support salvaging the debug information from icmp instrcutions, but DWARF expressions can emulate an icmp by using the DWARF conditional expressions. This patch adds support for salvaging debug information from icmp instructions. Differential Revision: https://reviews.llvm.org/D150216
-
Aaron Siddhartha Mondal authored
Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D151131
-
Alex Langford authored
From what I can see, `m_mach_segments` is completely unused. Let's remove it. Differential Revision: https://reviews.llvm.org/D151236
-
Valentin Clement authored
Simply make the creation of acc.private.recipe accesible through an API. This will be useful when we will implement passes like the implicit privatization. Reviewed By: razvanlupusoru Differential Revision: https://reviews.llvm.org/D151230
-
Valentin Clement authored
Do not omit fir.ref when creating the string representation to we can have different representation for `!fir.ref<i32>` and `i32`. Reviewed By: razvanlupusoru Differential Revision: https://reviews.llvm.org/D151261
-
Nick Desaulniers authored
As reported by @kees, GCC treats __builtin_object_size of structures containing flexible array members (aka arrays with incomplete type) not just as the sizeof the underlying type, but additionally the size of the members in a designated initializer list. Fixes: https://github.com/llvm/llvm-project/issues/62789 Reviewed By: erichkeane, efriedma Differential Revision: https://reviews.llvm.org/D150892
-
Valentin Clement authored
Reviewed By: razvanlupusoru Differential Revision: https://reviews.llvm.org/D151250
-
Diego Caballero authored
This patch extends the transfer drop unit dim patterns to support cases where the vector shape should also be reduced (e.g., transfer_read(memref<1x4x1xf32>, vector<1x4x1xf32>) -> transfer_read(memref<4xf32>, vector<4xf32>). Reviewed By: hanchung, pzread Differential Revision: https://reviews.llvm.org/D151007
-
Scott Linder authored
Relax the assumption that at most one Reference-or-Type-like attribute is present on a DWARF DIE. Add support for at most one Type attribute (i.e. DW_AT_import xor DW_AT_type) and separately at most one Reference attribute (i.e. DW_AT_specification xor DW_AT_abstract_origin xor ...). Update comment describing old assumption and tag it as a "FIXME" to reflect the fact that this is perhaps still not general enough. Add a test based on the case which led me to encounter the bug in the wild. Reviewed By: CarlosAlbertoEnciso Differential Revision: https://reviews.llvm.org/D150713
-