- Nov 13, 2021
-
-
Philip Reames authored
-
Peter Klausler authored
The ORDER= argument to the transformational intrinsic function RESHAPE was being misinterpreted in an inverted way that could be detected only with 3-d or higher rank array. Fix in both folding and the runtime, and extend tests. Differential Revision: https://reviews.llvm.org/D113699
-
Florian Hahn authored
Split off refactoring from D113577 to reduce the diff. NFC as the new interface will only be used in D113577.
-
Nawrin Sultana authored
Differential Revision:https://reviews.llvm.org/D113012
-
Quinn Pham authored
[NFC] As part of using inclusive language within the llvm project, this patch replaces `m_master` in `ASTImporterDelegate` with `m_main`. Reviewed By: teemperor, clayborg Differential Revision: https://reviews.llvm.org/D113720
-
Simon Pilgrim authored
-
Philip Reames authored
-
Fangrui Song authored
This brings back the original version of D81359. I have found several use cases now. * Unlike GNU ld, LLD's relocation processing is one pass. If we decide to optimize(relax) R_X86_64_{,REX_}GOTPCRELX, we will suppress GOT generation and cannot undo the decision later. Optimizing R_X86_64_REX_GOTPCRELX can usually make it easy to hit `relocation R_X86_64_REX_GOTPCRELX out of range` because the distance to GOT is usually shorter. Without --no-relax, the user has to recompile with `-Wa,-mrelax-relocations=no`. * The option would help during my investigationg of the root cause of https://git.kernel.org/linus/09e43968db40c33a73e9ddbfd937f46d5c334924 * There is need for relaxation for AArch64 & RISC-V. Implementing this for x86-64 improves consistency with little target-specific cost (two-line X86_64.cpp change). Reviewed By: alexander-shaposhnikov Differential Revision: https://reviews.llvm.org/D113615 -
Sam McCall authored
This helps nvim support the "repeat" action Fixes https://github.com/clangd/clangd/issues/922
-
Philip Reames authored
-
Nikita Popov authored
While ForeachNumInConstantRange(ConstantRange::getFull(Bits)) works, it's somewhat roundabout, and I keep looking for this function.
-
Quinn Pham authored
[NFC] This patch replaces master and slave with primary and secondary respectively when referring to pseudoterminals/file descriptors. Reviewed By: clayborg, teemperor Differential Revision: https://reviews.llvm.org/D113687
-
Dmitry Vyukov authored
Summary: This reverts commit ac95b8d9. There is a number of bot failures: http://45.33.8.238/mac/38755/step_4.txt https://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake/38135/consoleFull#-148886289949ba4694-19c4-4d7e-bec5-911270d8a58c Reviewers: vitalybuka, melver Subscribers:
-
Simon Pilgrim authored
Add support for v32i8/v64i8 converting shift-by-constant to multiply-by-constant. This helps us avoid the generic vXi8 shift lowering, and a lot of VPBLENDVB ops which can be particularly slow. We also needed to reorder a few shift lowering patterns to prevent regressions, particularly for XOP+AVX2 (Excavator) targets (which can split to fast v16i8 shifts) and AVX512-BWI targets (which prefers to extend to fast v32i16 shifts).
-
Zarko Todorovski authored
Small patch that changes blacklisted_global to blocked_global and a change in comments. Reviewed By: pgousseau Differential Revision: https://reviews.llvm.org/D113692
-
Brian Cain authored
__size was declared as unsigned which was compatible with
-
Joel E. Denny authored
Fixes what's left of https://bugs.llvm.org/show_bug.cgi?id=51781. Reviewed By: jdoerfert, JonChesterfield, tianshilei1992 Differential Revision: https://reviews.llvm.org/D113602
-
Florian Hahn authored
-
- Nov 12, 2021
-
-
Jay Foad authored
The old expansion open-coded a 64-bit addition in a strange way, by adding the high parts *without* carry-in from the low part, and then adding the carry back in later on. Fixing this saves a couple of instructions and makes the code much easier to understand. Differential Revision: https://reviews.llvm.org/D113679
-
Zarko Todorovski authored
Change the error message to use ignorelist, and changed some variable and function names in related code and test. Reviewed By: thakis Differential Revision: https://reviews.llvm.org/D113189
-
Kazu Hirata authored
-
Roman Lebedev authored
-
Nicolas Vasilache authored
Address comments from https://reviews.llvm.org/D113745 which landed as aa373180
-
Justas Janickas authored
Reuses C++ for OpenCL constructor address space test so that it supports optional generic address spaces in version 2021. Differential Revision: https://reviews.llvm.org/D110184
-
Alexey Bataev authored
failures, NFC.
-
Kerry McLaughlin authored
`collectElementTypesForWidening` collects the types of load, store and reduction Phis in a loop. These types are later checked using `isElementTypeLegalForScalableVector` to prevent vectorisation of loops with instruction types that are unsupported. This patch removes i1 from the list of types supported for scalable vectors. This fixes an assert ("Cannot yet scalarize uniform stores") in `setCostBasedWideningDecision` when we have a loop containing a uniform i1 store and a scalable VF, which we cannot create a scatter for. Reviewed By: david-arm Differential Revision: https://reviews.llvm.org/D113680 -
Alexey Bataev authored
Need to fix ther cost estimation for split loads, since we look at the subregs already, no need to permute them, need just to estimate subregister insert, if it is smaller than the real register. Also, using split loads, it might be profitable already to vectorize smaller trees with gathering of the loads. Differential Revision: https://reviews.llvm.org/D107188
-
Simon Pilgrim authored
Currently we only constant fold target shuffles if any of the sources has one use, or it would remove a variable shuffle mask - the aim being to avoid constant pool bloat. This patch proposes we should constant fold by default and only limit this if optsize is enabled - I've added a basic test for this in vector-mul.ll (the pmuludq case is by far the most common), I can add other specific test cases if people need them. This should permit further constant folding, break some instruction dependencies and help reduce shuffle port pressure. Differential Revision: https://reviews.llvm.org/D113748
-
Kadir Cetinkaya authored
-
Dmitry Vyukov authored
This change switches tsan to the new runtime which features: - 2x smaller shadow memory (2x of app memory) - faster fully vectorized race detection - small fixed-size vector clocks (512b) - fast vectorized vector clock operations - unlimited number of alive threads/goroutimes Depends on D112602. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D112603
-
Raphael Isemann authored
When LLDB receives a SIGINT while running the embedded Python REPL it currently just crashes in `ScriptInterpreterPythonImpl::Interrupt` with an error such as the one below: ``` Fatal Python error: PyThreadState_Get: the function must be called with the GIL held, but the GIL is released (the current Python thread state is NULL) ``` The faulty code that causes this error is this part of `ScriptInterpreterPythonImpl::Interrupt`: ``` PyThreadState *state = PyThreadState_GET(); if (!state) state = GetThreadState(); if (state) { long tid = state->thread_id; PyThreadState_Swap(state); int num_threads = PyThreadState_SetAsyncExc(tid, PyExc_KeyboardInterrupt); ``` The obvious fix I tried is to just acquire the GIL before this code is running which fixes the crash but the `KeyboardInterrupt` we want to raise immediately is actually just queued and would only be raised once the next line of input has been parsed (which e.g. won't interrupt Python code that is currently waiting on a timer or IO from what I can see). Also none of the functions we call here is marked as safe to be called from a signal handler from what I can see, so we might still end up crashing here with some bad timing. Python 3.2 introduced `PyErr_SetInterrupt` to solve this and the function takes care of all the details and avoids doing anything that isn't safe to do inside a signal handler. The only thing we need to do is to manually setup our own fake SIGINT handler that behaves the same way as the standalone Python REPL signal handler (which raises a KeyboardInterrupt). From what I understand the old code used to work with Python 2 so I kept the old code around until we officially drop support for Python 2. There is a small gap here with Python 3.0->3.1 where we might still be crashing, but those versions have reached their EOL more than a decade ago so I think we don't need to bother about them. Reviewed By: JDevlieghere Differential Revision: https://reviews.llvm.org/D104886 -
Sanjay Patel authored
and (pcmpgt X, -1), Y --> pandn (vsrai X, BitWidth-1), Y This avoids the -1 constant vector in favor of an arithmetic shift instruction if it exists (the ISA is still not complete after all these years...). We catch this pattern late in combining by matching PCMPGT, so it should not interfere with more general folds. Differential Revision: https://reviews.llvm.org/D113603
-
Jan Svoboda authored
This code will be moved to a separate function in a future patch. Reformatting now to prevent a bunch of clang-format complains on Phabricator.
-
Nicolas Vasilache authored
At this time the 2 flavors of conv are a little too different to allow significant code sharing and other will likely come up. so we go the easy route first by duplicating and adapting. Reviewed By: gysit Differential Revision: https://reviews.llvm.org/D113758
-
Dmitry Vyukov authored
Some bots failed with: unshare failed: 1 https://lab.llvm.org/buildbot/#/builders/70/builds/14101 Look only for the target EINVAL error. Differential Revision: https://reviews.llvm.org/D113759
-
Phoebe Wang authored
-
Kadir Cetinkaya authored
If the main file is a header, mark the marcos defined in its preamble section as code-completion ready. Fixes https://github.com/clangd/clangd/issues/921. Differential Revision: https://reviews.llvm.org/D113555
-
Adrian Kuegel authored
This reverts commit 9b6036de. Breaks two libc++ tests.
-
Adrian Kuegel authored
This reverts commit 55085952. The patch it depends on is reverted.
-
Florian Hahn authored
Suggested in D102267, but I missed this in the committed version.
-