- Dec 23, 2020
-
-
Arthur Eubanks authored
-
Kazu Hirata authored
The last use of the function was removed on Sep 30, 2017 in commit 9b926e90.
-
Thomas Lively authored
Introduce `Vec` records, each bundling all information related to a single SIMD lane interpretation. This lets TableGen definitions take a single Vec parameter from which they can extract information rather than taking multiple redundant parameters. This commit refactors all of the SIMD load and store instruction definitions to use the new `Vec`s. Subsequent commits will similarly refactor additional instruction definitions. Differential Revision: https://reviews.llvm.org/D93660
-
Kazu Hirata authored
-
Matt Arsenault authored
Returning int64_t was arbitrarily limiting for wide integer types, and the functions should handle the full generality of the IR. Also changes the full form which returns the originally defined vreg. Add another wrapper for the common case of just immediately converting to int64_t (arguably this would be useful for the full return value case as well). One possible issue with this change is some of the existing uses did break without conversion to getConstantVRegSExtVal, and it's possible some without adequate test coverage are now broken.
-
Nico Weber authored
It's an extension to ld64, but all the other ports have it, and someone asked for it in PR43721. While here, change the COFF help text to match the other ports. Differential Revision: https://reviews.llvm.org/D93491
-
Matt Arsenault authored
-
Matt Arsenault authored
-
ShihPo Hung authored
This patch defines vfmadd/vfnmacc, vfmsac/vfnmsac, vfmadd/vfnmadd, and vfmsub/vfnmsub lower to V instructions. Authored-by:
Roger Ferrer Ibanez <rofirrim@gmail.com> Co-Authored-by:
ShihPo Hung <shihpo.hung@sifive.com> Differential Revision: https://reviews.llvm.org/D93691
-
ShihPo Hung authored
This patch defines vwmacc[u|su|us] intrinsics and lower to V instructions. We work with @rogfer01 from BSC to come out this patch. Authored-by:
Roger Ferrer Ibanez <rofirrim@gmail.com> Co-Authored-by:
ShihPo Hung <shihpo.hung@sifive.com> Differential Revision: https://reviews.llvm.org/D93675
-
ShihPo Hung authored
This patch adds intrinsics for vslide1up, vslide1down, vfslide1up, vfslide1down. Authored-by:
Roger Ferrer Ibanez <rofirrim@gmail.com> Co-Authored-by:
ShihPo Hung <shihpo.hung@sifive.com> Differential Revision: https://reviews.llvm.org/D93608
-
Matt Arsenault authored
-
Matt Arsenault authored
-
Arthur O'Dwyer authored
Differential Revision: https://reviews.llvm.org/D76572
-
Peter Collingbourne authored
The primary and secondary allocators will need to share this bit, so move the management of the bit to the combined allocator and make useMemoryTagging() a free function. Differential Revision: https://reviews.llvm.org/D93730
-
Peter Collingbourne authored
This will allow the secondary allocator to access the MaySupportMemoryTagging bool. Differential Revision: https://reviews.llvm.org/D93729
-
Stanislav Mekhanoshin authored
It does not seem to fold offsets but this is not specific to the flat scratch as getPtrBaseWithConstantOffset() does not return the split for these tests unlike its SDag counterpart. Differential Revision: https://reviews.llvm.org/D93670
-
Stanislav Mekhanoshin authored
Adjust SITargetLowering::allowsMisalignedMemoryAccessesImpl for unaligned flat scratch support. Mostly needed for global isel. Differential Revision: https://reviews.llvm.org/D93669
-
Peter Collingbourne authored
This will allow the primary and secondary allocators to share the MaySupportMemoryTagging bool. Differential Revision: https://reviews.llvm.org/D93728
-
Chris Lattner authored
One common situation is to create a lot of IR at a well known location, e.g. when doing a big rewrite from one dialect to another where you're expanding ops out into lots of other ops. For these sorts of situations, it is annoying to pass the location into every create call. As we discused in a few threads on the forum, a way to help with this is to produce a new sort of builder that holds a location and provides it to each of the create<> calls automatically. This patch implements an ImplicitLocOpBuilder class that does this. We've had good experience with this in the CIRCT project, and it makes sense to upstream to MLIR. I picked a random pass to adopt it to show the impact, but I don't think there is any particular need to force adopt it in the codebase. Differential Revision: https://reviews.llvm.org/D93717
-
Joseph Huber authored
Add support to the OpenMP web pages for environment variables supported by Libomptarget and their usage. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D93723
-
Alex Zinenko authored
LLVMType contains multiple instance methods that were introduced initially for compatibility with LLVM API. These methods boil down to `cast` followed by type-specific call. Arguably, they are mostly used in an LLVM cast-follows-isa anti-pattern. This doesn't connect nicely to the rest of the MLIR infrastructure and actively prevents it from making the LLVM dialect type system more open, e.g., reusing built-in types when appropriate. Remove such instance methods and replaces their uses with apporpriate casts and methods on derived classes. In some cases, the result may look slightly more verbose, but most cases should actually use a stricter subtype of LLVMType anyway and avoid the isa/cast. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D93680
-
Thomas Lively authored
These instructions previously used prefixes like v8x16 to signify that they were agnostic between float and int interpretations. We renamed these instructions to remove this form of prefix in https://github.com/WebAssembly/simd/issues/297 and https://github.com/WebAssembly/simd/issues/316 and this commit brings the names in LLVM up to date. Differential Revision: https://reviews.llvm.org/D93722
-
Sam McCall authored
-
Christian Sigg authored
Reviewed By: herhut Differential Revision: https://reviews.llvm.org/D93204
-
Sam McCall authored
Instead of always locking/unlocking a contended mutex, we now do one atomic read in the common case, and one read + one exchange if the timer has expried. Also use this for memory profiling which has similar/compatible requirements. Differential Revision: https://reviews.llvm.org/D93726
-
Sanjay Patel authored
-
Sanjay Patel authored
I think this is NFC currently, but the bug would be exposed when we allow binary intrinsics (maxnum, etc) as candidates for reductions. The code in matchAssociativeReduction() is using OperationData::getNumberOfOperands() when comparing whether the "EdgeToVisit" iterator is in-bounds, so this code must use the same (potentially offset) operand value to set the "EdgeToVisit".
-
Nico Weber authored
Before this, a hello world program would contain many many unnecessary entries in its string table. No behavior change, just makes the string table in the output smaller and more like ld64's. Differential Revision: https://reviews.llvm.org/D93711
-
Stephen Kelly authored
-
Craig Topper authored
Instead we can either use the bit directly. If it was checking for 0 we need to swap the operands or use !not.
-
Johannes Doerfert authored
-
Shilei Tian authored
When setting `LLVM_ENABLE_RUNTIMES`, lower case word should be used; otherwise, it can cause a CMake error that specific path is not found. Reviewed By: ye-luo Differential Revision: https://reviews.llvm.org/D93719
-
Johannes Doerfert authored
Reviewed By: tianshilei1992 Differential Revision: https://reviews.llvm.org/D93718
-
Arnold Schwaighofer authored
The llvm.coro.end.async intrinsic allows to specify a function that is to be called as the last action before returning. This function will be inlined after coroutine splitting. This function can contain a 'musttail' call to allow for guaranteed tail calling as the last action. Differential Revision: https://reviews.llvm.org/D93568
-
Stanislav Mekhanoshin authored
Differential Revision: https://reviews.llvm.org/D93501
-
Stephen Kelly authored
readability-container-size-empty currently modifies source code based on AST nodes in template instantiations, which means that it makes transformations based on substituted types. This can lead to transforming code to be broken. Change the matcher implementation to ignore template instantiations explicitly, and add a matcher to explicitly handle template declarations instead of instantiations. Differential Revision: https://reviews.llvm.org/D91302
-
Arthur Eubanks authored
This reverts commit 430d5d84. Depends on a reverted change.
-
Arthur Eubanks authored
This reverts commit 95c7b6ca. Depends on a reverted change.
-
sameeran joshi authored
This reverts commit 9a7895dc. Reverting due to missing Co-author attribution. https://reviews.llvm.org/D93105
-