This project is mirrored from https://github.com/llvm/llvm-project.git.
Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer or owner.
Last successful update .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer or owner.
Last successful update .
- Nov 15, 2021
-
-
Simon Pilgrim authored
-
David Blaikie authored
Follow-up to D77598: Simplify API by passing template parameters only when used/to imply "TemplOverloaded/overloadable" These arguments were redundant, and other parts of D77598 did rely on the presence/absence of template parameters to imply whether types should be included for the argument (like clang::printTemplateArgumentList) so do that here too.
-
Simon Pilgrim authored
This helper provides a more complete approach for lowering to X86ISD::PACKSS/PACKUS nodes - testing for existing suitable sign/zero extension before recreating it. It also optionally packs the upper half instead of the lower half.
-
Florian Hahn authored
After cd8aa234, there's no need to collect a vector of basic blocks to keep first. Remove the first loop.
-
Vitaly Buka authored
-
Koakuma authored
On SPARC, S/UMULO operation on 64-bit integers works by extending the value to 128-bit, then doing a multiplication and checking the upper half of the result. This makes UMULO works correctly by putting a zero in the upper half rather than doing a sign extension. Reviewed By: LemonBoy Differential Revision: https://reviews.llvm.org/D110555
-
Christian Ulmann authored
This patch adds functionality to parse FlatAffineConstraints from a StringRef with the intention to be used for unit tests. This should make the construction of FlatAffineConstraints easier for testing purposes. The patch contains an example usage of the functionality in a unit test that uses FlatAffineConstraints. Reviewed By: bondhugula Differential Revision: https://reviews.llvm.org/D113275
-
Kazu Hirata authored
-
Kazu Hirata authored
-
Kazu Hirata authored
-
Roman Lebedev authored
-
Roman Lebedev authored
-
Roman Lebedev authored
[X86][Costmodel] `getReplicationShuffleCost()`: promote 16 bit-wide elements to 32 bit when no AVX512BW The basic idea is simple, if we don't have native shuffle for this element type, then we must have native shuffle for wider element type, so promote, replicate, demote. I believe, asking `getCastInstrCost(Instruction::Trunc` is correct semantically, case in point `trunc <32 x i32> to <32 x i8>` aka 2 * ZMM will naively result in 2 * XMM, that then will be packed into 1 * YMM, and it should count the cost of said packing, not just the truncations. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D113609
-
Roman Lebedev authored
'Replicated' is mouthful and somewhat ambigious, while 'destination' is pretty self-explanatory.
-
Mehrnoosh Heidarpour authored
Baseline tests for D113783 Differential Revision: https://reviews.llvm.org/D113846
-
- Nov 14, 2021
-
-
Ahmed Bougacha authored
This defines the new `@llvm.ptrauth.` pointer authentication intrinsics: sign, auth, strip, blend, and sign_generic, documented in PointerAuth.md. Pointer Authentication is a mechanism by which certain pointers are signed. When a pointer gets signed, a cryptographic hash of its value and other values (pepper and salt) is stored in unused bits of that pointer. Before the pointer is used, it needs to be authenticated, i.e., have its signature checked. This prevents pointer values of unknown origin from being used to replace the signed pointer value. sign and auth provide the core operations. strip removes the ptrauth bits from a signed pointer without checking them. sign_generic allows signing non-pointer values. Finally, blend combines salt values ("discriminators") to derive more targeted and less reusable ones. In later patches, we implement primary backend support for these intrinsics using the AArch64 PAuth feature, and build on that to implement the arm64e Darwin ABI and ELF PAuth ABI Extension in clang. For more details, see the docs page, as well as our llvm-dev RFC: http://lists.llvm.org/pipermail/llvm-dev/2019-October/136091.html or our 2019 Developers' Meeting talk. Differential Revision: https://reviews.llvm.org/D90868
-
Roman Lebedev authored
[X86][Costmodel] `trunc v8i64 to v16i16/v32i16` can appear after legalization, cost is same as for `trunc v8i64 to v8i16` Same as D113842, but for i64 Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D113843
-
Roman Lebedev authored
[X86][Costmodel] `trunc v16i32 to v32i16` can appear after legalization, cost is same as for `trunc v16i32 to v16i16` This was noticed in D113609, hopefully it unblocks that patch. There are likely other similar problems. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D113842
-
Mircea Trofin authored
-
Sanjay Patel authored
This was noted as a follow-up to D113212 / D113426: 4fc1fc40 7e30404c 11522cfc https://alive2.llvm.org/ce/z/e4o96b The canonicalization rules for these IR patterns are complicated, and we were not matching the expected forms in 2 out of the 3 cases. We can make codegen more robust by matching the swapped forms (and that will also work if these patterns are created late).
-
mydeveloperday authored
Looks like the work of {D113393} requires manual clang-formatting intervention. Removal of the space between `auto` and `{}` Reviewed By: HazardyKnusperkeks, Quuxplusone Differential Revision: https://reviews.llvm.org/D113826
-
Simon Pilgrim authored
Similar to what we've done for other ops, this patch widens VPTERNLOG to a 512-bit op for non-VLX targets. Fixes regressions in D113192 Differential Revision: https://reviews.llvm.org/D113827
-
Roman Lebedev authored
See https://reviews.llvm.org/D113609 - some of these costs seem wrong.
-
Roman Lebedev authored
-
Roman Lebedev authored
-
David Green authored
This modifies the preconditions of TypePromotion's isSafeWrap method, to allow it to work from all constants from the ICmp. Using the code: %a = add %x, C1 %c = icmp ult %a, C2 According to Alive, we can prove that is equivalent to icmp ult (add zext(%x), sext(C1)), zext(C2) given C1 <=s 0 and C1 >s C2. https://alive2.llvm.org/ce/z/CECYZB Which is similar to what is already present. We can also prove icmp ult (add zext(%x), sext(C1)), sext(C2) given C1 <=s 0 and C1 <=s C2. https://alive2.llvm.org/ce/z/KKgyeL The PrepareWrappingAdds method was removed, and the constants are now altered to sext or zext directly as required by the above methods. Differential Revision: https://reviews.llvm.org/D113678
-
Kristina Bessonova authored
For global variables and common blocks there is no way to create entities through getOrCreateContextDIE(), so no need to obtain the context first. Differential Revision: https://reviews.llvm.org/D113651
-
Kristina Bessonova authored
-
Vitaly Buka authored
-
LLVM GN Syncbot authored
-
Lang Hames authored
This reverts commit e1933a04 until I can look into bot failures.
-
Kazu Hirata authored
-
hyeongyu kim authored
Return value of the system call was not returned normally. It was discussed at https://reviews.llvm.org/D105169.
-
Vitaly Buka authored
Newer GLIBC uses sysconf to get SIGSTKSZ.
-
LLVM GN Syncbot authored
-
Lang Hames authored
This commit adds a new plugin, GDBJITDebugInfoRegistrationPlugin, that checks for objects containing debug info and registers any debug info found via the GDB JIT registration API. To enable this registration without redundantly representing non-debug sections this plugin synthesizes a new embedded object within a section of the LinkGraph. An allocation action is used to make the registration call. Currently MachO only. ELF users can still use the DebugObjectManagerPlugin. The two are likely to be merged in the near future.
-
ksyx authored
The if-check above deleted part guarantees that StoreOffset <= LoadOffset and that StoreOffset + StoreSize >= LoadOffset + LoadSize, and given that LoadOffset + LoadSize > LoadOffset when LoadSize > 0. Thus, this shows StoreOffset + StoreSize > LoadOffset is guaranteed given LoadSize > 0, while it could be meaningless to have a type with nonpositive size, so that the check could be removed. Part of revision D100179 Reviewed By: nikic
-
Keith Smiley authored
This reverts commit f0cf544d. Just a small change to fix: ``` /home/buildbot/as-builder-4/llvm-clang-x86_64-expensive-checks-ubuntu/llvm-project/llvm/lib/Support/VirtualFileSystem.cpp: In static member function ‘static llvm::ErrorOr<std::unique_ptr<llvm::vfs::File> > llvm::vfs::File::getWithPath(llvm::ErrorOr<std::unique_ptr<llvm::vfs::File> >, const llvm::Twine&)’: /home/buildbot/as-builder-4/llvm-clang-x86_64-expensive-checks-ubuntu/llvm-project/llvm/lib/Support/VirtualFileSystem.cpp:2084:10: error: could not convert ‘F’ from ‘std::unique_ptr<llvm::vfs::File>’ to ‘llvm::ErrorOr<std::unique_ptr<llvm::vfs::File> >’ return F; ^ ``` Differential Revision: https://reviews.llvm.org/D113832
-
Mehdi Amini authored
Mostly replace uses of `container.size()` with `container.empty()` in conditionals when applicable.
-
Mogball authored
-