- Oct 25, 2022
-
-
Alexey Bataev authored
Improve O(N^2) to O(N) in some cases, reduce number of allocations by reserving memory. Also, improve analysis of loads reduction values to avoid analysis of not vectorizable cases.
-
Paul Robinson authored
Differential Revision: https://reviews.llvm.org/D136619
-
zhongyunde authored
The following sequence should be folded into in0 * in1 In0Lo = in0 & 0xffffffff; In0Hi = in0 >> 32; In1Lo = in1 & 0xffffffff; In1Hi = in1 >> 32; m01 = In1Hi * In0Lo; m10 = In1Lo * In0Hi; m00 = In1Lo * In0Lo; addc = m01 + m10; ResLo = m00 + (addc >> 32); Reviewed By: spatel, RKSimon Differential Revision: https://reviews.llvm.org/D136015 -
Craig Topper authored
This reverts commit 65aaecca. There was an ordering problem in the calculation of the partial remainder. Original commit message: If the divisor is even, we can first shift the dividend and divisor right by the number of trailing zeros. Now the divisor is odd and we can do the original algorithm to calculate a remainder. Then we shift that remainder left by the number of trailing zeros and add the bits that were shifted out of the dividend. Differential Revision: https://reviews.llvm.org/D135541
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
Peiming Liu authored
Address comments in D136372 Reviewed By: aartbik, springerm Differential Revision: https://reviews.llvm.org/D136510
-
Felipe de Azevedo Piovezan authored
The test TestObjCDirectMethods loads the Objective C runtime, which doesn't work well with custom a libcxx, resulting in two copies of the standard library being loaded at runtime. Like what was done for `TestObjCExceptions`, this commit forces the usage of the system's library instead. The minimum required Clang version is set to the oldest Clang that can compile the libraries available in the lldb-matrix bots. Differential Revision: https://reviews.llvm.org/D136600
-
Felipe de Azevedo Piovezan authored
This requirement dates back to ten years ago and the test seems to work nowadays with either libc++ or libstdc++. Differential Revision: https://reviews.llvm.org/D136608
-
Michał Górny authored
Differential Revision: https://reviews.llvm.org/D136607
-
Corentin Jabot authored
Implement P2513 This change allows initializing an array of unsigned char, or char from u8 string literals. This was done both to support legacy code and for compatibility with C where char8_t will be typedef to unsigned char. This is backported to C++20 as per WG21 guidance. Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D136449
-
- Oct 24, 2022
-
-
Kevin P. Neal authored
This teaches the SCCP Solver how to constant fold more intrinsics. Constant folding appears to be just as good as D115737 but much, much lower in code change impact as suggested by nikic. The constrained floating-point intrinsics all take at least one metadata argument and were the motivation for the change. Differential Revision: https://reviews.llvm.org/D136466
-
Ahmed Bougacha authored
Differential Revision: https://reviews.llvm.org/D132385
-
Ahmed Bougacha authored
-
Kadir Cetinkaya authored
Introduces walkUsed, a very simple version of the public API to enable incremental development on rest of the pieces. Differential Revision: https://reviews.llvm.org/D136293
-
Ahmed Bougacha authored
(sign|resign) + (auth|resign) can be folded by omitting the middle sign+auth component if the key and discriminator match. Differential Revision: https://reviews.llvm.org/D132383
-
Amy Kwan authored
When lowering vector shuffles into the xxsplti32dx instruction on Power10, we canonicalize the right operand to be a BUILD_VECTOR and as a result, get the commuted vector shuffle node. However, a vector shuffle will not always be returned as the result for a commuted vector shuffle. In such a scenario, this patch updates the original cast of a shuffle into a dyn_cast<> and checks if the shuffle is a valid vector shuffle node prior to obtaining the commuted shuffle mask. This patch also adds a new test case that demonstrates this scenario (primarily seen on 32-bit), and was originally a crash prior to this fix. Differential Revision: https://reviews.llvm.org/D135024
-
Craig Topper authored
This reverts commit f6a7b478. I received a report that this fails on 32-bit X86.
-
Dmitry Preobrazhensky authored
Differential Revision: https://reviews.llvm.org/D136370
-
Michał Górny authored
Build gtest targets when building standalone only if LLDB_INCLUDE_TESTS is true. Prior to this change, they were built whenever LLVM_MAIN_SRC_DIR was available, independently whether tests themselves would be run. Differential Revision: https://reviews.llvm.org/D136551
-
Simon Pilgrim authored
This appears to be a copy+paste typo in the znver1/2 AMD SoG tables, treating the byte shift instructions like bit shifts Older AMD SoG referred to PSLLDQ/PSRLDQ as shuffles, and Agner/instlatx64 both report they are integer shuffles
-
Jean Perier authored
This patch adds the kernel to lower evaluate::Expr to HLFIR to a hlfir::FortranEntity (a single mlir::Value that can be interpreted as a Fortran variable or the value of a Fortram expression). It implements lowering of simple name designators ("x") and starts adding a translation layer in AbstractConverter::genExprBox and AbstractConverter::genExprAddr so that the new expression lowering can be used without any changes for now in the current statement and construct lowering. Differential Revision: https://reviews.llvm.org/D136453 -
Erich Keane authored
As that bug reports, the problem here is that the lambda's 'context-decl' was not set to the concept, and the lambda picked up template arguments from the concept. SO, we failed to get the correct template arguments in SemaTemplateInstantiate. However, a Concept Specialization is NOT a decl, its an expression, so we weren't able to put the concept in the decl tree like we needed. This patch introduces a ConceptSpecializationDecl, which is the smallest type possible to use for this purpose, containing only the template arguments. The net memory impliciation of this is turning a trailing-objects into a pointer to a type with trailing-objects, so it should be minor. As future work, we may consider giving this type more responsibility, or figuring out how to better merge duplicates, but as this is just a template-argument collection at the moment, there isn't much value to it. Differential Revision: https://reviews.llvm.org/D136451
-
Adrian Kuegel authored
-
Sanjay Patel authored
Try to get better coverage for the pattern-matching possibilities in D136015.
-
Sanjay Patel authored
This gets the tests closer to the form that we are trying to test in D136015. Note that the IR has changed, but the check lines have not changed. This also shows that the desired commuted pattern coverage is not as expected.
-
Arthur Grillo authored
When checking for non null arguments the wrong SourceLocation was given, this fix to pass the proper argument's location. Fixes #58273 Differential Revision: https://reviews.llvm.org/D136355
-
Matthias Springer authored
There was a bug in scf.for loop bufferization that could lead to a missing buffer copy (alloc was there, but not the copy). Differential Revision: https://reviews.llvm.org/D135053
-
Sjoerd Meijer authored
This adds Clang command line support for the NVIDIA Grace CPU [1], which we would like to target with -mcpu=grace. Grace is based on the Arm Neoverse V2 CPU [1], which is why, in the driver, we pass neoverse-v2 to the compiler when grace is requested. Thus, for now, it's an alias to Neoverse V2. This adds support for grace in user-facing tool Clang, but not yet the developer tools like opt and llc, so we probably want to follow up on this. [1] https://www.nvidia.com/en-us/data-center/grace-cpu/ Differential Revision: https://reviews.llvm.org/D136425
-
Petar Avramovic authored
Recognize when sub-vectors have been split to elements which are used to build large vector. This happens when instructions have different vector sizes available. For example a few arithmetic instruction are required to process all elements of larger vector that can be stored using one instruction. Differential Revision: https://reviews.llvm.org/D109242
-
Petar Avramovic authored
Recognize when source could have been unmerged to pieces with DstTy without having to split source to smaller elements and then merge small elements into DstTy pieces. This happens when vector was meant to be split to sub-vectors but there was leftover. At this point artifact combiner have already dealt with leftover and we can continue to use sub-vectors. Differential Revision: https://reviews.llvm.org/D109241
-
Petar Avramovic authored
Recognize copy that is represented as split of a source register to elements that were reassembled to another register with the same type. Differential Revision: https://reviews.llvm.org/D109240
-
Petar Avramovic authored
Differential Revision: https://reviews.llvm.org/D117655
-
Nico Weber authored
-
Benjamin Maxwell authored
The lack of this attribute (particularly on the load intrinsics) prevented InstCombine from optimizing away allocas and memcpys for arrays that could be read directly from rodata. This now also includes a new test to check the masked load/store intrinsics have the expected attributes (specifically nocapture). Differential Revision: https://reviews.llvm.org/D135656
-
Guillaume Chatelet authored
This was broken by https://reviews.llvm.org/D136351
-
Guillaume Chatelet authored
-
Guillaume Chatelet authored
`cpp::byte` is better than `char` which -depending on platform- can be `signed char` or `unsigned char`. This has introduced subtle arithmetic errors.
-
David Green authored
This switches the v8.5-a FRINT intrinsics over to be target-gated, behind preprocessor defines. This one is pretty simple, being AArch64 only. Differential Revision: https://reviews.llvm.org/D135646
-
Michał Górny authored
Move include_directories() declaration before gtest targets are created in standalone build. This fixes build failure due to gtest targets being unable to find LLVM headers, e.g.: /var/tmp/portage/dev-util/lldb-16.0.0_pre20221023/work/llvm/utils/unittest/googletest/include/gtest/internal/custom/raw-ostream.h:43:10: fatal error: llvm/ADT/Optional.h: No such file or directory Differential Revision: https://reviews.llvm.org/D136552
-