- Jan 06, 2022
-
-
Arjun P authored
Reviewed By: bondhugula Differential Revision: https://reviews.llvm.org/D116672
-
Kazu Hirata authored
This patch fixes: mlir/lib/Dialect/Linalg/ComprehensiveBufferize/ModuleBufferization.cpp:635:23: error: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Werror,-Wsign-compare]
-
David Pagan authored
-
Kirill Stoimenov authored
This will allow linking in the callbacks directly instead of using PLT. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D116182
-
Christudasan Devadasan authored
-
Craig Topper authored
We can either check the opcode or number of operands or use ISD::isVPOpcode inside the methods. In some places I've used number of operands figuring that it is cheaper than isVPOpcode. I've included isVPOpcode in an assert to verify. Reviewed By: frasercrmck Differential Revision: https://reviews.llvm.org/D116578
-
Craig Topper authored
These 3 switches map LMUL enum to instruction names. These follow a regular pattern. Use a macro to reduce the number of source code lines. Reviewed By: arcbbb Differential Revision: https://reviews.llvm.org/D116631
-
Markus Böck authored
stdcall name mangling requires a suffix with the number equal to the sum of the byte count of all parameter types. In the case of a function prototype that has a parameter type of an incomplete type it is impossible to get the size of the type. While such a function is not callable or able to be defined in the TU, it may still be mangled when generating debug info, which would previously lead to a crash. This patch fixes that by simply bailing out of the loop and using the so far accumulated byte count. This matches GCCs behaviour as well: https://github.com/gcc-mirror/gcc/blob/bc8d6c60137f8bbf173b86ddf31b15d7ba2a33dd/gcc/config/i386/winnt.c#L203 Fixes https://github.com/llvm/llvm-project/issues/52782 Differential Revision: https://reviews.llvm.org/D116020
-
Philip Reames authored
The naming has come up as a source of confusion in several recent reviews. onlyWritesMemory is consist with onlyReadsMemory which we use for the corresponding readonly case as well.
-
Nico Weber authored
lld-link used to consistently print all /verbose output to stdout, and that was an intentional decision: https://reviews.llvm.org/rG4bce7bcc88f3 https://reviews.llvm.org/rGe6e206d4b4814 added message() and log(), and back then `log()` morally was just `if (verbose) message(...)` and message() wrote to stdout. So that change moved most /verbose-induced writes to outs() to log(). Except for the one in printDiscardedMessage(), since the check for `verbose` for that one is in the caller, in Writer::createSections(): if (config->verbose) sc->printDiscardedMessage(); Later, https://reviews.llvm.org/D41033 changed log() to write to stderr. That moved lld-link from writing all its /verbose output to stdout to writing almost all of its /verbose output to stderr -- except for printDiscardedMessage() output. This change moves printDiscardedMessage() to call log() as well, so that all /verbose output once again consistently goes to the same stream. Differential Revision: https://reviews.llvm.org/D116667
-
Shubham Pawar authored
This change extends the addressing mode optimization pass to HVX vgather. This is specifically intended to resolve compiler not generating indexed addresses for vgather stores to vtcm. Changed the vgather pseudo instructions to accept an immediate operand and handled addition of appropriate immediate operand in addressing mode optimization pass.
-
Mark de Wever authored
The fix in D116381 makes an existing exception message wrong. This improves the message and fixes the associated unit tests. Note other message can be also be improved, but that will be done later. Changing these messages may cause merge conflicts with other patches that are under review or WIP. Depends on D116381 Reviewed By: #libc, Quuxplusone, ldionne Differential Revision: https://reviews.llvm.org/D116495
-
Mark de Wever authored
@CaseyCarter reported that the tests for the std-format-spec rejects leading zeroes for precision, which the Standard does not require. The Standard allows them. Only for precision, not for the width or an arg-id. Fixes the precision parser and adds some test for the arg-id since they were missing. Reviewed By: ldionne, #libc Differential Revision: https://reviews.llvm.org/D116381
-
Nicolas Vasilache authored
-
Jino Park authored
Fix typo (leftt -> left) Reviewed By: curdeius Differential Revision: https://reviews.llvm.org/D116658
-
Nicolas Vasilache authored
Differential Revision: https://reviews.llvm.org/D116665
-
- Jan 05, 2022
-
-
Joshua Herrera authored
-
Sam McCall authored
Main use of these is in the standard library, where they generally clutter up the index. Certain macros are also common, we don't touch indexing of macros in this patch. Differential Revision: https://reviews.llvm.org/D115301
-
Matthias Springer authored
There is no need to inspect the ReturnOp of the called function. This change also refactors the bufferization of CallOps in such a way that `lookupBuffer` is called only a single time. This is important for a later change that fixes CallOp bufferization. (There is currently a TODO among the test cases.) Note: This change modifies a test case but is marked as NFC. There is no change of functionality, but FuncOps with empty bodies are now reported with a different error message. Differential Revision: https://reviews.llvm.org/D116446
-
Alex Zinenko authored
So far, only the custom dialect types are exposed. The build and packaging is same as for Linalg and SparseTensor, and in need of refactoring that is beyond the scope of this patch. Reviewed By: stellaraccident Differential Revision: https://reviews.llvm.org/D116605
-
David Tenty authored
mapped_file_region::dontNeedImpl added in D116366 calls madvise, which causes problems for z/OS and AIX. For z/OS, we don't have either madvise, so treat this as a no-op, same as Windows does. For AIX, it doesn't have any effect, doesn't have a standardized signature, and it needs certain feature test macros (i.e. _ALL_SOURCE) we don't set by default for LLVM on AIX, so just make it a no-op too. Differential Revision: https://reviews.llvm.org/D116603
-
Alex Zinenko authored
Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D116546
-
Matthias Springer authored
Such CallOps were not handled properly. When computing the new result types (and replacement values) of a CallOp, non-tensor return values were not accounted for. Differential Revision: https://reviews.llvm.org/D116445
-
Alex Zinenko authored
Previously, the Python bindings for the Linalg dialect relied on the internal implementation of core bindings. Most of that functionality was moved, and the remaining one does not need access to the implementation: it used to accept a dialect pointer as argument, but it can always be extracted from the operation that it also accepts; operations are available through PybindAdaptors in an opaque way. Change the bindings in that direction. This enables the decoupling of the Linalg dialect Python extension from the core IR Python extension. Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D116649
-
David Green authored
-
Matthias Springer authored
This change simplifies BufferizationState. Having `rewriter` in BufferizationState could be confusing to users because a rewriter is also passed to each `bufferize` function and it is not obvious (by looking at the API) that these two rewriters are the same. Differential Revision: https://reviews.llvm.org/D116444
-
Sam McCall authored
-
Haojian Wu authored
-
Simon Tatham authored
This family of instructions includes CPYF (copy forward), CPYB (copy backward), SET (memset) and SETG (memset + initialise MTE tags), with some sub-variants to indicate whether address translation is done in a privileged or unprivileged way. For the copy instructions, you can separately specify the read and write translations (so that kernels can safely use these instructions in syscall handlers, to memcpy between the calling process's user-space memory map and the kernel's own privileged one). The unusual thing about these instructions is that they write back to multiple registers, because they perform an implementation-defined amount of copying each time they run, and write back to _all_ the address and size registers to indicate how much remains to be done (and the code is expected to loop on them until the size register becomes zero). But this is no problem in LLVM - you just define each instruction to have multiple outputs, multiple inputs, and a set of constraints tying their register numbers together appropriately. This commit introduces a special subtarget feature called MOPS (after the name the spec gives to the CPU id field), which is a dependency of the top-level 8.8-A feature, and uses that to enable most of the new instructions. The SETMG instructions also depend on MTE (and the test checks that). Differential Revision: https://reviews.llvm.org/D116157
-
gbreynoo authored
Other tools take their tool name from argv[0] for use in output messages. This change makes llvm-strings consistent with other tools rather than using a hard coded value. Differential Revision: https://reviews.llvm.org/D116604
-
Sam McCall authored
Because declarators nest inside-out, we logically need to claim tokens for parent declarators logically before child ones. This is the ultimate reason we had problems with DeclaratorDecl, ArrayType etc. However actually changing the order of traversal is hard, especially for nodes that have both declarator and non-declarator children. Since there's only a few TypeLocs corresponding to declarators, we just have them claim the exact tokens rather than rely on nesting. This fixes handling of complex declarators, like `int (*Fun(OuterT^ype))(InnerType);`. This avoids the need for the DeclaratorDecl early-claim hack, which is removed. Unfortunately the DeclaratorDecl early-claims were covering up an AST anomaly around CXXConstructExpr, so we need to fix that up too. Based on D116623 and D116618 Differential Revision: https://reviews.llvm.org/D116630
-
Nicolas Vasilache authored
LICM checks that nested ops depend only on values defined outside before performing hoisting. However, it specifically omits to check for terminators which can lead to SSA violations. This revision fixes the incorrect behavior. Differential Revision: https://reviews.llvm.org/D116657
-
Florian Hahn authored
VPWidenMemoryInstructionRecipe is a VPValue, so this can be passed directly, instead of relying on getVPSingleValue.
-
Jan Svoboda authored
-
Nicolas Vasilache authored
Differential Revision: https://reviews.llvm.org/D116648
-
Clement Courbet authored
The check should not trigger on lvalue/rvalue overload pairs: ``` struct S { S(const A& a) : a(a) {} S(A&& a) : a(std::move(a)) {} A a; } ``` Differential Revision: https://reviews.llvm.org/D116535 -
Sanjay Patel authored
-
Sanjay Patel authored
-
Benjamin Kramer authored
std::make_reverse_iterator is a C++14 feature, gcc has it since GCC 5.1.
-
Nikita Popov authored
We should bail out if the index is >= the size, not > the size. Fixes https://github.com/llvm/llvm-project/issues/53002.
-