- Mar 24, 2023
-
-
Simon Pilgrim authored
-
Alex Brachet authored
Differential Revision: https://reviews.llvm.org/D146740
-
Nicolas Vasilache authored
Vector dialect patterns have grown enormously in the past year to a point where they are now impenetrable. Start reorganizing them towards finer-grained control. Differential Revision: https://reviews.llvm.org/D146736
-
Julian Lettner authored
My recent change [1] extended the external-swift-debugging.cpp test, but didn't account for PAC under which function pointers aren't trivially comparable. We could use `ptrauth_strip()`, but for the test it's easier to just the symbol name. [1] https://reviews.llvm.org/D146264
-
Nicolas Vasilache authored
Differential Revision: https://reviews.llvm.org/D146742
-
Momchil Velikov authored
Reviewed By: mkazantsev Differential Revision: https://reviews.llvm.org/D145705
-
Simon Pilgrim authored
We don't need an explicit AND mask, we can use KnownBits to determine if each element has (the same) single non-zero bit and shift that into the msb/signbit for MOVMSK to access directly.
-
Paul Kirth authored
When fixing the test earlier, we missed the JSON case for NaN and INF, so handle those the same as for non-JSON, by creating the string dynamically. Reviewed By: abhina.sreeskantharajan Differential Revision: https://reviews.llvm.org/D146739
-
Emilia Dreamer authored
The trailing return type arrow checker verifies that a declaration is being parsed, however, this isn't true when inside of macros. It turns out the existence of the auto keyword is enough to make sure that we're dealing with a trailing return type, and whether we're in a declaration doesn't matter. Fixes https://github.com/llvm/llvm-project/issues/47664 Reviewed By: HazardyKnusperkeks, owenpan Differential Revision: https://reviews.llvm.org/D141811
-
Momchil Velikov authored
Reviewed By: mkazantsev Differential Revision: https://reviews.llvm.org/D143892
-
Mike Hommey authored
Building with -DLIBCXX_ENABLE_THREADS=OFF -DLIBCXXABI_ENABLE_THREADS=OFF (like e.g. for wasm) fails after D146228 because of a misplaced std namespace begin/end. Reviewed By: philnik, #libc Differential Revision: https://reviews.llvm.org/D146682
-
Hristo Hristov authored
Implemented [[ https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2711r1.html | P2711R1 ]] for existing views. (`join_with_view` is not yet implemented) Reviewed By: #libc, philnik Differential Revision: https://reviews.llvm.org/D144822
-
Viktoriia Bakalova authored
-
Fangrui Song authored
Close #61322 Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D146603
-
Alex Brachet authored
Differential Revision: https://reviews.llvm.org/D146738
-
Michael Jones authored
The printf and fprintf implementations use our internal implementation to improve performance when it's available, but this patch enables using the public FILE API for overlay mode. Reviewed By: sivachandra, lntue Differential Revision: https://reviews.llvm.org/D146001
-
Jeff Byrnes authored
ArgPromotion currently produces phantom / dead loads. A good example of this is store-into-inself.ll. First, ArgPromo finds the promotable argument %p in @l. Then it inserts a load of %p in the caller, and passes instead the loaded value / transforms the function body. PromoteMem2Reg is able to optimize out the entire function body, resulting in an unused argument. In a subsequent ArgPromotion pass, it removes the dead argument, resulting in a dead load in the caller. These dead loads may reduce effectiveness of other transformations (e.g. SimplifyCFG, MergedLoadStoreMotion). This patch removes loads and geps that are made dead in the caller after removal of dead args. Differential Revision: https://reviews.llvm.org/D146327
-
Renaud-K authored
Differential revision: https://reviews.llvm.org/D146594
-
Nikita Popov authored
We should not call mdconst::extract, unless we know that the metadata in question is ConstantAsMetadata. For now we consider all other metadata as equal. The noalias test shows that this is not correct, but at least it doesn't crash anymore.
-
Joseph Huber authored
Summary: The `exit` function in NVPTX has no intrinsic, but the assembly requires a semicolon in the ptx, otherwise it will fail.
-
Archibald Elliott authored
-
Joseph Huber authored
Memory fences are not handled by the NVPTX backend. We need to replace them with a memory barrier intrinsic function. This doesn't include the ordering, but should perform the necessary functionality, albeit slower. Reviewed By: tianshilei1992 Differential Revision: https://reviews.llvm.org/D146725
-
Viktoriia Bakalova authored
Differential Revision: https://reviews.llvm.org/D144976
-
Teresa Johnson authored
Switch from std::sort to std::stable_sort when sorting callsites to avoid non-determinism when the comparisons are equal. This showed up in internal testing of fe27495b.
-
Simon Pilgrim authored
In most cases the NOT will still be scalarized, but it allows us to perform the CMP(X,0) combines inside combineCMP()
-
Ding Xiang Fei authored
I forgot to git add this test when committing the change.
-
- Mar 23, 2023
-
-
Philip Reames authored
-
Felipe de Azevedo Piovezan authored
For tests marked as "USE_SYSTEM_STDLIB", the expectation is that the system's standard library should be used. However, the implementation of this flag is such that we simply don't pass _any_ libcxxx-related flags to Clang; in turn, Clang will use its defaults. For a Clang/Libcxx pair compiled together, Clang defaults to: 1. The headers of the sibling libcxx. 2. The libraries of the system. This mismatch is actually a bug in the driver; once fixed, however, (2) would point to the sibling libcxx as well, which is _not_ what test authors intended with the USE_SYSTEM_STDLIB flag. As such, this patch explicitly sets a path to the system's libraries. This change is done only in Apple platforms so that we can test this works in this case first. Differential Revision: https://reviews.llvm.org/D146714
-
Jan Sjodin authored
This patch adds the OffloadEntriesInfoManager to the OpenMPIRBuilder, and allows the OffloadEntriesInfoManager to access the Configuration in the OpenMPIRBuilder. With the shared Config there is no risk for inconsistencies, and there is no longer the need for clang to have a separate OffloadEntriesInfoManager. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D146549
-
Job Noorman authored
-
Philip Reames authored
We can simply push them down the existing call slowpath with some minor changes to how we compute the size argument.
-
Kirill Stoimenov authored
[HWASAN] Disable unexpected_format_specifier_test because HWASAN doesn't provide a printf interceptor Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D146647
-
Archibald Elliott authored
I noticed, when examining the generated Asm Matcher table, that some of these custom immediate operands are missing, and so we are not parsing some hint aliases into the correct MCInst. Where this becomes apparent is when you parse e.g. `hint #7` into an MCInst - without these cases, it becomes the MCInst `(HINT 17)`, which will always be printed as `hint #17`. With these cases, it becomes the MCInst `XPACLRI`, which will be printed as `xpaclri` with pauth, or `hint #17` without, matching how `xpaclri` is parsed. We only handle some specific hint aliases in this manner, usually where these hints have specific effects that need to be modelled for accurate code-generation. Otherwise, we just use the normal `InstAlias` system to have the aliases parsed into a `(HINT N)` MCInst. Differential Revision: https://reviews.llvm.org/D146630
-
Corentin Jabot authored
Fix a regresion introduced by D124351. Attributes of lambda call operator were evaluated in the context of the closure object type rather than its operator, causing an assertion failure. This was because we temporarily switch to the class lambda to produce the mangling of the lambda, but we stayed in that context too long. Reviewed By: eandrews, aaron.ballman Differential Revision: https://reviews.llvm.org/D146535
-
Philip Reames authored
This adds support for scalable vector types - at least far enough to get basic load and store cases working. It turns out that load/store without origin tracking already worked; I apparently got that working with one of the pre patches to use TypeSize utilities and didn't notice. The code changes here are required to enable origin tracking. For origin tracking, a 4 byte value - the origin - is broadcast into a shadow region whose size exactly matches the type being accessed. This origin is only written if the shadow value is non-zero. The details of how shadow is computed from the original value being stored aren't relevant for this patch. The code changes involve two related primitives. First, we need to be able to perform that broadcast into a scalable sized memory region. This requires the use of a loop, and appropriate bound. The fixed size case optimizes with larger stores and alignment; I did not bother with that for the scalable case for now. We can optimize this codepath later if desired. Second, we need a way to test if the shadow is zero. The mechanism for this in the code is to convert the shadow value into a scalar, and then zero check that. There's an assumption that this scalar is zero exactly when all elements of the shadow value are zero. As a result, we use an OR reduction on the scalable vector. This is analogous to how e.g. an array is handled. I landed a bunch of cleanup changes to remove other direct uses of the scalar conversion to convince myself there were no other undocumented invariants. Differential Revision: https://reviews.llvm.org/D146157
-
khei4 authored
Differential Revision: https://reviews.llvm.org/D144445 Reviewed By: nikic fix: wrong arrow
-
khei4 authored
Differential Revision: https://reviews.llvm.org/D145355 tweak: test
-
Doru Bercea authored
This patch fixes an issue whereby a constexpr class member which is mapped to the device is being optimized out thus leading to a runtime error. Patch: https://reviews.llvm.org/D146552
-
Ye Luo authored
Fix regression introduced by https://reviews.llvm.org/D123446 Reviewed By: tianshilei1992 Differential Revision: https://reviews.llvm.org/D146689
-
David Spickett authored
SVE and MTE both require a CPU with that feature before you can use the other options, but we only added the "max" cpu when SVE was enabled too.
-