- Sep 30, 2022
-
-
Nico Weber authored
std::iterator was deprecated in C++17. No behavior change. Differential Revision: https://reviews.llvm.org/D134844
-
Pierre van Houtryve authored
Recognize more opcodes in the function. Fixes some regressions introduced in D134857 for fdiv.f16 too. Depends on D134857 Reviewed By: arsenm, foad Differential Revision: https://reviews.llvm.org/D134862
-
Pierre van Houtryve authored
Make it even with the DAG implementation as of D134854 Reviewed By: arsenm, foad Differential Revision: https://reviews.llvm.org/D134857
-
Nikita Popov authored
Collect more statistics for scalar promotion. In particular, keep track of how many promotion candidates there were, and whether it is a load or a load/store promotion.
-
Alex Brachet authored
Differential Revision: https://reviews.llvm.org/D132416
-
Pierre van Houtryve authored
Folds-away BUILD_VECTOR-related noops in the post-legalizer combiner. Depends on D134433 Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D134953
-
Pierre van Houtryve authored
Preparation patch for D134354 to make V2S16 G_BUILD_VECTOR legal. Also removes RegBankInfo's scalarization of small BUILD_VECTORs, replacing it with InstructionSelector logic instead. This allows for V2S16 BUILD_VECTOR instructions to survive all the way to ISel so we can select FMA/MAD_MIX instructions in D134354. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D134433
-
Sanjay Patel authored
Adapted from the existing tests for ashr, sdiv, srem.
-
Ivan Kosarev authored
Happened earlier than I anticipated. :) Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D134726
-
Jitka Plesnikova authored
Fix the failure caused by change in SwigValueWraper for C++11 and later for improved move semantics in SWIG commit. https://github.com/swig/swig/commit/d1055f4b3d51cb8060893f8036846ac743302dab
-
Amaury Séchet authored
-
Sanjay Patel authored
This is an extension of the existing min/max+select fold (which already has a very large number of variations) to allow a vector shuffle because that's what we have in the motivating example from issue #42100. A couple of Alive2 checks of variants (I don't know how to generalize these in Alive): https://alive2.llvm.org/ce/z/jUFAqT And verify the PR42100 test: https://alive2.llvm.org/ce/z/3EcASf It's possible there is some generalization of the fold or a VectorCombine/SLP answer for the motivating test, but I haven't found a better/smaller solution yet. We can also add even more variants here as follow-up patches. For example, we can have shuffle followed by min/max; we also don't have this canonicalization or the reverse: https://alive2.llvm.org/ce/z/StHD9f Differential Revision: https://reviews.llvm.org/D134879
-
Simon Pilgrim authored
-
Nikita Popov authored
-
Dmitry Vyukov authored
We set in_blocking_func around some blocking C functions so that we don't delay signal infinitely (if in_blocking_func is set we deliver signals synchronously). However, pthread_join is blocking but also call munmap/free to free thread resources. If we are inside the munmap/free interceptors called from pthread_join and deliver a signal synchronously, it can lead to deadlocks and crashes since we re-enter runtime and try to lock the same mutexes or use the same per-thread data structures. If we re-enter runtime via an interceptor when in_blocking_func is set, temporary reset in_blocking_func around the interceptor and restore it back when we return from the recursive interceptor. Also move in_blocking_func from ThreadSignalContext to ThreadContext so that we can CHECK that it's not set in SlotLocker ctor. Fixes https://github.com/google/sanitizers/issues/1540 Reviewed By: melver Differential Revision: https://reviews.llvm.org/D127845
-
Alex Zinenko authored
This function was returning an rvalue reference to an object that was also cleared via RAII when the function returned, making it always return an empty object. Make it accept the mutable reference to the object instead to avoid this dangerous behavior. Reviewed By: guraypp Differential Revision: https://reviews.llvm.org/D134948
-
Zain Jaffal authored
Add tests where the operands are switched and where the top bit of the operand is set to 1 Reviewed By: fhahn Differential Revision: https://reviews.llvm.org/D134867
-
Tonko Sabolčec authored
This change fixes two issues in ValueObject::GetExpressionPath method: 1. Accessing members of struct references used to produce expression paths such as "str.&str.member" (instead of the expected "str.member"). This is fixed by assigning the flag tha the child value is a dereference when calling Dereference() on references and adjusting logic in expression path creation. 2. If the parent of member access is dereference, the produced expression path was "*(ptr).member". This is incorrect, since it dereferences the member instead of the pointer. This is fixed by wrapping dereference expression into parenthesis, resulting with "(*(ptr)).member". Reviewed By: werat, clayborg Differential Revision: https://reviews.llvm.org/D132734 -
Nikita Popov authored
The phi translation performed during this fold is important for correctness, but was apparently untested.
-
Alexander Kornienko authored
This is not legal according to the C++ standard, and causes build errors in particular in C++20 mode. Fix it by defining the vector's type before using the vector. Patch by poompatai@google.com.
-
Nikita Popov authored
-
Alvin Wong authored
In `ProcessWindows::OnDebuggerConnected` (triggered from `CREATE_PROCESS_DEBUG_EVENT`), we should always call `Target::SetExecutableModule` regardless of whether LLDB has already preloaded the executable modules. `SetExecutableModule` has the side effect of clearing the module list of the Target, which help make sure that module #0 is the executable module and the rest of the modules are listed according to the DLL load order in the process (technically this has no real consequences but it seems to make more sense anyway.) It also fixes an issue where the modules preloaded by LLDB will be duplicated when the debuggee process actually loads the DLL. Reviewed By: labath Differential Revision: https://reviews.llvm.org/D134636
-
Adrian Kuegel authored
-
Simon Pilgrim authored
Revert rG1b7089fe "[SLP] Add ScalarizationOverheadBuilder helper to track vector extractions" Revert rGef89409a "Fix 'unused-lambda-capture' gcc warning. NFCI." Revert rG926ccfef "[SLP] ScalarizationOverheadBuilder - demand all elements for scalarization if the extraction index is unknown / out of bounds" Revert ScalarizationOverheadBuilder sequence from D134605 - when accumulating extraction costs by Type (instead of specific Value), we are not distinguishing enough when they are coming from the same source or not, and we always just count the cost once. This needs addressing before we can use getScalarizationOverhead properly.
-
Florian Hahn authored
breakLoopBackedge may remove blocks and loops. Also clear block & loop disposition to avoid the cache containing invalid blocks and loops. The coverage for the change is provided when using an ASAN build of opt to run the LoopDeletion unit tests; without the fix, pointers to invalid objects would be used. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D134663
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
Oleg Shyshkov authored
Summary: As mentioned in the comment to https://reviews.llvm.org/D134444, the term `tied` is a misnomer in this context and `matching` sounds much better. Differential Revision: https://reviews.llvm.org/D134534
-
Zain Jaffal authored
Adding to the work done in `D131773` here we add support to 128-bit loads. Reviewed By: fhahn Differential Revision: https://reviews.llvm.org/D132559
-
Juan Manuel MARTINEZ CAAMAÑO authored
The DebugLoc is conserved when hoisting function calls, to ensure the DIScope is preserved if inlining occurs. This commit drops the DebugLoc in the case the call is an intrinsic call that won't be lowered into a function call. Differential Revision: https://reviews.llvm.org/D134429
-
gonglingqin authored
-
Roy Jacobson authored
This reverts commit 9706bb31, some CI workers complain about the test.
-
Roy Jacobson authored
Define the feature test macro for named character escapes. I assume this was not done because it was implemented before formally accepted, right? cxx_status says the paper is implemented. Reviewed By: cor3ntin Differential Revision: https://reviews.llvm.org/D134898
-
Roy Jacobson authored
Fixes a null dereference in some diagnostic issuing code. Closes https://github.com/llvm/llvm-project/issues/57370 Closes https://github.com/llvm/llvm-project/issues/58028 Reviewed By: shafik Differential Revision: https://reviews.llvm.org/D134885
-
Siva Chandra Reddy authored
They were disabled because we were including linux/signal.h from our signal.h. Linux's signal.h is not designed to be included from user programs as it causes a lot of non-standard name pollution. Also, it is not self-contained. This change defines types and macros relevant for signal related syscalls within libc's headers and removes inclusion of Linux headers. This patch enables the funtions only for x86_64. They will be enabled for aarch64 also in a follow up patch after testing. Reviewed By: abrachet, lntue Differential Revision: https://reviews.llvm.org/D134567
-
Pierre van Houtryve authored
Without it, the count of renderer functions is inaccurate and, in some edge cases (like the patterns added in D134354), we can actually go out of bounds (run out of pre-allocated renderer function spaces in the GISel state) Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D134861
-
Michał Górny authored
Add support for a CLANG_NO_DEFAULT_CONFIG envvar that works like the --no-default-config option when set to a non-empty value. Use it to disable loading system configuration files during the test suite runs. Configuration files can change the driver behavior in extensive ways, and it is neither really possible nor feasible to account for or undo the effects of even the most common configuration uses. Therefore, the most reasonable option seems to be to ignore configuration files while running the majority of tests (with the notable exception of tests for configuration file support). Due to the diversity of ways that %clang is used in the test suite, including using it to copy or symlink the clang executable, as well to call -cc1 and -cc1as modes, it is not feasible to pass the explicit options to disable config loading either. Using an environment variable has the advantage of being easily applied across the test suite and easily unse...
-
serge-sans-paille authored
C++11 made the use of these macro obsolete, see https://sourceware.org/bugzilla/show_bug.cgi?id=15366 As a side effect this prevents https://github.com/swig/swig/issues/2193. Differential Revision: https://reviews.llvm.org/D134877
-
Adrian Kuegel authored
This op will allow to model (variadic) reductions with this special op instead of using GenericOp. This reverts commit 535fd753. Additional fix: implement a getLibraryName method.
-
Adrian Kuegel authored
-