- Jan 24, 2023
-
-
Mark de Wever authored
-
Caroline Concatto authored
Add the following intrinsic: FCVT BFCVT FCVTZS FCVTZU SCVTF UCVTF This patch also adds SelectCVTIntrinsic to handle the cases when the intrinsic returns multiple (two or four) outputs NOTE: These intrinsics are still in development and are subject to future changes. Reviewed By: kmclaughlin Differential Revision: https://reviews.llvm.org/D142032
-
Zahira Ammarguellat authored
This option is useful for clang and clang-cl. Differential Revision: https://reviews.llvm.org/D142367
-
Xiang Li authored
Fixes #60184 https://github.com/llvm/llvm-project/issues/60184 Differential Revision: https://reviews.llvm.org/D142295
-
Guillaume Chatelet authored
This patch reduces CMake configuration time drastically by removing a non-linear behavior. Time to execute CMake configure step goes from 45s to 15s. Differential Revision: https://reviews.llvm.org/D142374
-
Lucas Prates authored
Update the clang driver to include the following features as default for the v8.9-A/v9.4-A architecture versions: * FEAT_SPECRES2 * FEAT_CSSC * FEAT_RASv2 Patch by Sam Elliott. Reviewed By: lenary, tmatheson Differential Revision: https://reviews.llvm.org/D141404
-
Lucas Prates authored
This introduces command line support (`+ite`) for the v9.4-A's Instrumentation Extension (FEAT_ITE). Patch by Son Tuan Vu. Reviewed By: lenary, tmatheson Differential Revision: https://reviews.llvm.org/D141403
-
Florian Hahn authored
-
Ties Stuij authored
Reviewed By: peter.smith Differential Revision: https://reviews.llvm.org/D142229
-
- Jan 23, 2023
-
-
Quentin Colombet authored
collapse/expand_shape are supposed to be expanded before we hit the lowering code. The expansion is done with the pass called expand-strided-metadata. This patch is NFC in spirit but not in practice because expand-strided-metadata won't try to accomodate for "invalid" strides for dynamic sizes that are 1 at runtime. The previous code was broken in that respect too, but differently: it handled only the case of row-major layouts. That whole part is being reworked separately. Differential Revision: https://reviews.llvm.org/D136483
-
Krasimir Georgiev authored
bazel: adapt for https://github.com/llvm/llvm-project/commit/a4699a43e42615281c96599d20977cabf10bfb9c
-
Archibald Elliott authored
This patch contains several related changes: 1. We move to using TARGET_BUILTIN for the 128-bit system register builtins to give better error messages when d128 has not been enabled, or has been enabled in a per-function manner. 2. We now validate the inputs to the 128-bit system register builtins, like we validate the other system register builtins. 3. We update the list of named PSTATE accessors for MSR (immediate), and now correctly enforce the expected ranges of the immediates. There is a long comment about how we chose to do this to comply with the ACLE when most of the PSTATE accessors for MSR (immediate) have aliased system registers for MRS/MSR which expect different values. In short, the MSR (immediate) names are prioritised, rather than falling-back to the register form when the value is out of range. Differential Revision: https://reviews.llvm.org/D140222
-
Alex Zinenko authored
The verification of affine value classification for symbols was expecting, incorrectly, that the dimension operand of `memref.dim` was being produced by a constant-like operation. This is legacy of the dimension being an attribute originally, and was never updated after it was switched to be an operation. Treat such cases conservatively and classify the value as non-symbol. A more advanced version could attempt to check that the value would be a valid symbol for all possible values the dimension attribute could take, but this does not seem immediately useful. Fixes #59993. Reviewed By: bondhugula Differential Revision: https://reviews.llvm.org/D142204
-
Alex Zinenko authored
It should have an "Allocate" effect on entry block arguments of all regions in addition to consuming the operand. Also relax the assertion in transform-dialect-check-uses until we can properly support region-based control flow. Fixes #60075. Reviewed By: springerm Differential Revision: https://reviews.llvm.org/D142200
-
Xiang Li authored
Fixes #60058 https://github.com/llvm/llvm-project/issues/60058 It hit assert when legalizePatternResult on success of ExpandIfCondition which did nothing just return success when if condition is constant. Added RemoveConstantIfCondition to remove the if cond by getCanonicalizationPatterns. Also remove the check for constant if cond in ExpandIfCondition and change check ifCond to assert because only op with ifCond will need legalize in ConvertOpenACCToSCFPass Differential Revision: https://reviews.llvm.org/D142286
-
Lucas Prates authored
This adds support for the v8.9-A/v9.4-A architectural extensions to be used in .arch_extension assembly directives. Patch by Sam Elliott. Reviewed By: lenary, tmatheson Differential Revision: https://reviews.llvm.org/D141402
-
Lucas Prates authored
This adds support for the missing `PIRE0_EL12` system register, part of v8.9-A/v9.4-A's Permission Indirection Extension. Patch by Son Tuan Vu. Reviewed By: tmatheson Differential Revision: https://reviews.llvm.org/D141400
-
Joseph Huber authored
Summary: Fix a few minor warnings that show up in `libomptarget`.
-
Joseph Huber authored
Summary: Recently AMD moved the "hsa.h" include to "hsa/hsa.h". This causes several warning. This patch checks to see if we can include that one instead. This should hopefully keep things backwards compatible while silencing the warnings.
-
Joseph Huber authored
Summary: These warnings are very loud considering they get repeated at least 30 times each build. This patch just silences them.
-
David Spickett authored
Make the first line a title and relative link to the Markdown of the demo notebook.
-
Shivam Gupta authored
Found by PVS-Studio - https://pvs-studio.com/en/blog/posts/cpp/1003/, N37. The code you is using the bit mask NullabilityKindMask which is 0x3 (00000011 in binary) to clear the bits in the NullabilityPayload variable. Since NullabilityPayload is a 64-bit variable and NullabilityKindMask is only a 8-bit variable(0x3), it will only affect the last 8 bits of the variable. The higher 56 bits will remain unchanged. Differential Revision: https://reviews.llvm.org/D142334
-
Jay Foad authored
The new methods return a range for easier iteration. Use them everywhere instead of getImplicitUses, getNumImplicitUses, getImplicitDefs and getNumImplicitDefs. A future patch will remove the old methods. In some use cases the new methods are less efficient because they always have to scan the whole uses/defs array to count its length, but that will be fixed in a future patch by storing the number of implicit uses/defs explicitly in MCInstrDesc. At that point there will be no need to 0-terminate the arrays. Differential Revision: https://reviews.llvm.org/D142215
-
Valentin Clement authored
When a `!fir.box<>` is passed as an actual argument to an optional `!fir.class<>` dummy it needs a `fir.rebox` in order to propagate the dynamic type information. The `fir.rebox` needs to happen only on present argument. Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D142340
-
Florian Hahn authored
-
Simon Pilgrim authored
Also, move the XformToShuffleWithZero and combineCarryDiamond folds later after some of the more basic canonicalizations/combines (such as this) have had a chance to occur Fixes the v8i1-masks.ll regression from D127115
-
Kadir Cetinkaya authored
Introduce signals to rank providers of a symbol. Differential Revision: https://reviews.llvm.org/D139921
-
David Spickett authored
This changes the default mode to cache the code blocks we're asked to compile until we see the new `%reset` magic to clear that cache. This means that if you run several cells in sequence, at the end you're compiling the code from all the cells at once. This emulates what the ipython kernel does where it uses a persistent interpreter state by default. `%reset` will only be acted on when it's in the cell we're asked to run (the newest code). `%args` we will use the most recent value we have cached. The example notebook has been updated to explain that. Depends on D132378 Reviewed By: jpienaar Differential Revision: https://reviews.llvm.org/D132646
-
David Spickett authored
This is based on the MLIR opt kernel: https://github.com/llvm/llvm-project/tree/main/mlir/utils/jupyter The inent of this is to enable experimentation and the creation of interactive tutorials for the basics of tablegen. Noteable changes from that: * Removed the codemirror mode settings since those won't exist for tablegen. * Added "%args" "magic" to control arguments sent to llvm-tblgen. (magics are directives, see https://ipython.readthedocs.io/en/stable/interactive/magics.html) For example the following: ``` %args --print-detailed-records class Stuff {} def water_bottle : Stuff {} ``` Produces: ``` DETAILED RECORDS for file - -------------------- Global Variables (0) -------------------- -------------------- Classes (1) -------------------- Stuff |<stdin>:1| Template args: (none) Superclasses: (none) Fields: (none) -------------------- Records (1) -------------------- water_bottle |<stdin>:3| Superclasses: Stuff Fields: (none) ``` Reviewed By: jpienaar, awarzynski Differential Revision: https://reviews.llvm.org/D132378
-
Simon Pilgrim authored
-
Samuel Parker authored
-
Florian Hahn authored
This updates the GraphTraits specialization for VPBlockBase to recurse through VPRegionBlocks. This in turn enables using VPDominatorTree to query dominance between any block in a plan. This should enable additional use cases, including improvements to def-use verification and porting IR-based transforms that rely on the dominator tree. Specifically, this change means that for regions, the entry and exit blocks dominate the successors of the region. Depends on D140512 and D142162. Reviewed By: Ayal Differential Revision: https://reviews.llvm.org/D140513
-
serge-sans-paille authored
Reorganize clang::Builtin::Info to have them naturally align on 4 bytes boundaries. Instead of storing builtin headers as a straight char pointer, enumerate them and store the enum. It allows to use a small enum instead of a pointer to reference them. On a 64 bit machine, this brings sizeof(clang::Builtin::Info) from 56 down to 48 bytes. On a release build on my Linux 64 bit machine, it shrinks the size of libclang-cpp.so by 193kB. The impact on performance is negligible in terms of instruction count, but the wall time seems better, see https://llvm-compile-time-tracker.com/compare.php?from=b3d8639f3536a4876b511aca9fb7948ff9266cee&to=a89b56423f98b550260a58c41e64aff9e56b76be&stat=task-clock Differential Revision: https://reviews.llvm.org/D142024
-
David Sherwood authored
Both sclamp and uclamp are part of the SVE2p1 feature so I've renamed the tests accordingly: sve2-intrinsics-sclamp.ll -> sve2p1-intrinsics-sclamp.ll sve2-intrinsics-uclamp.ll -> sve2p1-intrinsics-uclamp.ll
-
Joseph Huber authored
Summary: These tools were deleted since LLVM 15. They are no longer present so we should damnatio memoriae.
-
Joseph Huber authored
Summary: This test is a little flaky and isn't as necessary anymore now that we only generate one temporary file.
-
Nikita Popov authored
The phi operands need to be either in the worklist or be the alloca itself, because that one does not require replacement.
-
Sander de Smalen authored
Reviewed By: MattDevereau Differential Revision: https://reviews.llvm.org/D141601
-
Sander de Smalen authored
Reviewed By: CarolineConcatto Differential Revision: https://reviews.llvm.org/D142198
-
Sander de Smalen authored
The specification says: For programmer convenience, an assembler must also accept predicate-as-counter register names for the destination predicate register and the first source predicate register Reviewed By: CarolineConcatto, MattDevereau Differential Revision: https://reviews.llvm.org/D141603
-