- Aug 20, 2021
-
-
Anton Afanasyev authored
-
Anton Afanasyev authored
-
Anshil Gandhi authored
Produce remarks when atomic instructions are expanded into hardware instructions in SIISelLowering.cpp. Currently, these remarks are only emitted for atomic fadd instructions. Differential Revision: https://reviews.llvm.org/D108150
-
Albion Fung authored
This patch implements the builtins for cmplxl by utilising __builtin_complex. This builtin is implemented to match XL functionality. Differential revision: https://reviews.llvm.org/D107138
-
Rob Suderman authored
Tosa rescale can contain uint8 types. Added support for these types using an unrealized conversion cast. Optimistically it would be better to use bitcast however it does not support unsigned integers. Differential Revision: https://reviews.llvm.org/D108427
-
Maryam Benimmar authored
Support XCOFFDumper relocation reading support This patch is part of D103696 partition Reviewed By: daltenty, Helflym Differential Revision: https://reviews.llvm.org/D104646
-
Jinsong Ji authored
Update the commit to use shlex.split, as the win32 is not supported. See https://reviews.llvm.org/D108329 for discussions.
-
Yonghong Song authored
Clang patch D106614 added attribute btf_tag support. This patch generates btf_tag annotations for DIComposite types. Each btf_tag annotation is represented as a 2D array of meta strings. Each record may have more than one btf_tag annotations. Differential Revision: https://reviews.llvm.org/D106615
-
Shilei Tian authored
This patch replaces the current implementation, overwrites `gtid` and `thread`, with `__kmpc_give_task`. Reviewed By: AndreyChurbanov Differential Revision: https://reviews.llvm.org/D106977
-
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. Reland with additional fixes for llvm/unittests/IR/DebugTypeODRUniquingTest.cpp. Differential Revision: https://reviews.llvm.org/D106615 -
Jessica Paquette authored
Translate the `@llvm.lround.*` family to G_LROUND via `IRTranslator::translateSimpleIntrinsic`. Differential Revision: https://reviews.llvm.org/D108418
-
Jessica Paquette authored
Meant to represent the `@llvm.lround.*` family. Add the opcode, docs, and verification. Differential Revision: https://reviews.llvm.org/D108417
-
Joachim Protze authored
D107156 and D107320 are not sufficient when OpenMP is built as llvm runtime (LLVM_ENABLE_RUNTIMES=openmp) because dependencies only work within the same cmake instance. We could limit the dependency to cases where libomptarget/plugins are really built. But compared to the whole llvm project, building openmp runtime is negligible and postponing the build of OpenMP runtime after the dependencies are ready seems reasonable. The direct dependency introduced in D107156 and D107320 is necessary for the case where OpenMP is built as llvm project (LLVM_ENABLE_PROJECTS=openmp). Differential Revision: https://reviews.llvm.org/D108404
-
Fangrui Song authored
This reverts commit fbb8e772. Accidentally pushed.
-
Amara Emerson authored
For some reductions like G_VECREDUCE_OR on AArch64, we need to scalarize completely if the source is <= 64b. This change adds support for that in the legalizer. If the source has a pow-2 num elements, then we can do a tree reduction using the scalar operation in the individual elements. Otherwise, we just create a sequential chain of operations. For AArch64, we only need to scalarize if the input is <64b. If it's great than 64b then we can first do a fewElements step to 64b, taking advantage of vector instructions until we reach the point of scalarization. I also had to relax the verifier checks for reductions because the intrinsics support <1 x EltTy> types, which we lower to scalars for GlobalISel. Differential Revision: https://reviews.llvm.org/D108276
-
Fangrui Song authored
The COFF specific `DataReferencedByCode` complexity (D103372 D103717) is due to a link.exe limitation: an external symbol in IMAGE_COMDAT_SELECT_ASSOCIATIVE is not really dropped, so it can cause duplicate definition error.
-
Fangrui Song authored
darwin/aix don't support comdat. Using IR comdat is incorrect.
-
Sam Clegg authored
In the case of weakly defined symbols in shared libraries we now generate both an import and an export. The dynamic linker can then choose how a winner from among all the shared libraries that define a given symbol. Previously any direct usage of a weakly defined symbol would use the DSO-local definition (For example, even through there would be single address for a weakly defined function, each DSO could end up directly calling its local version). Fixes: https://github.com/emscripten-core/emscripten/issues/13773 Differential Revision: https://reviews.llvm.org/D108413
-
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 implicit map during the mappable checking. Note: there are only tow places need to be check for NoDiagnose. Rest of them either the check is for < omp 5.0 or the error already generated for reduction clause. Differential Revision: https://reviews.llvm.org/D108132
-
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
-