- May 25, 2023
-
-
Tobias Hieta authored
-
Tobias Hieta authored
This is an ongoing series of commits that are reformatting our Python code. Reformatting is done with `black`. If you end up having problems merging this commit because you have made changes to a python file, the best way to handle that is to run git checkout --ours <yourfile> and then reformat it with black. If you run into any problems, post to discourse about it and we will try to help. RFC Thread below: https://discourse.llvm.org/t/rfc-document-and-standardize-python-code-style Reviewed By: #libc, kwk, Mordante Differential Revision: https://reviews.llvm.org/D150763
-
Nikita Popov authored
This reverts commit b6655137. This has exposed a pre-existing miscompile, reported in https://reviews.llvm.org/D150769#4370467.
-
Douglas Yung authored
This reverts commit ee6b08e9. One of the added tests warn-unsafe-buffer-usage-multi-decl-warnings.cpp does not seem to be deterministic, and seems to be especially problematic on Windows. Failures of this one test on llvm-clang-x86_64-sie-win: - https://lab.llvm.org/buildbot/#/builders/216/builds/21758 - https://lab.llvm.org/buildbot/#/builders/216/builds/21761 - https://lab.llvm.org/buildbot/#/builders/216/builds/21762 - https://lab.llvm.org/buildbot/#/builders/216/builds/21765 - https://lab.llvm.org/buildbot/#/builders/216/builds/21770 - https://lab.llvm.org/buildbot/#/builders/216/builds/21771 - https://lab.llvm.org/buildbot/#/builders/216/builds/21773 - https://lab.llvm.org/buildbot/#/builders/216/builds/21776 - https://lab.llvm.org/buildbot/#/builders/216/builds/21777 - https://lab.llvm.org/buildbot/#/builders/216/builds/21778 - https://lab.llvm.org/buildbot/#/builders/216/builds/21779 Other random bot failures: - https://lab.llvm.org/buildbot/#/builders/65/builds/9821 - https://lab.llvm.org/buildbot/#/builders/65/builds/9822 - https://lab.llvm.org/buildbot/#/builders/65/builds/9824 - https://lab.llvm.org/buildbot/#/builders/119/builds/13440 - https://lab.llvm.org/buildbot/#/builders/119/builds/13442 - https://lab.llvm.org/buildbot/#/builders/119/builds/13444 - https://lab.llvm.org/buildbot/#/builders/119/builds/13445 - https://lab.llvm.org/buildbot/#/builders/60/builds/12156 - https://lab.llvm.org/buildbot/#/builders/60/builds/12157 - https://lab.llvm.org/buildbot/#/builders/60/builds/12160
-
Alexandros Lamprineas authored
To do so we have to tweak the cost model such that specialization does not trigger excessively. Differential Revision: https://reviews.llvm.org/D150649
-
Martin Braenne authored
This patch changes the way `Environment::ReturnLoc` is set: Whereas previously it was set by the caller, it is now set by the callee (obviously, as we otherwise would not be able to return references). The patch also introduces `Environment::ReturnVal`, which is used for non-reference-type return values. This allows these to be handled with the correct value category semantics; see also https://discourse.llvm.org/t/70086, which describes the ongoing migration to strict value category semantics. Depends On D150776 Reviewed By: ymandel, xazax.hun Differential Revision: https://reviews.llvm.org/D151194
-
Luke Lau authored
Even though we only need to write to the bottom NumElts - Rotation elements for the vslidedown.vi, we can save an extra vsetivli toggle if we just keep the wide VL. (I may be missing something here: is there a reason why we want to explicitly keep the vslidedown narrow?) Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D151390
-
sgokhale authored
This is an attempt to reland D42600 and enabling this optimisation by default. This also resolves the issue pointed out in the context of PGO build. Differential Revision: https://reviews.llvm.org/D42600
-
Simon Tatham authored
Function pointers are checked by loading a prefix structure from just before the function's entry point. However, on Arm, the function pointer is not always exactly equal to the address of the entry point, because Thumb function pointers have the low bit set to tell the BX instruction to enter them in Thumb state. So the generated code loads from an odd address and suffers an alignment fault. Fixed by clearing the low bit of the function pointer before subtracting 8. Differential Revision: https://reviews.llvm.org/D151308
-
Nikita Popov authored
Implement precise nuw/nsw support in the KnownBits implementation, replacing the rather crude handling in ValueTracking. Differential Revision: https://reviews.llvm.org/D151208
-
John Demme authored
`MemRefMemorySlot.cpp` had two unused includes without a cmake dependency on the dialects they were in. Led to build failures.
-
Nikita Popov authored
This exposed an issue in SCEVExpander/LCSSA, which has been fixed in D150681. ----- As far as I understand, the IsAvailableOnEntry() function basically implements the same functionality as the properlyDominates() block disposition. The primary difference (apart from a weaker implementation) seems to be in this comment at the top: // Checks if the SCEV S is available at BB. S is considered available at BB // if S can be materialized at BB without introducing a fault. However, I don't really understand why there would be such a requirement. It's my understanding that SCEV explicitly does not care about trapping udiv instructions itself, and it's the job of SCEVExpander's isSafeToExpand() to make sure these don't get expanded if they may trap. Differential Revision: https://reviews.llvm.org/D149344 -
Kadir Cetinkaya authored
We can get stale source locations from preamble, make sure we don't access those locations without checking first. Fixes https://github.com/clangd/clangd/issues/1636. Differential Revision: https://reviews.llvm.org/D151321
-
Nikita Popov authored
SCEVExpander keeps track of all instructions it inserted. However, it currently misses some phi nodes created during LCSSA construction. Fix this by collecting these into another argument. This also removes the IRBuilder argument, which was added for essentially the same purpose, but only handles the root LCSSA nodes, not those inserted by SSAUpdater. This was reported as a regression on D149344, but the reduced test case also reproduces without it. Differential Revision: https://reviews.llvm.org/D150681
-
Mehdi Amini authored
The bytecode reader didn't handle properly the case where resource names conflicted and were renamed, leading to orphan handles in the IR as well as overwriting the exiting resources. Differential Revision: https://reviews.llvm.org/D151408
-
Mehdi Amini authored
This just simplifies user code. Differential Revision: https://reviews.llvm.org/D151407
-
Mehdi Amini authored
At the moment we accept (in tests) unregistered dialects and in particular: "new_processor_id_and_range"() where there is no `.` separator. We probably will remove support for this from the parser, but for now we're adding compatibility support in the reader. Differential Revision: https://reviews.llvm.org/D151386
-
Matthias Springer authored
There are `clone` overloads that take a shape as a parameter. These overloads are guaranteed to return a ranked shaped type. `TensorType::clone`/`BaseMemRefType::clone` used to always return a `TensorType`/`BaseMemRefType`. The variants that take a shape parameter now return a `RankedTensorType`/`MemRefType`. Better static type information can make extra casts at the call site obsolete. E.g.: ``` {TensorType/RankedTensorType} t; t.clone({1, 2}) // now returns RankedTensorType instead of TensorType ``` Also improve documentation for `clone`. Differential Revision: https://reviews.llvm.org/D150865 -
wangpc authored
The decoding parts are reduplicative, we add a macro to simplify the code. Reviewed By: craig.topper, kito-cheng Differential Revision: https://reviews.llvm.org/D151309
-
Hristo Hristov authored
Removed `inline` specifier for consistency as discussed in D148416 previously. Reviewed By: #libc, Mordante Differential Revision: https://reviews.llvm.org/D151248
-
Martin Braenne authored
This is the most common use case, so it makes sense to have a specific overload for it. Reviewed By: xazax.hun Differential Revision: https://reviews.llvm.org/D151183
-
Matthias Springer authored
Encapsulate all worklist-related functionality in a separate `Worklist` class. This makes the remaining code more readable and allows for custom worklist implementations (e.g., a randomized worklist for fuzzing pattern application: D142447). Differential Revision: https://reviews.llvm.org/D151345
-
Petr Hosek authored
This option was introduced in GNU ld in https://sourceware.org/legacy-ml/binutils/2015-06/msg00086.html and is often used in embedded development. This change implements this option in LLD matching the GNU ld output verbatim. Differential Revision: https://reviews.llvm.org/D150644
-
Matthias Springer authored
Incorrect API usage was detected by `MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS`. Differential Revision: https://reviews.llvm.org/D151302
-
eopXD authored
This commit updates all intrinsics under `clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated` because the new script of `update_llc_test_checks.py` is generating many new lines differently. This NFC commit updates the test cases in a whole batch. Signed-off by: eop Chen <eop.chen@sifive.com>
-
Siva Chandra Reddy authored
Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D151354
-
Siva Chandra Reddy authored
We want to do this so that build system like ninja don't end up running the hermetic and unit tests in parallel. Running in parallel can cause problems for tests which read/write disk files as the hermetic and unit tests can end up stepping on each other. Reviewed By: jhuber6 Differential Revision: https://reviews.llvm.org/D151291
-
Shao-Ce SUN authored
This patch was split from D122918 . Co-Author: @StephenFan @liaolucy @realqhc Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D149743
-
Sergei Barannikov authored
D151036 adds an assertions that prohibits iterating over sub- and super-registers of a null register. This is already the case when iterating over register units of a null register, and worked by accident for sub- and super-registers. Reviewed By: Amir Differential Revision: https://reviews.llvm.org/D151285
-
Siva Chandra Reddy authored
This is largely a cosmetic change done with a few goals: 1. Reduce the conditionals in picking the correct set of tables for the platform. 2. Avoid exposing, for example Linux errors, when building for non-Linux platforms. This also prevents build failures when Linux errors are not defined on the target non-Linux platform. 3. Some "_table" suffixes have been removed to avoid repeated occurance of "table" like "tables/linux_error_table.h". Reviewed By: michaelrj Differential Revision: https://reviews.llvm.org/D151367
-
Aart Bik authored
(1) keep all cuSparse ops on single stream without wait() in right order (2) use more type precise memref types for COO (3) use ToTensor on resulting memref (even though it folds away again) Reviewed By: K-Wu Differential Revision: https://reviews.llvm.org/D151404
-
Md Abdullah Shahneous Bari authored
Add the definitions and necessary verifications of these Ops. Reviewed By: antiagainst Differential Revision: https://reviews.llvm.org/D151074
-
Thurston Dang authored
This has been causing substantial redness in the buildbots e.g., https://lab.llvm.org/buildbot/#/builders/239/builds/2405 which already contained a commit to deflake the test (https://github.com/llvm/llvm-project/commit/3afd1b2c357fb5353084a736d885af60115d6acb). Temporarily disabling the test to prevent this error from hiding other potential problems.
-
Sergei Barannikov authored
D151036 adds an assertions that prohibits iterating over sub- and super-registers of a null register. This is already the case when iterating over register units of a null register, and worked by accident for sub- and super-registers. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D151288
-
Sergei Barannikov authored
D151036 adds an assertions that prohibits iterating over sub- and super-registers of a null register. This is already the case when iterating over register units of a null register, and worked by accident for sub- and super-registers. The only place where the assertion is currently triggering is in CriticalAntiDepBreaker::ScanInstruction. Other places are changed in case new assertions are added and should be harmless otherwise.
-
Sergei Barannikov authored
This reverts commit d41f6cff. The commit contained wrong phabricator link.
-
Manna, Soumi authored
Reported by Static Analyzer Tool, Coverity: Inside "SemaDeclCXX.cpp" file, in clang::Sema::CheckExplicitlyDefaultedSpecialMember(clang::CXXMethodDecl *, clang::Sema::CXXSpecialMember, clang::SourceLocation): Return value of function which returns null is dereferenced without checking. //returned_null: getAs returns nullptr (checked 117 out of 143 times). // var_assigned: Assigning: Type = nullptr return value from getAs. const FunctionProtoType *Type = MD->getType()->getAs<FunctionProtoType>(); //Dereference null return value (NULL_RETURNS) //dereference: Dereferencing a pointer that might be nullptr Type when calling getReturnType. ReturnType = Type->getReturnType(); //Dereference null return value (NULL_RETURNS) //dereference: Dereferencing a pointer that might be nullptr Type when calling getParamType. QualType ArgType = ExpectedParams ? Type->getParamType(0) : QualType(); This patch uses castAs instead of getAs which will assert if the type doesn't match. Reviewed By: erichkeane Differential Revision: https://reviews.llvm.org/D151281
-
Rahul Kayaith authored
This fixes a -Wunused-member-function warning, at the moment `PyRegionIterator` is never constructed by anything (the only use was removed in D111697), and iterating over region lists is just falling back to a generic python iterator object. Reviewed By: stellaraccident Differential Revision: https://reviews.llvm.org/D150244
-
Enna1 authored
This patch adds nosantize metadata to memory access instructions inserted by gcov emitProfileNotes(), making sanitizers skip these instructions when gcov and sanitizer are used together. Reviewed By: nickdesaulniers Differential Revision: https://reviews.llvm.org/D150460
-
Rahul Kayaith authored
Currently blocks are always created with UnknownLoc's for their arguments. This adds an `arg_locs` argument to all block creation APIs, which takes an optional sequence of locations to use, one per block argument. If no locations are supplied, the current Location context is used. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D150084
-