- Jun 08, 2022
-
-
Vince Bridgers authored
A crash was seen in CastValueChecker due to a null pointer dereference. The fix uses QualType::getAsString to avoid the null dereference when a CXXRecordDecl cannot be obtained. A small reproducer is added, and cast value notes LITs are updated for the new debug messages. Reviewed By: steakhal Differential Revision: https://reviews.llvm.org/D127105
-
Sanjay Patel authored
If we don't demand high bits (zeros) and it is valid to pre-shift a constant: (C2 << X) >> C1 --> (C2 >> C1) << X https://alive2.llvm.org/ce/z/P3dWDW There are a variety of related patterns, but I haven't found a single solution that gets all of the motivating examples - so pulling this piece out of D126617 along with more tests. We should also handle the case where we shift-right followed by shift-left, but I'll make that a follow-on patch assuming this one is ok. It seems likely that we would want to add this to the SDAG version of the code too to keep it on par with IR. Differential Revision: https://reviews.llvm.org/D127122
-
Sanjay Patel authored
D127122
-
Groverkss authored
This patch fixes a bug in PresburgeRelation::subtract that made it process the inequality at index 0, multiple times. This was caused by allocating memory instead of reserving memory in llvm::SmallVector. Reviewed By: arjunp Differential Revision: https://reviews.llvm.org/D127228
-
Alan Zhao authored
After D126425 was submitted, hans@ observed that MSVC's ml.exe doesn't care about the file's extension at all. Now, we check if the file exists to determine whether an input filename is a valid assembly file. To keep things consistent with clang-cl and lld-link, llvm-ml will treat everything that's not a flag as a filename. Reviewed By: hans Differential Revision: https://reviews.llvm.org/D126931
-
Mark de Wever authored
After moving the std::to_chars base 10 implementation from the dylib to the header the integral overloads of std::to_chars are available on all platforms. Remove the _LIBCPP_AVAILABILITY_TO_CHARS availability macro and update the tests. Depends on D125704 Reviewed By: ldionne, #libc Differential Revision: https://reviews.llvm.org/D125745
-
Philip Reames authored
Once extended with a case which requires duplication, will serve as test for crash being fixed in D127131.
-
Mark de Wever authored
- Updates the image to use Ubuntu Jammy. - Installs GCC-12 as preparation to migrate to that GCC version. Reviewed By: ldionne, #libc, jloser Differential Revision: https://reviews.llvm.org/D126666
-
Mark de Wever authored
This was noticed in the review of D125704. In that commit only the new table has been adapted. This adapts the existing tables. Note since libc++'s charconv is backported to C++11 it's not possible to use inline constexpr variables. The were introduced in C++17. Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D126887
-
David Penry authored
Just a few spelling mistakes and missing newlines Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D127162
-
Benjamin Kramer authored
parseBlock may decide to leave it unchanged. Found by msan.
-
Joseph Huber authored
When we build the libomptarget device runtime library targeting bitcode, we need special care to make sure that certain functions are not optimized out. This is because we manually internalize and optimize these definitions, ignoring their standard linkage semantics. When we build with the static library, we can maintain these semantics and we do not need these to be kept-alive. Furthermore, if they are kept-alive it prevents them from being removed during LTO. This prevents us from completely internalizing `IsSPMDMode` and removing several other functions. This patch removes these for the static library target by using a macro definition to enable them. Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D126701
-
- Jun 07, 2022
-
-
Simon Pilgrim authored
[DAG] combineShuffleOfSplatVal - fold shuffle(splat,undef) -> splat, iff the splat contains no UNDEF elements As noticed on D127115 - we were missing this fold, instead just having the shuffle(shuffle(x,undef,splatmask),undef) fold. We should be able to merge these into one using SelectionDAG::isSplatValue, but we'll need to match the shuffle's undef handling first. This also exposed an issue in SelectionDAG::isSplatValue which was incorrectly propagating the undef mask across a bitcast (it was trying to just bail with a APInt::isSubsetOf if it found any undefs but that was actually the wrong way around so didn't fire for partial undef cases).
-
Muhammad Omair Javaid authored
This patch remove XFAIL decorator from tests which as passing on AArch64 Windows. This is tested on surface pro x using tot llvm and clang 14.0.3 as compiler with visual studio 2019 x86_arm64 environment.
-
Muhammad Omair Javaid authored
This patch adds a minor fix in lldbtest.py TestBase.generateSource function. Generated Python source with directory paths was not being escaped properly. This fix makes sure we treat dir path as raw string.
-
Craig Topper authored
If we look through a truncate in matchLinearIVUser, it's possible we find a sext/zext instruction that didn't come from widening. This will fail the MatchedItCount->getType() == InnerInductionPHI->getType() assertion. Fix this by checking that we did not look through a truncate already. Reviewed By: SjoerdMeijer Differential Revision: https://reviews.llvm.org/D127149
-
Craig Topper authored
Spotted while reading through the code. Reviewed By: SjoerdMeijer Differential Revision: https://reviews.llvm.org/D127146
-
Craig Topper authored
i64 indices aren't supported on Zve32*. Scalarize gathers to prevent generating illegal instructions. Since InstCombine will aggressively canonicalize GEP indices to pointer size, we're pretty much always going to have an i64 index. Trying to predict when SelectionDAG will find a smaller index from the TTI hook used by the ScalarizeMaskedMemIntrinPass seems fragile. To optimize this we probably need an IR pass to rewrite it earlier. Test RUN lines have also been added to make sure the strided load/store optimization still works. Reviewed By: reames Differential Revision: https://reviews.llvm.org/D127179
-
Alexey Bataev authored
nodes, NFC.
-
LLVM GN Syncbot authored
-
David Truby authored
This patch corrects some diagnostics for the SVE sizeless vector operators, including correctly diagnosing when the vectors are different sizes. Differential Revision: https://reviews.llvm.org/D126377
-
Benjamin Kramer authored
Found by msan
-
Matt Arsenault authored
Ideally reductions would never produce invalid IR, and we shouldn't regress on cases that already avoid doing so.
-
Matt Arsenault authored
The intention is that these should never have undef operands. It turns out the restriction the verifier enforces is too lax. The verifier enforces that registers without a register class cannot be undef, but it's valid to use a register with a register class and type. The verifier needs to change to be based on the opcode.
-
Matt Arsenault authored
Try to delete implicit uses, and add undef flags to explicit ones.
-
Jay Foad authored
Differential Revision: https://reviews.llvm.org/D127117
-
Matt Arsenault authored
MIR support is totally unusable for AMDGPU without this, since the set of reserved registers is set from fields here. Add a clone method to MachineFunctionInfo. This is a subtle variant of the copy constructor that is required if there are any MIR constructs that use pointers. Specifically, at minimum fields that reference MachineBasicBlocks or the MachineFunction need to be adjusted to the values in the new function.
-
Matt Arsenault authored
-
Louis Dionne authored
-
Louis Dionne authored
-
Matt Arsenault authored
-
Matt Arsenault authored
Use the query that doesn't assert if TracksLiveness isn't set, which needs to always be available. We also need to start printing liveins regardless of TracksLiveness.
-
Matt Arsenault authored
-
Guillaume Chatelet authored
I can't remove the function just yet as it is used in the generated .inc files. I would also like to provide a way to compare alignment with TypeSize since it came up a few times. Differential Revision: https://reviews.llvm.org/D126910
-
Simon Pilgrim authored
First step towards enabling shuffle combining starting from VSELECT/BLENDV nodes - this should eventually help improve the codegen reported at Issue #54819
-
Simon Pilgrim authored
-
Pengxuan Zheng authored
MSVC defines _KERNEL_MODE when /kernel is passed. Also, /kernel disables RTTI and C++ exception handling. https://docs.microsoft.com/en-us/cpp/build/reference/kernel-create-kernel-mode-binary?view=msvc-170 Reviewed By: thakis Differential Revision: https://reviews.llvm.org/D126719
-
David Green authored
The MVE shuffle costing for VREV instructions was making incorrect assumptions as to legalized vector types remaining as vectors. Add a quick check to ensure they are indeed vectors before attempting to get the number of elements.
-
David Green authored
-
Simon Pilgrim authored
-