- Mar 22, 2023
-
-
Arthur Eubanks authored
The legacy pass is only used in AMDGPU codegen, which doesn't care about running it in call graph order (it actually has to work around that fact). Make the legacy pass a module pass and share code with the new pass. This allows us to remove the legacy inliner infrastructure. Reviewed By: mtrofin Differential Revision: https://reviews.llvm.org/D146446
-
Alex Langford authored
lldbUtility is not supposed to depend on anything else in lldb. Let's enforce that constraint in CMake rather than hoping something doesn't slip in under the radar. Differential Revision: https://reviews.llvm.org/D146473
-
Arthur Eubanks authored
These were made consistent in 951a980d.
-
Dave Lee authored
Change `dwim-print` to now disable persistent results by default, unless requested by the user with the `--persistent-result` flag. Ex: ``` (lldb) dwim-print 1 + 1 (int) 2 (lldb) dwim-print --persistent-result on -- 1 + 1 (int) $0 = 2 ``` Users who wish to enable persistent results can make and use an alias that includes `--persistent-result on`. Updates: To recommit this, both TestPersistentResult.py and TestPAlias.py needed to be updated, as well as the changes in D146230. Differential Revision: https://reviews.llvm.org/D145609
-
Paul Kirth authored
The test strings we used for infinity and NAN were not correct on AIX. This patch creates those dynamically instead of hard-coded. Reviewed By: abhina.sreeskantharajan Differential Revision: https://reviews.llvm.org/D146542
-
Simon Pilgrim authored
Avoid needing to perform extra isConstantIntBuildVectorOrConstantInt checks
-
Dave Lee authored
Add an Objective-C++ specific test for direct ivar access. This adds to the existing C++ and ObjC tests, and tests against regression for future refactoring. Differential Revision: https://reviews.llvm.org/D146320
-
Arthur Eubanks authored
-
Jakub Kuderski authored
This function follows `std::ranges::size` from C++20. It is intended mainly for generic code that does not know the exact range type. I did not modify the existing `llvm::size` function because it has a strict guarantee of O(1) running time, and we cannot guarantee that when we delegate size check to user-defined size functions. Use `range_size` to optimize size checks in `zip`* and `enumerate` functions. Before that, we would have to perform linear scans for ranges without random access iterators. This is the last change I have planned in the series that overhauls `zip`* and `enumerate`. Reviewed By: dblaikie, zero9178 Differential Revision: https://reviews.llvm.org/D146231
-
Aaron Ballman authored
We were accidentally issuing "static lambdas are incompatible with C++ standards before C++2b" with -pedantic because it was an ExtWarn diagnostic rather than a Warning. This corrects the diagnostic category and adds some test coverage. Fixes #61582
-
Craig Topper authored
We already did this same call on the line before. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D146444
-
Mark de Wever authored
This has been done using the following command find libcxx/test -type f -exec perl -pi -e 's|^([^/]+?)((?<!::)size_t)|\1std::\2|' \{} \; And manually removed some false positives in std/depr/depr.c.headers. The `std` module doesn't export `::size_t`, this is a preparation for that module. Reviewed By: ldionne, #libc, EricWF, philnik Differential Revision: https://reviews.llvm.org/D146088 -
Philip Reames authored
Reported in https://reviews.llvm.org/D146415. I rewrote the patch and aded the test case. Per that report, spec2006.483.xalancbmk crashes without this fix.
-
Philip Reames authored
-
Arthur Eubanks authored
They're becoming different enough that it's getting annoying to figure out how allocate check prefixes. Reviewed By: tejohnson Differential Revision: https://reviews.llvm.org/D146486
-
Congcong Cai authored
further update for [D146271](https://reviews.llvm.org/D146271) Reviewed By: tlively Differential Revision: https://reviews.llvm.org/D146499
-
Andrew Litteken authored
llvm-sim test still misbehaving on other platforms. This reverts commit 082ec267.
-
Anna Thomas authored
Use existing functionality for identifying total access size by strided loads. If we can speculate the load across all vector iterations, we can avoid predication for these strided loads (or masked gathers in architectures which support it). Differential Revision: https://reviews.llvm.org/D145616
-
Mirko Brkusanin authored
-
Andrew Litteken authored
When we check for similarity, right now there is no order to how it is checked, except for via the suffix tree ordering. We can reduce how much structural analysis we perform by checking the the regions in decreasing size. In doing so, we know that if two large sections match, each of their contained regions also match. This allows us to skip the structural checking for each smaller section. IT does require that we use the large regions as a "bridge" to create the canonical mapping between the two regions. This reduces compile time significantly for some benchmarks. It will not perform as well for programs with many small items. Recommit fixes the IRSimilarity tests. Recommit of: 805ec19d Reviewer: paquette Differential Revision: https://reviews.llvm.org/D139338
-
- Mar 21, 2023
-
-
Luke Lau authored
Horizontal reductions still occur on RISC-V, despite the maximum SLP VF reported back by TTI being 1, to disable SLP. This can cause the cost model to think it can vectorize a gather into smaller, widened loads, when it will actually fail to do so. This should ultimately be fixed whenever SLP is re-enabled for RISC-V at some point. Reviewed By: reames Differential Revision: https://reviews.llvm.org/D146529
-
Erich Keane authored
-
Adam Paszke authored
This is especially convenient when trying to resize the splat. Reviewed By: jpienaar Differential Revision: https://reviews.llvm.org/D146510
-
Carl Ritson authored
A rare case where coalescing resulted in a hh32 (high32 of high64 of vector register) subreg usage caused getSubReg() to fail as the vector reg does not have that subreg in its subregs list, but rather h32 which was expected to also act as hh32. See link below for the discussion when solving this. Patch By: critson Reviewed By: uweigand Fixes: https://github.com/llvm/llvm-project/issues/61390
-
Erich Keane authored
-
David Spickett authored
../llvm-project/lldb/include/lldb/Interpreter/ScriptedProcessInterface.h:61:12: warning: implicit conversion from 'unsigned long long' to 'size_t' (aka 'unsigned int') changes value from 18446744073709551615 to 4294967295 [-Wconstant-conversion] ../llvm-project/lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp:275:39: warning: result of comparison of constant 18446744073709551615 with expression of type 'size_t' (aka 'unsigned int') is always false [-Wtautological-constant-out-of-range-compare] This happens because size_t on 32 bit is 32 bit, but LLDB_INVALID_OFFSET is UINT64_MAX. Return lldb::offset_t instead, which is 64 bit everywhere. DoWriteMemory still returns size_t but this is because every other Process derived thing does that. As long as the failure check works I think it should be fine. Reviewed By: mib Differential Revision: https://reviews.llvm.org/D146124
-
Max Kazantsev authored
This reverts commit 8d2885c2. I accidentally introduced an infinite loop in this patch, will return when this is fixed.
-
Philip Reames authored
This models the approach used in LFTR. The short summary is that we need to prove the IV is not dead first, and then we have to either prove the poison flag is valid after the new user or delete it. There are two key differences between this and LFTR. First, I allow a non-concrete start to the IV. The goal of LFTR is to canonicalize and IVs with constant starts are canonical, so the very restrictive definition there is mostly okay. Here on the other hand, we're explicitly moving *away* from the canonical form, and thus need to handle non-constant starts. Second, LFTR bails out instead of removing inbounds on a GEP. This is a pragmatic tradeoff since inbounds is hard to infer and assists aliasing. This pass runs very late, and I think the tradeoff runs the other way. A different approach we could take for the post-inc check would be to perform a pre-inc check instead of a post-inc check. We would still have to check the pre-inc IV, but that would avoid the need to drop inbounds. Doing the pre-inc check would basically trade killing a whole IV for an extra register move in the loop. I'm open to suggestions on the right approach here. Note that this analysis is quite expensive compile time wise. I have made no effort to optimize (yet). Differential Revision: https://reviews.llvm.org/D146464
-
Nikita Popov authored
If the global already exists, use its existing type, so we don't try to mix literal and non-literal structs among the elements. Fixes https://github.com/llvm/llvm-project/issues/56809.
-
Erich Keane authored
D146089's author discovered that our diagnostics for always/no inline would null-dereference when used in a template. He fixed that by skipping in the dependent case. This patch makes sure we diagnose these after a template instantiation. It also adds infrastructure for other statement attributes to add checking/transformation. Differential Revision: https://reviews.llvm.org/D146323
-
Philip Reames authored
This is a follow up to one of the side discussions on D146429. There are two semantic changes contained here. The motivation for the change to the legality condition introduced in D146429 comes from the fact that we only check the post-inc form. As such, as long as the values of the post-inc variable don't self wrap, it's actually okay if we wrap past the starting value of the pre-inc IV. Second, Nikic noticed during review that the test changes changed behavior for TC=0 (i.e. N=0 in the tests). On more careful inspection, it became apparent that the previous manual expansion code was incorrect in the case where the primary IV could wrap without poison, and started with the limit value (i.e. i8 post-inc starts at 255 for 0 exit test, implying pre-inc starts with 0). See @wrap_around test for an example of the (previous) miscompile. Differential Revision: https://reviews.llvm.org/D146457
-
Philip Reames authored
Derived from an observation by @nikic on D146457.
-
Valentin Clement authored
The dyanmic type must be carried over in a PolymorphicValue when the address is loaded from an unlimited polymorphic allocatable. Reviewed By: PeteSteinfeld Differential Revision: https://reviews.llvm.org/D146525
-
Maya Amrami authored
When this interface is used, a call to inferReturnTypeComponents() is generated on creation and verification of the op. A few changes were required in inferReturnTypeComponents(): - Emit error when it fails. The verifier calls this method now, and it is preferable to indicate what caused the failure. - Fix the inferred return shapes so they have a type too. Reviewed By: rsuderman Differential Revision: https://reviews.llvm.org/D146132
-
Alex Zinenko authored
Named sequences introduce an additional abstraction and reuse capability to the transform dialect. They can be though of as macros parameterized with handles that can be invoked in places where a transform dialect operation is expected. Such reuse was previously not possible in the dialect and required dynamic construction of the transform IR from the client language. Named sequences are intentionally restricted to disallow recursion, as it could make the dialect accidentally Turing-complete, which isn't desired at this point. Reviewed By: springerm Differential Revision: https://reviews.llvm.org/D146433
-
Aaron Ballman authored
We were accidentally issuing "overloaded 'operator[]' with more than one parameter is a C++2b extension" with -pedantic because it was an ExtWarn diagnostic rather than a Warning. This corrects the diagnostic category and adds some test coverage. Fixes #61582
-
Daniel Kiss authored
ifuncs can't take part of the whole-program devirtualization so no need them to be copied to the merged module. The corresponding resolver function also kept out which caused the crash. Fixes #60962 #57870 Reviewed By: tejohnson Differential Revision: https://reviews.llvm.org/D144982
-
Philip Reames authored
This invariant was introduced in 8f3d1690. Differential Revision: https://reviews.llvm.org/D146470
-
David Spickett authored
Reviewed By: arichardson, emaste Differential Revision: https://reviews.llvm.org/D146285
-
Pavel Kosov authored
Patch represents the clang part of changes in D143347 Reviewed By: balazske Differential Revision: https://reviews.llvm.org/D145057 ~~ Huawei RRI, OS Lab
-