- Aug 20, 2021
-
-
Thomas Lively authored
Since they are bitmasks, it will be more common for them to be used and potentially extended to 64-bit integers as unsigned values rather than signed values. Differential Revision: https://reviews.llvm.org/D108401
-
Amara Emerson authored
When support for copying vector s8 lanes was added recently, this also had the side effect of fixing a fallback for <16 x s8> extracts since both used the same helper. However, there was a bug in another helper to get the regclass for a specific FPR-native type, which was assigning FPR16 to s8 instead of FPR8.
-
Kent Ross authored
Reviewed By: ldionne, #libc Differential Revision: https://reviews.llvm.org/D108263
-
Kent Ross authored
Add issue tracking and assignment for the implementation of P1614R2: The Mothership has Landed. Reviewed By: cjdb, #libc, Mordante, Quuxplusone Differential Revision: https://reviews.llvm.org/D107877
-
Kent Ross authored
`<type_traits>` was included in the first iteration of `<compare>` when it was created as a monolithic header, then never removed. Removing it now is a beneficial no-op since it is not guaranteed by the standard and is already included by all of its subheaders. Reviewed By: cjdb, #libc, Quuxplusone Differential Revision: https://reviews.llvm.org/D107801
-
Thomas Lively authored
-
Yonghong Song authored
This reverts commit 2fded193. Builtbot reports some test failures. Revert now so I can take time to fix the issues.
-
Yonghong Song authored
Clang patch D106614 added attribute btf_tag support. This patch generates btf_tag annotations for DIComposite types. A field "annotations" is introduced to DIComposite, and the annotations are represented as an DINodeArray, similar to DIComposite elements. The following example illustrates how annotations are encoded in IR: distinct !DICompositeType(..., annotations: !10) !10 = !{!11, !12} !11 = !{!"btf_tag", !"a"} !12 = !{!"btf_tag", !"b"} Each btf_tag annotation is represented as a 2D array of meta strings. Each record may have more than one btf_tag annotations, as in the above example. Differential Revision: https://reviews.llvm.org/D106615 -
Thomas Lively authored
The convert_low and promote_low instructions can widen the lower two lanes of a four-lane vector, but we were previously scalarizing patterns that widened lanes besides the low two lanes. The commit adds a shuffle to move the widened lanes into the low lane positions so the convert_low and promote_low instructions can be used instead of scalarizing. Depends on D108266. Differential Revision: https://reviews.llvm.org/D108341
-
Thomas Lively authored
Since the simplest DAG patterns for convert_low and promote_low instructions involved v2i32, v2f32, v4i64, and v4f64 types, which are not legal in the WebAssembly backend and would be eliminated by type legalization, we were previously matching those patterns in a DAG combine before the type legalization stage. However in cases where the vectors were wider than 128 bits, the patterns we matched were not created until the type legalization stage when the wide vectors were split up. Type legalization would continue to eliminate the illegal types we were matching as well, so the code ended up scalarized. To make the ISel for these instructions more robust, match the scalarized patterns rather than the patterns containing illegal types. Add tests with double-wide vectors to show that this works as intended. Fixes PR51098. Depends on D107502. Differential Revision: https://reviews.llvm.org/D108266
-
Akira Hatanaka authored
This is in preparation for committing https://reviews.llvm.org/D103000.
-
Rumeet Dhindsa authored
This patch adds the support to close all inherited fds into the child process by iterating over /proc/self/fd entries. Differential Revision: https://reviews.llvm.org/D105732
-
Arthur Eubanks authored
So that we don't use a confusing index.
-
Alexandre Rames authored
Introduce `StringRef final()` and `StringRef result()`. Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D107781
-
Arthur Eubanks authored
-
Alexandre Rames authored
This prepares an update to follow other hashes. Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D108388
-
Morten Borup Petersen authored
Previously, ExecuteRegionOps with multiple return values would fail a round-trip test due to missing parenthesis around the types. Differential Revision: https://reviews.llvm.org/D108402
-
Florian Mayer authored
The failed assertion was fixed in D108337. Reviewed By: vitalybuka, eugenis Differential Revision: https://reviews.llvm.org/D108381
-
Jennifer Yu authored
A new rule is added in 5.0: If a list item appears in a reduction, lastprivate or linear clause on a combined target construct then it is treated as if it also appears in a map clause with a map-type of tofrom. Currently map clauses for all capture variables are added implicitly. But missing for list item of expression for array elements or array sections. The change is to add implicit map clause for array of elements used in reduction clause. Skip adding map clause if the expression is not mappable. Noted: For linear and lastprivate, since only variable name is accepted, the map has been added though capture variables. To do so: During the mappable checking, if error, ignore diagnose and skip adding implicit map clause. The changes: 1> Add code to generate implicit map in ActOnOpenMPExecutableDirective, for omp 5.0 and up. 2> Add extra default parameter NoDiagnose in ActOnOpenMPMapClause: Use that to skip error as well as skip adding ...
-
Jon Chesterfield authored
-
Adrian Prantl authored
-
Thomas Lively authored
The default legalization of unsupported vector types is to promote the integers in each lane, which leads to extra sign or zero extending and masking when moving data into and out of vectors. Switch our preferred type legalization from the default to vector widening, which keeps the data in the low lanes of the vector rather than in the low bits of each lane. The unused high lanes can be ignored. Half-wide vectors are now loaded from memory into the low 64 bits of the v128 rather than spread out among the lanes. As a result, v128.load64_splat is a much more common operation, so add new patterns to support it. Differential Revision: https://reviews.llvm.org/D107502
-
Brian Cain authored
With unquoted ${CMAKE_CXX_FLAGS}, the REGEX fails when it's empty: ```CMake Error at lib/scudo/standalone/CMakeLists.txt:14 (string): string sub-command REGEX, mode REPLACE needs at least 6 arguments total to command.``` -
Siva Chandra Reddy authored
-
MaheshRavishankar authored
This reverts commit 95ddc834. Differential Revision: https://reviews.llvm.org/D108396
-
Omar Emara authored
This patch handles the return key for compound fields like lists and mapping fields. The return key, if not handled by the field will select the next primary element, skipping secondary elements like remove buttons and the like. Differential Revision: https://reviews.llvm.org/D108331
-
Philip Reames authored
This patch extends the runtime unrolling infrastructure to support unrolling a loop with multiple exiting blocks branching to the same exit block used by the latch. It intentionally does not include a cost model change to enable this functionality unless appropriate force flags are used. This is the prolog companion to D107381. Since this was LGTMed, a problem with DT updating was reported against that patch. I roled in the analogous fix here as it seemed obvious, and not worth re-review. As an aside, our prolog form leaves a lot of potential value on the floor when there is an invariant load or invariant condition in the loop being runtime unrolled. We should probably consider a "required prolog" heuristic. (Alternatively, maybe we should be peeling these cases more aggressively?) Differential Revision: https://reviews.llvm.org/D108262
-
Stanislav Mekhanoshin authored
Alias analysis is unable to disambiguate accesses to the structure fields without it unlike distinct variables. As a result we cannot combine ds_read and ds_write operations in a case of any store in between which always considered clobbering. Differential Revision: https://reviews.llvm.org/D108315
-
Nikita Popov authored
As reported on https://bugs.llvm.org/show_bug.cgi?id=51020, the guard widening pass doesn't preserve MemorySSA, so it can no longer be scheduled in the same loop pass manager as LICM. However, the loop-schedule.ll test indicates that this is supposed to work. Fix this by preserving MemorySSA if available, as this seems to be trivial in this case (we only need to drop the memory access for the removed guards). Differential Revision: https://reviews.llvm.org/D108386
-
MaheshRavishankar authored
Differential Revision: https://reviews.llvm.org/D108338
-
Alex Langford authored
-
Philip Reames authored
In 94d09142, I added support for unrolling of multiple exit loops which have multiple exits reaching the latch. Per reports on the review post commit, I'd missed updating the domtree for one case. This fix addresses that ommission. There's no new test as this is covered by existing tests with expensive verification turned on.
-
Michael Jones authored
This is based on the work done to add strtoll and the other strto functions. The atoi functions also were added to stdc and entrypoints.txt. Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D108330
-
Louis Dionne authored
__split_buffer_common was entirely unused, and __deque_base_common was unused except for two calls to __throw_out_of_range(), which have been inlined. The usual intent of the __xxx_base_common base classes is to localize where the exception-throwing code is instantiated, however that wasn't the case here because we never explicitly instantiated those base classes in the shared library, unlike what we do for basic_string and vector. Differential Revision: https://reviews.llvm.org/D108384
-
Simon Pilgrim authored
We still need to tag the llvm.isnan.? intrinsic as vectorizable
-
Simon Pilgrim authored
-
Guillaume Chatelet authored
Differential Revision: https://reviews.llvm.org/D108225
-
Jon Chesterfield authored
-
Tim Northover authored
In particular we were dropping volatility, which can lead to unwanted transformations.
-
Simon Pilgrim authored
-