- Aug 15, 2021
-
-
Dávid Bolvanský authored
-Wbool-operation was moved to -Wall and test file needs to be adjusted.
-
Dávid Bolvanský authored
To keep compatibility with GCC.
-
Paul Walker authored
[LoopVectorize] Don't emit remarks about lack of scalable vectors unless they're specifically requested. Previously we emitted a "does not support scalable vectors" remark for all targets whenever vectorisation is attempted. This pollutes the output for architectures that don't support scalable vectors and is likely confusing to the user. Instead this patch introduces a debug message that reports when scalable vectorisation is allowed by the target and only issues the previous remark when scalable vectorisation is specifically requested, for example: #pragma clang loop vectorize_width(2, scalable) Differential Revision: https://reviews.llvm.org/D108028
-
Nikita Popov authored
This is a non-intrusive fix for https://bugs.llvm.org/show_bug.cgi?id=51476 intended for backport to the 13.x release branch. It expands on the current hack by distinguishing between CmpValue of 0, 1 and 2, where 0 and 1 have the obvious meaning and 2 means "anything else". The new optimization from D98564 should only be performed for CmpValue of 0 or 1. For main, I think we should switch the analyzeCompare() and optimizeCompare() APIs to use int64_t instead of int, which is in line with MachineOperand's notion of an immediate, and avoids this problem altogether. Differential Revision: https://reviews.llvm.org/D108076
-
Dávid Bolvanský authored
This reverts commit 43578521. Still same compile time issues for -O0 -g, eg. +1.3% for sqlite3.
-
Andrzej Warzynski authored
`CompilerInstance` is a more appropriate place for a key component of the frontend like `Semantics`. This change opens a path for us to introduce new frontend actions that will also run semantics, but for which inheriting from `PrescanAndSemaAction` wouldn't make much sense. For example, for code-gen actions we plan to introduce a dedicate hierarchy of action classes. I've also added a doxyment for `CompilerInstance` to add a bit of context for this change (and also make future refactoring more informed). As `CompilerInstance` in Flang has been inspired by its counterpart in Clang, this comment is roughly a verbatim copy of the comment in Clang (with some adjustments from me). Credits to Daniel Dunbar for the great design and the original comment. Differential Revision: https://reviews.llvm.org/D108035
-
Rainer Orth authored
`Posix/unpoison-alternate-stack.cpp` currently `XPASS`es on Solaris. The `XFAIL` had already been removed in D97933 <https://reviews.llvm.org/D97933>, but reintroduced by commit f03d2960 <https://reviews.llvm.org/rGf03d29601e0951da2c88f07d4234128e14e87870> which was never posted or justified. Given the `XPASS`, this obviously wasn't NFC, so I suggest to remove it again. Tested on `amd64-pc-solaris2.11` and `x86_64-pc-linux-gnu`. Differential Revision: https://reviews.llvm.org/D108030
-
Anshil Gandhi authored
Implements ORE in AtomicExpand pass to report atomics generating a compare and swap loop. Differential Revision: https://reviews.llvm.org/D106891
-
Itay Bookstein authored
Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D107988
-
Vitaly Buka authored
-
Vitaly Buka authored
-
Craig Topper authored
Fixes PR51324.
-
Dmitry Vyukov authored
Currently we only support %z and %ll width modifiers, but surprisingly not %l. This makes it impossible to print longs (sizeof(long) not necessary equal to sizeof(size_t)). We had some printf's that printed longs with %zu, but that's wrong and now with __attribute__((format)) in place they are flagged by compiler. So we either have a choice of doing static_cast<uptr>(long) everywhere or add %l. Adding %l looks better, that's a standard modifier. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D108066
-
Wang, Pengfei authored
Enable FP16 binary operator instructions. Ref.: https://software.intel.com/content/www/us/en/develop/download/intel-avx512-fp16-architecture-specification.html Reviewed By: LuoYuanke Differential Revision: https://reviews.llvm.org/D105264
-
Vitaly Buka authored
This makes it consistent with uintptr_t.
-
Vitaly Buka authored
-
Craig Topper authored
Previously we just used {}, but that doesn't work in situations like this. if (1) _MM_EXTRACT_FLOAT(d, x, n); else ... The semicolon would terminate the if. -
Craig Topper authored
-
Rainer Orth authored
`LLVM :: Other/lit-quoting.txt` currently `FAIL`s on Solaris: llvm/test/Other/lit-quoting.txt:8:9: error: CHECK2: expected string not found in input CHECK2: {{^a\[b\\c$}} ^ <stdin>:1:1: note: scanning from here a[b ^ This happens because echo with backslashes or special characters is unportable, as extensively documented in the Autoconf manual. In the case at hand, `echo 'a[b\c'` yields `a[b\c` on Linux, but `a[b` (no newline) on Solaris. This patch fixes this by using the portable alternative suggested in the Autoconf manual. Tested on `amd64-pc-solaris2.11`, `sparcv9-sun-solaris2.11`, and `x86_64-pc-linux-gnu`. Differential Revision: https://reviews.llvm.org/D108031 -
Nico Weber authored
Only one person committed with these email addresses, so there's no need to use the map-different-names-for-one-email-address syntax. No behavior change. Differential Revision: https://reviews.llvm.org/D108007
-
David Green authored
This tests code starting from smin/smax, as opposed to the icmp/select form. Also adds a ARM MVE phase ordering test for vectorizing to sadd.sat from the original IR.
-
Stephen Neuendorffer authored
While the changes are extensive, they basically fall into a few categories: 1) Moving the TestDialect itself. 2) Updating C++ code in tablegen to explicitly use ::mlir, since it will be put in a headers that shouldn't expect a 'using'. 3) Updating some generic MLIR Interface definitions to do the same thing. 4) Updating the Tablegen generator in a few places to be explicit about namespaces 5) Doing the same thing for llvm references, since we no longer pick up the definitions from mlir/Support/LLVM.h Differential Revision: https://reviews.llvm.org/D88251
-
Nikita Popov authored
This is enabled by default. Drop explicit uses in preparation for removing the option. Also drop RUN lines that are now the same (typically modulo a -verify-memoryssa option).
-
luxufan authored
This patch unify optimizeELF_x86_64_GOTAndStubs and optimizeMachO_x86_64_GOTAndStubs into a pure optimize_x86_64_GOTAndStubs Reviewed By: lhames Differential Revision: https://reviews.llvm.org/D108025
-
- Aug 14, 2021
-
-
Kazu Hirata authored
Identified with readability-redundant-string-cstr.
-
Owen authored
This is a follow-up to https://reviews.llvm.org/D107950 which missed user-defined types in K&R C. Differential Revision: https://reviews.llvm.org/D107961
-
eopXD authored
The current LIR does not deal with runtime-determined memset-size. This patch utilizes SCEV and check if the PointerStrideSCEV and the MemsetSizeSCEV are equal. Before comparison the pass would try to fold the expression that is already protected by the loop guard. Testcase file `memset-runtime.ll`, `memset-runtime-debug.ll` added. This patch deals with proper loop-idiom. Proceeding patch wants to deal with SCEV-s that are inequal after folding with the loop guards. Reviewed By: lebedev.ri, Whitney Differential Revision: https://reviews.llvm.org/D107353
-
mydeveloperday authored
[clang-tidy] [PR50069] readability-braces-around-statements doesn't work well with [[likely]] [[unlikely]] https://bugs.llvm.org/show_bug.cgi?id=50069 When clang-tidy sees: ``` if (true) [[unlikely]] { ... } ``` It thinks the braces are missing and add them again. ``` if (true) { [[unlikely]] { ... } } ``` This revision aims to prevent that incorrect code generation Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D105479
-
mydeveloperday authored
clang/docs/tool/dump_format_style.py was not run as part of {D99840} Bring ClangFormatStyleOptions.rst back in line. Reviewed By: HazardyKnusperkeks Differential Revision: https://reviews.llvm.org/D107958 -
Dawid Jurczak authored
Another simple cleanups set in DSE. CheckCache is removed since 1f114500 and in consequence KnownNoReads is useless. Also update description of MemorySSAScanLimit which default value is 150 instead 100. Differential Revision: https://reviews.llvm.org/D107812
-
Lang Hames authored
The existing relaxable edges all assume a REX prefix. ELF includes non-REX relaxations, so rename these edges to make room for the new kinds.
-
Lang Hames authored
ELF allows for branch optimizations other than bypass, so rename this edge kind to avoid any confusion.
-
Anshil Gandhi authored
This reverts commit c4e5425a.
-
Anshil Gandhi authored
Implements ORE in AtomicExpandPass to report atomics generating a compare and swap loop. Differential Revision: https://reviews.llvm.org/D106891
-
liuke authored
The overload of the constructor will repeatedly fix the member variables that need to be initialized. Removed the duplicate '{}'. ``` struct A { A() {} A(int) {} int _var; // int _var{}{}; <-- wrong fix }; ``` Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D107641 -
David Blaikie authored
Improves maintainability (edit/modify the tests without recompiling) and error messages (previously the failure would be a gtest failure mentioning nothing of the input or desired text) and the option to improve tests with more checks. (maybe these tests shouldn't all be in separate files - we could probably have DWARF yaml that contains multiple errors while still being fairly maintainable - the various invalid offsets (ref_addr, rnglists, ranges, etc) could probably be all in one test, but for the simple sake of the migration I just did the mechanical thing here)
-
Jessica Paquette authored
This is a fairly common pattern: ``` %mask = G_CONSTANT iN <mask val> %add = G_ADD %lhs, %rhs %and = G_AND %add, %mask ``` We have combines to eliminate G_AND with a mask that does nothing. If we combined the above to this: ``` %mask = G_CONSTANT iN <mask val> %narrow_lhs = G_TRUNC %lhs %narrow_rhs = G_TRUNC %rhs %narrow_add = G_ADD %narrow_lhs, %narrow_rhs %ext = G_ZEXT %narrow_add %and = G_AND %ext, %mask ``` We'd be able to take advantage of those combines using the trunc + zext. For this to work (or be beneficial in the best case) - The operation we want to narrow then widen must only be used by the G_AND - The G_TRUNC + G_ZEXT must be free - Performing the operation at a narrower width must not produce a different value than performing it at the original width *after masking.* Example comparison between SDAG + GISel: https://godbolt.org/z/63jzb1Yvj At -Os for AArch64, this is a 0.2% code size improvement on CTMark/pairlocalign. Differential Revision: https://reviews.llvm.org/D107929
-
Matt Arsenault authored
This can only give an imperfect approximation, but is enough to avoid crashing in places where we call into EVT functions starting from LLTs.
-
Craig Topper authored
-
Matt Arsenault authored
-