- Jan 06, 2022
-
-
Sumanth Gundapaneni authored
-
Stefan Pintilie authored
Add support for Return Oriented Programming (ROP) protection for 32 bit. This patch also adds a testing for AIX on both 64 and 32 bit. Reviewed By: amyk Differential Revision: https://reviews.llvm.org/D111362
-
Kevin Athey authored
When enabling MSAN eager mode with noundef analysis these variables were found to not be initialized in unit tests. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D116428
-
Collin Baker authored
Clang searches for runtimes (e.g. libclang_rt*) first in a subdirectory named for the target triple (corresponding to LLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON), then if it's not found uses .../lib/<os>/libclang_rt* with a suffix corresponding to the arch and environment name. Android triples optionally include an API level indicating the minimum Android version to be run on (e.g. aarch64-unknown-linux-android21). When compiler-rt is built with LLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON this API level is part of the output path. Linking code built for a later API level against a runtime built for an earlier one is safe. In projects with several API level targets this is desireable to avoid re-building the same runtimes many times. This is difficult with the current runtime search method: if the API levels don't exactly match Clang gives up on the per-target runtime directory path. To enable this more simply, this change tries target triple without the API level before falling back on the old layout. Another option would be to try every API level in the triple, e.g. check aarch-64-unknown-linux-android21, then ...20, then ...19, etc. Differential Revision: https://reviews.llvm.org/D115049
-
Mogball authored
Instead of failing when it encounters a reference to an unknown symbol, Symbol DCE should ignore them. References to unknown symbols do not affect the overall function of Symbol DCE, so it should not need to fail when it encounters one. In general, requiring that symbol references always be valid rather than only when necessary can be overly conservative. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D116047
-
Alexey Bataev authored
opcodes, NFC. NFC part of D115955.
-
LLVM GN Syncbot authored
-
David Green authored
These instructions have nothing to do with the new MOP CPY instructions, and are better named DUP to avoid confusion. Differential Revision: https://reviews.llvm.org/D116655
-
Roman Lebedev authored
[NFC][SimplifyCFG] Extract `performBlockTailMerging()` out of `tailMergeBlocksWithSimilarFunctionTerminators()`
-
Philip Reames authored
-
Mircea Trofin authored
This just adds feature declarations and some boilerplate. Differential Revision: https://reviews.llvm.org/D116076
-
Petr Hosek authored
This allows their reuse across projects. The name of the module is intentionally generic because we would like to move more platform checks there. Differential Revision: https://reviews.llvm.org/D115276
-
David Green authored
This appears to be missing from D114590, causing sanitizer errors.
-
Philip Reames authored
-
Luís Ferreira authored
Added documentation about DW_TAG_immutable_type too. Reviewed By: probinson Differential Revision: https://reviews.llvm.org/D113633
-
Philip Reames authored
-
Nico Weber authored
The last use of `REQUIRES: debug` was removed in 2013 in 72c5d3d7 in favor of `REQUIRES: asserts`. The last use of `REQUIRES: asserts` was removed in 2015 in 251b0e26 when the old COFF linker was removed. lld's test suite currently has no behavior difference with respect to assertions or debug builds (and hasn't had it for 6 years). Let's keep it that way :) Differential Revision: https://reviews.llvm.org/D115941
-
Philip Reames authored
If we have a call whose only side effect is a write to a location which is known to be dead, we can sink said call to the users of the call's result value. This is analogous to the recent changes to delete said calls if unused, but framed as a sinking transform instead. Differential Revision: https://reviews.llvm.org/D116200
-
Tom Stellard authored
This adds a github action that will mention a team called issue-subscribers-$LABEL whenever a label is added to a bug. Mentioning the team will automatically subscribe all team members to the bug. Differential Revision: https://reviews.llvm.org/D114412
-
Fangrui Song authored
This complements D111365. D111365 did not demote isUsedInRegularObj lazy symbols just to work around a --symbol-ordering-file diagnostic quirk. The quirk was dropped by 00dd2d15, so we can demote all lazy symbols now, not just the isUsedInRegularObj ones.
-
Nico Weber authored
This reverts commit 859ebca7. The change contained many unrelated changes and e.g. restored unit test failes for the old lld port.
-
Groverkss authored
This patch adds clearAndCopyFrom to IntegerPolyhedron. This requires moving LLVM-style RTTI from FlatAffineConstraints to IntegerPolyhedron. This patch is part of a series of patches to move presburger math to Presburger directory. Reviewed By: arjunp Differential Revision: https://reviews.llvm.org/D116533
-
Sanjay Patel authored
This does not appear to cause any problems, and it fixes #50910 Extra tests with a trunc user were added with: 3a239379 ...but they don't match either way, so there's an opportunity to improve the matching further.
-
Alex Zinenko authored
Verify only the outer type being LLVM-compatible, the elemental types if present are already checked by the type verifiers. This makes some LLVM dialect operations compatible with mixed-dialect types that appear during progressive lowering. Reviewed By: wsmoses Differential Revision: https://reviews.llvm.org/D116671
-
David Salinas authored
This reverts commit 640beb38. That commit caused performance degradtion in Quicksilver test QS:sGPU and a functional test failure in (rocPRIM rocprim.device_segmented_radix_sort). Reverting until we have a better solution to s_cselect_b64 codegen cleanup Change-Id: Ibf8e397df94001f248fba609f072088a46abae08 Reviewed By: kzhuravl Differential Revision: https://reviews.llvm.org/D115960 Change-Id: Id169459ce4dfffa857d5645a0af50b0063ce1105
-
Nico Weber authored
-
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
-