- Jan 03, 2022
-
-
Sam McCall authored
Provide signature while typing template arguments: Foo< ^here > Here the parameters are e.g. "typename x", and the result type is e.g. "struct" (class template) or "int" (variable template) or "bool (std::string)" (function template). Multiple overloads are possible when a template name is used for several overloaded function templates. Fixes https://github.com/clangd/clangd/issues/299 Differential Revision: https://reviews.llvm.org/D116352
-
LLVM GN Syncbot authored
-
Pavel Labath authored
This survived the reproducer deletion.
-
Uday Bondhugula authored
Fix confusing diagnostic during partial dialect conversion. A failure to legalize is not the same as an operation being illegal: for eg. an operation neither explicity marked legal nor explicitly marked illegal could have been generated and may have failed to legalize further. The op isn't an illegal one per https://mlir.llvm.org/docs/DialectConversion/#conversion-target which is an op that is explicitly marked illegal. Differential Revision: https://reviews.llvm.org/D116152
-
William S. Moses authored
Create folders for add(sub(a, b), b) -> a and add(b, sub(a, b)) -> a Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D116471
-
Pavel Labath authored
Both serve the same purpose (finding shared libraries) and allow one to launch a dynamically linked executable by just specifying the platform sysroot.
-
Pavel Labath authored
The lldb-server code is currently set up in a way that each NativeProcess instance does its own waitpid handling. This works fine for BSDs, where the code can do a waitpid(process_id), and get information for all threads in that process. The situation is trickier on linux, because waitpid(pid) will only return information for the main thread of the process (one whose tid == pid). For this reason the linux code does a waitpid(-1), to get information for all threads. This was fine while we were supporting just a single process, but becomes a problem when we have multiple processes as they end up stealing each others events. There are two possible solutions to this problem: - call waitpid(-1) centrally, and then dispatch the events to the appropriate process - have each process call waitpid(tid) for all the threads it manages This patch implements the second approach. Besides fitting better into the existing design, it also has the added benefit of ensuring predictable ordering for thread/process creation events (which come in pairs -- one for the parent and one for the child). The first approach OTOH, would make this ordering even more complicated since we would have to keep the half-threads hanging in mid-air until we find the process we should attach them to. The downside to this approach is an increased number of syscalls (one waitpid for each thread), but I think we're pretty far from optimizing things like this, and so the cleanliness of the design is worth it. The included test reproduces the circumstances which should demonstrate the bug (which manifests as a hung test), but I have not been able to get it to fail. The only place I've seen this failure modes are very rare hangs in the thread sanitizer tests (tsan forks an addr2line process to produce its error messages). Differential Revision: https://reviews.llvm.org/D116372
-
Nikita Popov authored
The nounwind and uwtable attributes will get handled as part of the loop below as well, there is no need to special-case them here.
-
mydeveloperday authored
A 1% increase in the number of clang-formatted files. An additional 235 files have been added to LLVM, and an additional 268 files are now clang-format clean. Raising the overall % to 52% There are now 8407 files clean out of 15902 (ignoring lit tests)
-
Nikita Popov authored
This list is confusing because it conflates functions attributes (which are either extractable or not) and other attribute kinds, which are simply irrelevant for this code.
-
Fraser Cormack authored
This patch extends the available uses of the 'align' parameter attribute to include vectors of pointers. The attribute specifies pointer alignment element-wise. This change was previously requested and discussed in D87304. The vector predication (VP) intrinsics intend to use this for scatter and gather operations, as they lack the explicit alignment parameter that the masked versions use. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D115161
-
Lucas Prates authored
This patch introduces support for targetting the Armv9.3-A architecture, which should map to the existing Armv8.8-A extensions. Differential Revision: https://reviews.llvm.org/D116158
-
Simon Tatham authored
This instruction is described in the Arm A64 Instruction Set Architecture documentation available here: https://developer.arm.com/documentation/ddi0596/2021-12/Base-Instructions/BC-cond--Branch-Consistent-conditionally-?lang=en FEAT_HBC "Hinted Conditional Branches" is listed in the 2021 A-Profile Architecture Extensions: https://developer.arm.com/architectures/cpu-architecture/a-profile/exploration-tools/feature-names-for-a-profile 'BC.cc', where 'cc' is any ordinary condition code, is an instruction that looks exactly like B.cc (the normal conditional branch), except that bit 4 of the encoding is 1 rather than 0, which hints something to the branch predictor (specifically, that this branch is expected to be highly consistent, even though _which way_ it will consistently go is not known at compile time). This commit introduces a special subtarget feature for HBC, which is a dependency of the top-level 8.8-A feature, and uses that to enable the new BC instruction. Differential Revision: https://reviews.llvm.org/D116156
-
mydeveloperday authored
https://github.com/llvm/llvm-project/issues/52881 It seems that clang-format off/on is not being honoured in regard to adding spaces. My understanding of clang-format off/on is that it marks the token as finalized based on whether formatting is currently enabled or disabled. This was causing a space to be added between the `<` and `<<` in the Cuda kernel `foo<<<1, 1>>>();` This if doesn't solve this actual issue but ensure that clang-format is at least honoured. Reviewed By: curdeius, owenpan Differential Revision: https://reviews.llvm.org/D116494
-
Groverkss authored
This patch removes unnecessary dependency on IR for Simplex. This patch allows users to use Presburger library without depending on MLIRIR. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D116530
-
Gabriel Smith authored
Reviewed By: HazardyKnusperkeks, MyDeveloperDay, owenpan Differential Revision: https://reviews.llvm.org/D116189
-
Zhao Wei Liew authored
This diff extends the -style=file option to allow a config file to be specified explicitly. This is useful (for instance) when adding IDE commands to reformat code to a personal style. Usage: `clang-format -style=file:<path/to/config/file> ...` Reviewed By: HazardyKnusperkeks, curdeius, MyDeveloperDay, zwliew Differential Revision: https://reviews.llvm.org/D72326
-
Zhao Wei Liew authored
Currently, we are unable to inherit from a chain of parent configs where the outermost parent config has `BasedOnStyle: InheritParentConfig` set. This patch adds a test case for this scenario, and adds support for it. To illustrate, suppose we have the following directory structure: ``` - e/ |- .clang-format (BasedOnStyle: InheritParentConfig) <-- outermost config |- sub/ |- .clang-format (BasedOnStyle: InheritParentConfig) |- sub/ |- .clang-format (BasedOnStyle: InheritParentConfig) |- code.cpp ``` Now consider what happens when we run `clang-format --style=file /e/sub/sub/code.cpp`. Without this patch, on a release build, only the innermost config will be applied. On a debug build, clang-format crashes due to an assertion failure. With this patch, clang-format behaves as we'd expect, applying all 3 configs. Reviewed By: HazardyKnusperkeks, curdeius Differential Revision: https://reviews.llvm.org/D116371 -
Florian Hahn authored
Setting the loop metadata for the vector loop after VPlan execution allows generating the full loop body during VPlan execution. This is in preparation for D113224.
-
Nikita Popov authored
Rather than checking for nounwind in particular, make sure the instruction is guaranteed to transfer execution, which will also handle non-willreturn calls correctly. Fixes https://github.com/llvm/llvm-project/issues/52950.
-
Nikita Popov authored
isMaybeZeroSizeType() is no longer used after 5afbfe33.
-
Jim Lin authored
Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D116520
-
Marek Kurdej authored
-
Nikita Popov authored
We can fold an equality or unsigned icmp between base+offset1 and base+offset2 with inbounds offsets by comparing the offsets directly. This replaces a pair of specialized folds that tried to reason based on the GEP structure instead. One of those folds was plain wrong (because it does not account for negative offsets), while the other is unnecessarily complicated and limited (e.g. it will fail with bitcasts involved). The disadvantage of this change is that it requires data layout, so the fold is no longer performed by datalayout-independent constant folding. I don't think this is a loss in practice, but it does regress the ConstantExprFold.ll test, which checks folding without running any passes. Differential Revision: https://reviews.llvm.org/D116332
-
Nikita Popov authored
The intended transform is not legal with an extern global, because the actual global defined in a different TU might have larger size. Make it non-extern to show that the desired transform already works.
-
Nikita Popov authored
If the killing store overwrites the whole object, we know that the preceding store is dead, regardless of the accessed offset or size. This case was previously only handled if the size of the dead store was also known. This allows us to perform conventional DSE for calls that write to an argument (but without known size). Differential Revision: https://reviews.llvm.org/D116267
-
Vitaly Buka authored
-
Marek Kurdej authored
Fixes https://github.com/llvm/llvm-project/issues/52889.
-
Kazu Hirata authored
Identified with llvm-namespace-comment.
-
John Ericson authored
- Change a stray tab to spaces - 4 not 2 spaces in second line of `set` like above. Reviewed By: mstorsjo Differential Revision: https://reviews.llvm.org/D116510
-
Craig Topper authored
[Support] Add KnownBits::countMaxSignedBits(). Make KnownBits::countMinSignBits() always return at least 1. Even if we don't have any known bits, we can assume that there is at least 1 sign bit. This is consistent with ComputeNumSignBits which always returns at least 1. Add KnownBits::countMaxSignedBits() which computes the number of bits needed to represent all signed values with those known bits. This is the signed equivalent of countMaxActiveBits(). Split from D116469. Reviewed By: lebedev.ri Differential Revision: https://reviews.llvm.org/D116500
-
Victor Perez authored
Expand [nX]vXi1 vp.select the same way as [nX]vXi1 vselect. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D115546
-
Kazu Hirata authored
The variable is declared in ScopDetection.h, which ScopInliner.cpp includes. Identified by readability-redundant-declaration.
-
Craig Topper authored
For floating point specific vector instructions, we don't need pseudos for mf8. Reviewed By: khchen Differential Revision: https://reviews.llvm.org/D116460
-
Mehdi Amini authored
-
Kazu Hirata authored
-
Kazu Hirata authored
Identified with readability-redundant-member-init.
-
Mehdi Amini authored
Revert "Define a `cppAccessorType` to const-ref in APFloatParameter and update ODS emitter to use it for verifier signatures" This reverts commit 89af17c0. This broke the gcc5 build.
-
William S. Moses authored
Two canonicalizations for select %x, 1, 0 If the return type is i1, return simply the condition %x, otherwise extui %x to the return type. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D116517
-
William S. Moses authored
Replace and(ext(a),ext(b)) with ext(and(a,b)). This both reduces one instruction, and results in the computation (and/or) being done on a smaller type. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D116519
-