- Feb 01, 2022
-
-
Nicolas Vasilache authored
Somehow the test introduced in https://reviews.llvm.org/D118006 produces the expected result but running through lli with Intel SDE activated sneaks in an error code 2 (before this commit) or an error code 10 (after this commit). The test as is is still meaningful in that the LLVMIR generation would crash if the `elementtype` is set improperly. Still, this should run with lli turned on.
-
Nico Weber authored
-
Alexander Shaposhnikov authored
-
Alexander Shaposhnikov authored
-
Alexander Shaposhnikov authored
-
Alexander Shaposhnikov authored
-
Simon Pilgrim authored
As raised on rGffd0e464, if x is poison, this fold is still ok.
-
Alexander Shaposhnikov authored
-
Fraser Cormack authored
-
Fraser Cormack authored
-
Fraser Cormack authored
Inspired by a recent Discourse post on undef vs. poison usage, this series of patches should reduce the number of undefs in LLVM tests by around 10%. Only undef vector operands to insertelement/shufflevector have been handled, which are by far the most common we've got. The switchover is split into 3 fairly arbitrary clusters to make it slightly more manageable: vector predication, fixed-length vectors, scalable vectors.
-
Benjamin Kramer authored
It doesn't like implicit `this` in generic lambdas.
-
Nicolas Vasilache authored
This revision adds enough support to allow InlineAsmOp to work properly with indirect memory constraints "*m". These require an explicit "elementtype" TypeAttr on the operands to pass LLVM verification and need to be provided. Reviewed By: bkramer Differential Revision: https://reviews.llvm.org/D118006
-
Nikita Popov authored
The check lines were in the wrong order.
-
Prashant Kumar authored
Extract the division representation from equality constraints. For example: 32*k == 16*i + j - 31 <-- k is the localVariable expr = 16*i + j - 31, divisor = 32 k = (16*i + j - 32) floordiv 32 The dividend of the division is set to [16, 1, -32] and the divisor is set to 32. Reviewed By: Groverkss Differential Revision: https://reviews.llvm.org/D117959 -
Benjamin Kramer authored
This reverts commit afaaecc8. Crashes when compiling SciPy, test case https://reviews.llvm.org/P8276
-
tyb0807 authored
Currently, ARMBaseInstrInfo::getInstSizeInBytes() uses hard-coded instruction size for some pseudo-instructions, while this information should ideally be found in ARMInstrInfo.td, ARMInstrThumb(2).td files (which can be accessed via MCInstrDesc). Hence, the .td files should be updated and no hard-coded instruction sizes should be used by getInstSizeInBytes() anymore. Differential Revision: https://reviews.llvm.org/D118009
-
tyb0807 authored
Currently, AArch64InstrInfo::getInstSizeInBytes() uses hard-coded instruction size for some pseudo-instructions, while this information should ideally be found in AArch64InstrInfo.td file (which can be accessed via MCInstrDesc). Hence, the .td file should be updated and no hard-coded instruction sizes should be used by getInstSizeInBytes() anymore. Differential Revision: https://reviews.llvm.org/D117970
-
Fraser Cormack authored
This test shows a loop, whose preheader uses a SEW=64, LMUL=1 vector operation. The loop body starts off with another SEW=64, LMUL=1 VADD vector operation, before switching to a SEW=32, LMUL=1/2 vector store instruction. We can see that the VSETVLI insertion pass omits a VSETVLI before the VADD (thinking it inherits its configuration from the preheader) but does place a SEW=32, LMUL=1/2 VSETVLI before the store. This results in a miscompilation as when the loop comes back around, the VADD is incorrectly configured with SEW=32, LMUL=1/2. It appears to be a bad load/store optimization, as replacing the vector store with an SEW=32, LMUL=1/2 VADD does correctly insert a VSETVLI. The issue is therefore possibly arising from canSkipVSETVLIForLoadStore. Differential Revision: https://reviews.llvm.org/D118629
-
David Spickett authored
These tests appear to be causing timeouts on our silent Thumbv7 bot: https://lab.llvm.org/staging/#/builders/162/builds/260 It is possible they would complete given enough time. value-profile-switch seems to take a long time even on a powerful Armv8 machine.
-
Bjorn Pettersson authored
Do "simplifyShift" and "FoldConstantArithmetic" folds for the SSHLSAT and USHLSAT DAG nodes. This includes folds such as: (shlsat undef/poison, x) -> 0 (shlsat x, undef/poison) -> undef (shlsat x, too_large_shamt) -> undef (shlsat 0, x) -> 0 (shlsat x, 0) -> x (shlsat c1, c2) -> c3 Differential Revision: https://reviews.llvm.org/D118603
-
Bjorn Pettersson authored
-
Florian Hahn authored
This removes another instance of recipe execution still relying on the cost model. Depends on D116554. Reviewed By: david-arm Differential Revision: https://reviews.llvm.org/D116656
-
David Sherwood authored
I have updated TargetLowering::isConstTrueVal to also consider SPLAT_VECTOR nodes with constant integer operands. This allows the optimisation to also work for targets that support scalable vectors. Differential Revision: https://reviews.llvm.org/D117210
-
Nikita Popov authored
This shows a miscompile in the current argpromotion implementation: We may speculatively execute overaligned loads.
-
Jay Foad authored
In some cases StructurizeCFG inserts i1 xor instructions to invert predicates. Add a quick loop to clean these up afterwards if we can get away with modifying an existing compare instruction instead. (StructurizeCFG is generally run late in the pipeline so instcombine does not clean them up for us.) Differential Revision: https://reviews.llvm.org/D118623
-
Nikita Popov authored
-
Nikita Popov authored
-
David Green authored
-
Siva Chandra authored
This allows us to enable rmdir, mkdir, mkdirat, unlink and unlinkat for aarch64.
-
Johannes Doerfert authored
A call base can be a floating value if we talk about the instruction and not the return value. This distinction was not made before but is important for liveness, e.g., a call site return value might be unused (=dead) but the call site is not.
-
Markus Lavin authored
When exporting textual IR during reduction the ShouldPreserveUseListOrder parameter of the IR printer should be set to get predictable results. Differential Revision: https://reviews.llvm.org/D118585
-
Johannes Doerfert authored
-
Marek Kurdej authored
Fixes https://github.com/llvm/llvm-project/issues/52772. This patch fixes the formatting of the code: ``` auto aaaaaaaaaaaaaaaaaaaaa = {}; auto b = g([] { return; }); ``` which should be left as is, but before this patch was formatted to: ``` auto aaaaaaaaaaaaaaaaaaaaa = {}; auto b = g([] { return; }); ``` Reviewed By: MyDeveloperDay, HazardyKnusperkeks Differential Revision: https://reviews.llvm.org/D115972
-
Fangrui Song authored
-
Siva Chandra Reddy authored
-
Fangrui Song authored
My x86-64 lld executable is 8KiB smaller.
-
Johannes Doerfert authored
-
Fangrui Song authored
My x86-64 lld executable is 1.1KiB smaller.
-
Marek Kurdej authored
Fixes https://github.com/llvm/llvm-project/issues/34626. Before, the include sorter would break the code: ``` #include <stdio.h> #include <stdint.h> /* long comment */ ``` and change it into: ``` #include <stdint.h> /* long #include <stdio.h> comment */ ``` This commit handles only the most basic case of a single block comment on an include line, but does not try to handle all the possible edge cases with multiple comments. Reviewed By: HazardyKnusperkeks Differential Revision: https://reviews.llvm.org/D118627
-