- May 03, 2021
-
-
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
-
Craig Topper authored
[RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. This patch makes the builtin operand order match the C operand order for all intrinsics. With this we can use clang_builtin_alias for all overloaded intrinsics. This should further reduce the test time for vector intrinsics. Differential Revision: https://reviews.llvm.org/D101700
-
Christopher Di Bella authored
`test/std/ranges/range.access/range.access.cbegin/incomplete.compile.verify.cpp` was accidentally copied (and apparently the author either forgot to delete it or forgot to commit the deletion). TEST=`ninja cxx && ninja check-cxx` locally
-
Nikita Popov authored
We currently can't determine any exit counts here, because there is no "controlling exit".
-
- May 02, 2021
-
-
William S. Moses authored
1) Canonicalize IndexCast(SExt(x)) => IndexCast(x) 2) Provide constant folds of sign_extend and truncate Differential Revision: https://reviews.llvm.org/D101714
-
Mark de Wever authored
- Use the proper review for 'Fix integral conformance'. - Mark 'Fix integral conformance' as completed. - Move some tasks to in progress.
-
Juneyoung Lee authored
This is a patch that folds select of select to salvage some optimizations after select -> and/or folding is disabled. ``` select (select a, true, b), c, false -> select a, c, false select c, (select a, true, b), false -> select c, a, false if c implies that b is false (isImpliedCondition). ``` https://alive2.llvm.org/ce/z/ANatjt, https://alive2.llvm.org/ce/z/rv8zTB ``` sel (sel c, a, false), true, (sel !c, b, false) -> sel c, a, b sel (sel !c, a, false), true, (sel c, b, false) -> sel c, b, a ``` https://alive2.llvm.org/ce/z/U2kp-t, https://alive2.llvm.org/ce/z/bc88EE See D101191 Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D101375
-
Juneyoung Lee authored
-
William S. Moses authored
Differential Revision: https://reviews.llvm.org/D101712
-
Christopher Di Bella authored
C++20 revised the definition of what it means to be an iterator. While all _Cpp17InputIterators_ satisfy `std::input_iterator`, the reverse isn't true. D100271 introduces a new test adaptor to accommodate this new definition (`cpp20_input_iterator`). In order to help readers immediately distinguish which input iterator adaptor is _Cpp17InputIterator_, the current `input_iterator` adaptor has been prefixed with `cpp17_`. Differential Revision: https://reviews.llvm.org/D101242
-