- Jan 11, 2022
-
-
Simon Pilgrim authored
This will assert the cast is correct instead of returning nullptr
-
James Y Knight authored
-
Jeremy Morse authored
DexUnreachable is a useful tool for specifying that lines shouldn't be stepped on. Right now they have to be placed in the source file; lets allow them to be placed instead in a detached .dex file, by adding on_line and line-range keyword arguments to the command. Differential Revision: https://reviews.llvm.org/D115449
-
Roman Lebedev authored
This file has completely wrong formatting, and modifying it leads to having to fight around that. every time. This is a pure reformatting, there are *NO* other changes here.
-
Johannes Doerfert authored
If we look at potentially interfering accesses we need to ensure the "IsExact" flag is set appropriately. Accesses that have an "unknown" size or offset cannot be exact matches and we missed to flag that. Error and test reported by Serguei N. Dmitriev.
-
- Jan 10, 2022
-
-
Simon Pilgrim authored
All paths (that actually do anything) require a successful dyn_cast<CallBase> - so just earlyout if the cast fails Fixes static analyzer nullptr deference warning
-
Simon Pilgrim authored
-
Pavel Labath authored
Previously we would persist the flags indicating whether the remote side supports a particular feature across reconnects, which is obviously not a good idea. I implement the clearing by nuking (its the only way to be sure :) the entire GDBRemoteCommunication object in the disconnect operation and creating a new one upon connection. This allows us to maintain a nice invariant that the GDBRemoteCommunication object (which is now a pointer) exists only if it is connected. The downside to that is that a lot of functions now needs to check the validity of the pointer instead of blindly accessing the object. The process communication does not suffer from the same issue because we always destroy the entire Process object for a relaunch. Differential Revision: https://reviews.llvm.org/D116539
-
Nicolas Vasilache authored
This revision fixes SubviewOp, InsertSliceOp, ExtractSliceOp construction during bufferization where not all offset/size/stride operands were properly specified. A test that exhibited problematic behaviors related to incorrect memref casts is introduced. Init tensor optimization is disabled in teh testing func bufferize pass. Differential Revision: https://reviews.llvm.org/D116899
-
Nikita Popov authored
-
Yitzhak Mandelbaum authored
Currently, the transfer function returns a new lattice element, which forces an unnecessary copy on processing each CFG statement. Differential Revision: https://reviews.llvm.org/D116834
-
Matthias Springer authored
These should have been updated as part of D116742. Differential Revision: https://reviews.llvm.org/D116937
-
Nicolas Vasilache authored
init_tensor elimination is arguably a pre-optimization that should be separated from comprehensive bufferization. In any case it is still experimental and easily results in wrong IR with violated SSA def-use orderings. Isolate the optimization behind a flag, separate the test cases and add a test case that would results in wrong IR. Differential Revision: https://reviews.llvm.org/D116936
-
Haojian Wu authored
This breaks a clang-tidy check, needs to investigate and fix. Revert them to bring the buildbot back. This reverts commit 55d96ac3 and 37ec65e1
-
David Sherwood authored
The code in VPWidenCanonicalIVRecipe::execute only worked for fixed-width vectors due to the way we generate the values per lane. This patch changes the code to use a combination of vector splats and step vectors to get the same result. This then works for both fixed-width and scalable vectors. Tests that exercise this code path for scalable vectors have been added here: Transforms/LoopVectorize/AArch64/sve-tail-folding.ll Differential Revision: https://reviews.llvm.org/D113180
-
Nuno Lopes authored
SROA has 3 data-structures where it stores sets of instructions that should be deleted: - DeadUsers -> instructions that are UB or have no users - DeadOperands -> instructions that are UB or operands of useless phis - DeadInsts -> "dead" instructions, including loads of uninitialized memory with users The first 2 sets can be RAUW with poison instead of undef. No brainer as UB can be replaced with poison, and for instructions with no users RAUW is a NOP. The 3rd case cannot be currently replaced with poison because the set mixes the loads of uninit memory. I leave that alone for now. Another case where we can use poison is in the construction of vectors from multiple loads. The base vector for the first insertelement is now poison as it doesn't matter as it is fully overwritten by inserts. Differential Revision: https://reviews.llvm.org/D116887
-
Nikita Popov authored
Possibly this is sufficient to fix PR53089.
-
Louis Dionne authored
In particular, this removes the need for adding a ad-hoc `operator==` to forward_iterator. Differential Revision: https://reviews.llvm.org/D116614
-
Serge Guelton authored
Using and std::map<SmallString, SmallString> for target dependent attributes is inefficient: it makes its constructor slightly heavier, and involves extra allocation for each new string attribute. Storing the attribute key/value as strings implies extra allocation/copy step. Use a sorted vector instead. Given the low number of attributes generally involved, this is cheaper, as showcased by https://llvm-compile-time-tracker.com/compare.php?from=5de322295f4ade692dc4f1823ae4450ad3c48af2&to=05bc480bf641a9e3b466619af43a2d123ee3f71d&stat=instructions Differential Revision: https://reviews.llvm.org/D116599
-
Nikita Popov authored
We need to explicitly visit a number of types, as these are no longer reachable through the pointer type if opaque pointers are enabled. This is similar to ValueEnumerator changes that have been done previously.
-
Alex Xu (Hello71) authored
This causes modern glibc to unset math_errhandling MATH_ERRNO. gcc 12 also sets some other macros, but most of them are associated with flags ignored by clang, so without library examples, it is difficult to determine whether they should be set. I think setting this one macro is OK for now.
-
Louis Dionne authored
-
Matthias Springer authored
Differential Revision: https://reviews.llvm.org/D116932
-
Louis Dionne authored
-
Simon Pilgrim authored
Refresh based off recent improvements to codegen and the helper script from D103695
-
Louis Dionne authored
The documentation CI job is very cheap, so we can afford to keep it around even with reduced capacity. This commit fixes the documentation (which had an invalid reference in it) and re-enables that CI step. Differential Revision: https://reviews.llvm.org/D116897
-
Matthias Springer authored
Differential Revision: https://reviews.llvm.org/D116892
-
Haojian Wu authored
Based on https://reviews.llvm.org/D116919. Fixes https://github.com/clangd/clangd/issues/121 Differential Revision: https://reviews.llvm.org/D116921
-
Martin Storsjö authored
This implements the parsing of the highly PE-COFF specific option in ConfigManager.cpp, setting Optional<> values in COFFConfig, which then are used in COFFObjcopy. This should fix https://github.com/mstorsjo/llvm-mingw/issues/239. Differential Revision: https://reviews.llvm.org/D116556
-
Tim Northover authored
-
Petar Avramovic authored
Use G_MERGE_VALUES and G_UNMERGE_VALUES on vector elements instead of G_EXTRACT and G_INSERT when doing custom legalization for G_EXTRACT_VECTOR_ELT and G_INSERT_VECTOR_ELT. With this approach legalization artifact combiner gets direct access to all vector elements. Differential Revision: https://reviews.llvm.org/D116115
-
Florian Hahn authored
This patch reduces the number of times IRBuilders need to be constructed in SROA.cpp by passing existing ones by reference to the appropriate places.
-
Haojian Wu authored
Differential Revision: https://reviews.llvm.org/D116919
-
Haojian Wu authored
Fixes https://github.com/clangd/clangd/issues/502 Differential Revision: https://reviews.llvm.org/D116922
-
Alex Zinenko authored
-
Florian Hahn authored
9345ab3a updated generateOverflowCheck to skip creating checks that always evaluate to false. This in turn means that we only need to create TruncTripCount if it is actually used. Sink the TruncTripCount creating into ComputeEndCheck, so it is only created when there's an actual check.
-
Jeremy Morse authored
This patch adds a "DexCommandLine" command, allowing dexter tests to specify what command line options the test should be started with. I've also plumbed it through into the debuggers. This eases the matter of pointing Dexter at larger tests, or controlling different paths through a single binary from a Dexter test. Differential Revision: https://reviews.llvm.org/D115330
-
Mubashar Ahmad authored
An option has been added to Clang to enable or disable the PMU v3.4 architecture extension. Differential Revision: https://reviews.llvm.org/D116748
-
Sam McCall authored
A function call `unresolved()` in C will generate an implicit declaration of the missing function and warn `ext_implicit_function_decl` or so. (Compared to in C++ where we get `err_undeclared_var_use`). We want to try to resolve these names. Unfortunately typo correction is disabled in sema for performance reasons unless this warning is promoted to error. (We need typo correction for include-fixer.) It's not clear to me where a switch to force this correction on should go, include-fixer is kind of a hack. So hack more by telling sema we're promoting them to error. Fixes https://github.com/clangd/clangd/issues/937 Differential Revision: https://reviews.llvm.org/D115490
-
Alex Zinenko authored
During iterative inlining of the functions in a multi-step call chain, the inliner could add the same call operation several times to the worklist, which led to use-after-free when this op was considered more than once. Closes #52887. Reviewed By: wsmoses Differential Revision: https://reviews.llvm.org/D116820
-