- May 03, 2021
-
-
Saurabh Jha authored
In matrix type casts, we were doing bitcast when the matrices had the same size. This was incorrect and this patch fixes that. Also added some new CodeGen tests for signed <-> usigned conversions Reviewed By: fhahn Differential Revision: https://reviews.llvm.org/D101754
-
Alexey Bataev authored
This reverts commit b5f64768 to fix a compiler crash revealed by buildbots.
-
Alexey Bataev authored
Need to check if target allows/supports masked gathers before trying to estimate its cost, otherwise we may fail to vectorize some of the patterns because of too pessimistic cost model. Part of D57059. Differential Revision: https://reviews.llvm.org/D101297
-
Konstantin Zhuravlyov authored
-
Florian Hahn authored
As we gradually move more elements of LV to VPlan, we are trying to reduce the number of places that still has to check IR of the original loop. This patch adjusts the code to fix cross iteration phis to get the PHIs to fix directly from the VPlan that is executed. We still need the original PHI to check for first-order recurrences, but we can get rid of that once we model that explicitly in VPlan as well. Reviewed By: Ayal Differential Revision: https://reviews.llvm.org/D99293
-
LLVM GN Syncbot authored
-
Abhina Sreeskantharajan authored
This patch adds the basic functions needed for controlling auto conversion on z/OS. Auto conversion is enabled on untagged input file to ASCII by making the assumption that all untagged files are EBCDIC encoded. Output files are auto converted to EBCDIC IBM-1047. This change also enables conversion for stdin/stdout/stderr. For more information on how fcntl controls codepage https://www.ibm.com/docs/en/zos/2.4.0?topic=descriptions-fcntl-bpx1fct-bpx4fct-control-open-file-descriptors Reviewed By: anirudhp Differential Revision: https://reviews.llvm.org/D100483
-
Sanjay Patel authored
If we don't demand high bits, then we also don't care about those high bits of a left-shift operand regardless of shift amount. I noticed the sext/trunc pattern in a motivating example. It seems like there should be a low-bits with right-shift sibling, but I haven't looked at that yet. https://alive2.llvm.org/ce/z/JuS6jc https://rise4fun.com/Alive/Trm (not sure how to use 'width' with Alive1) https://alive2.llvm.org/ce/z/gRadbF Differential Revision: https://reviews.llvm.org/D101489
-
Nathan Sidwell authored
fix Trailling -> Trailing (two ll-> one l) Differential Revision: https://reviews.llvm.org/D101753
-
Aaron Puchert authored
We weren't modifying the lock set when intersecting with one coming from a break-terminated block. This is inconsistent, since break isn't a back edge, and it leads to false negatives with scoped locks. We usually don't warn for those when joining locksets aren't the same, we just silently remove locks that are not in the intersection. But not warning and not removing them isn't right. Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D101202
-
Aaron Puchert authored
The motivation here is to make it available in the base class whether a fact is managed or not. That would have meant three flags on the base class, so I had a look whether we really have 8 possible combinations. It turns out we don't: asserted and declared are obviously mutually exclusive. Managed facts are only created when we acquire a capability through a scoped capability. Adopting an asserted or declared lock will not (in fact can not, because Facts are immutable) make them managed. We probably don't want to allow adopting an asserted lock (because then the function should probably have a release attribute, and then the assertion is pointless), but we might at some point decide to replace a declared fact on adoption. Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D100801
-
Hans Wennborg authored
MSVC has added some new flags. Although they're not supported, this adds parsing support for them so clang-cl doesn't treat them as filenames. Except for /fsanitize=address which we do support. (clang-cl already exposes the -fsanitize= option, but this allows using the MSVC-spelling with a slash.) Differential revision: https://reviews.llvm.org/D101439
-
Nathan Sidwell authored
this hack is for a now-unsupported version of libstdc++ Differential Revision: https://reviews.llvm.org/D101392
-
Muhammad Omair Javaid authored
This adds support for reading AArch64 Pointer Authentication regset from elf-core file. Also includes a test-case for the same. Furthermore there is also a slight refactoring of RegisterContextPOSIXCore_arm64 members and constructor. linux-aarch64-pac.core file is generated using lldb/test/API/functionalities/postmortem/elf-core/main.c with following clang arguments: -march=armv8.5-a -mbranch-protection=pac-ret+leaf -nostdlib -static -g Reviewed By: DavidSpickett Differential Revision: https://reviews.llvm.org/D99941
-
David Green authored
Similarly to D101096, this makes sure that MMO operands get propagated through from MVE gathers/scatters to the Machine Instructions. This allows extra scheduling freedom, not forcing the instructions to act as scheduling barriers. We create MMO's with an unknown size, specifying that they can load from anywhere in memory, similar to the masked_gather or X86 intrinsics. Differential Revision: https://reviews.llvm.org/D101219
-
Nathan James authored
Use the MaxEditDistance to skip checking candidates we know we'll skip.
-
Fraser Cormack authored
Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D101518
-
Benjamin Kramer authored
Differential Revision: https://reviews.llvm.org/D101535
-
Christian Kühnel authored
as proposed by @FlashSheridan in https://reviews.llvm.org/rG7f9717b922d4
-
Guillaume Chatelet authored
Differential Revision: https://reviews.llvm.org/D101609
-
Sebastian Neubauer authored
SITargetLowering::LowerFormalArguments asserts that none of these features are used for graphics calling conventions, so AnnotateKernelFeatures should not add them. Differential Revision: https://reviews.llvm.org/D101534
-
Diana Picus authored
The number of bytes copied in CopyAndPad should depend on the size of the type being copied, not on its shift value (which in the case of char is 0, leading to no bytes at all being copied). Add unit tests for CharacterMin and CharacterMax, which exercise this code path. Differential Revision: https://reviews.llvm.org/D101355
-
Diana Picus authored
The current code computes the minimum element length based on the `type` used to create the descriptor and uses that as the element length whenever it is greater than 0. This means that the `elem_len` parameter is essentially ignored for any type where we can compute a minimum element length (which includes `CFI_type_char[16|32]_t`), and we may therefore end up with descriptors with a lower element length than expected. This patch fixes the issue by explicitly doing what the standard says, i.e. it uses the given `elem_len` for character types, `CFI_type_struct` and `CFI_type_other`, and ignores it (falls back to the minimum element length) for everything else. Differential Revision: https://reviews.llvm.org/D101659
-
Diana Picus authored
It looks like CFI_type_struct was once used as the last valid CFI_type value, but in the meantime CFI_type_char16_t and CFI_type_char32_t were added, making that assumption no longer true. Luckily, in the meantime we also got a define for CFI_TYPE_LAST, which we can now use to allow CFI_establish and CFI_allocate to work with descriptors of CFI_type_char16_t, CFI_type_char32_t and any other future types. Differential Revision: https://reviews.llvm.org/D101658
-
Nathan Ridge authored
Differential Revision: https://reviews.llvm.org/D100742
-
Pushpinder Singh authored
This enables the runtime tests on amdgpu targets. 10 tests have been marked as XFAIL on amdgcn currently mostly due to missing printf. Reviewed By: protze.joachim Differential Revision: https://reviews.llvm.org/D99656
-
Nathan Ridge authored
Differential Revision: https://reviews.llvm.org/D101740
-
Nathan Ridge authored
-
Nathan Ridge authored
Differential Revision: https://reviews.llvm.org/D101275
-
Nathan Ridge authored
Differential Revision: https://reviews.llvm.org/D101270
-
Reshabh Sharma authored
Add address sanitizer instrumentation support for accesses to global and constant address spaces in AMDGPU. It strictly avoids instrumenting the stack and assumes x86 as the host. Reviewed by: vitalybuka Differential Revision: https://reviews.llvm.org/D99071
-
Konstantin Zhuravlyov authored
This reverts commit 54aad636. Includes fix for note-amd-valid-v3.s test.
-
Sergio Perez Gonzalez authored
Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D101133
-
David Green authored
We create MMO's for the VLDn/VSTn intrinsics in ARMTargetLowering:: getTgtMemIntrinsic, but they do not currently make it ll the way through ISel. This changes that in the various places it needs changing, making sure that the MMO is propagate through to the final instruction. This can help in scheduling, not treating the VLD2/VST2 as a scheduling barrier. Differential Revision: https://reviews.llvm.org/D101096
-
Stelios Ioannou authored
Setting the preffered function alignment to 16 for Cortex A53/A55 improves performance in a wide range of benchmarks. This brings it in line with the Cortex-A53/A55 tuning that is used in GCC (gcc/config/aarch64/aarch64.c). Differential Revision: https://reviews.llvm.org/D101636 Change-Id: I2ce47fe7ab5e3b54f49c89038d8da4e404742de2
-
Craig Topper authored
This allows for a much more efficient encoding for small negative numbers by storing the sign bit first and negating the rest of the bits. This was already being used for OPC_CheckInteger. For every in tree target this affects, the table got smaller. R600GenDAGISel.inc saw the largest reduction of 7K. I did have to add a new opcode for StringIntegers used for register class ids and subregister indices since we don't have the integer value to encode. The enum name is emitted directly into the table. Previously assumed the enum would expand to a positive 7-bit number. We might be able to just shift that right by 1 and assume it is a positive 6 bit number, but that will need more investigation.
-
Craig Topper authored
This shrinks the immediate that isel table needs to emit for these instructions. Hoping this allows me to change OPC_EmitInteger to use a better variable length encoding for representing negative numbers. Similar to what was done a few months ago for OPC_CheckInteger. The alternative encoding uses less bytes for negative numbers, but increases the number of bytes need to encode 64 which was a very common number in the RISCV table due to SEW=64. By using Log2 this becomes 6 and is no longer a problem.
-
Martin Storsjö authored
-
Arthur Eubanks authored
As opposed to going through the Aliasee type. For opaque pointers, we're trying to remove uses of PointerType::getElementType(). Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D101715
-
Florian Hahn authored
This patch introduces a helper to obtain an iterator range for the PHI-like recipes in a block. Reviewed By: Ayal Differential Revision: https://reviews.llvm.org/D100101
-