- Jan 10, 2022
-
-
Stephan Herhut authored
We allow the omission of a map in memref.reinterpret_cast under the assumption, that the cast might cast to an identity layout. This change adds verification that the static knowledge that is present in the reinterpret_cast supports this assumption. Differential Revision: https://reviews.llvm.org/D116601
-
David Sherwood authored
This patch fixes up an issue with InnerLoopVectorizer::getOrCreateVectorTripCount whereby we weren't correctly generating the runtime trip count for scalable vectors when tail-folding. It also removes some asserts in the tail-folding path for cases when the VF is not scalable. In this patch I have only permitted tail-folding to be enabled explicitly for scalable vectors when the user has specified one of the following flags: -prefer-predicate-over-epilogue=predicate-dont-vectorize -prefer-predicate-over-epilogue=predicate-else-scalar-epilogue For now it's best not to enable tail-folding with scalable vectors for low trip counts or when optimising for code size, since there has been no analysis on whether this is worth it. Various tests have been added here: Transforms/LoopVectorize/AArch64/sve-tail-folding.ll Transforms/LoopVectorize/AArch64/sve-tail-folding-forced.ll The tests cannot be target independent because they require masked load/store support, i.e. TTI.isLegalMaskedLoad and TTI.isLegalMaskedStore need to return true. Differential Revision: https://reviews.llvm.org/D113003
-
Cullen Rhodes authored
Codegen of added testcase before this patch: ptrue p0.s cmpgt p1.s, p0/z, z0.s, z1.s cmpge p2.s, p0/z, z2.s, z1.s and p0.b, p0/z, p1.b, p2.b ret Patterns originally authored by Will Lovett. Reviewed By: david-arm Differential Revision: https://reviews.llvm.org/D116749
-
Shraiysh Vaishay authored
This patch changes the syntax of omp.atomic.read to take the address of destination, instead of having the value in a result. This will allow using omp.atomic.read operation within an omp.atomic.capture operation thus making its implementation less complex. Reviewed By: peixin Differential Revision: https://reviews.llvm.org/D116396
-
David Sherwood authored
Differential Revision: https://reviews.llvm.org/D116810
-
Sam McCall authored
The idea is that the feature will always be advertised at the LSP level, but depending on config we'll return partial or no responses. We try to avoid doing the analysis for hints we're not going to return. Examples of syntax: ``` InlayHints: Enabled: No --- InlayHints: ParameterNames: No --- InlayHints: ParameterNames: Yes DeducedTypes: Yes ``` Differential Revision: https://reviews.llvm.org/D116713
-
Sam McCall authored
This allows the body to be parsed. An special-case that would replace a missing if condition with OpaqueValueExpr was removed as it's now redundant (unless recovery-expr is disabled). For loops are not handled at this point, as the parsing is more complicated. Differential Revision: https://reviews.llvm.org/D113752
-
Florian Hahn authored
9345ab3a updated generateOverflowCheck to skip creating checks that always evaluate to false. This in turn means that we only need to compute |Step| * Trip count if the result of the multiplication is actually used. Sink the multiplication into ComputeEndCheck, so it is only created when there's an actual check.
-
LLVM GN Syncbot authored
-
Haojian Wu authored
Adds the paren source location, and removes the hack in clangd. Differential Revision: https://reviews.llvm.org/D116793
-
mydeveloperday authored
https://github.com/llvm/llvm-project/issues/46505 The presence of a lambda in an argument template list ignored the [] as a lambda at all, this caused the contents of the <> to be incorrectly analyzed. ``` struct Y : X < [] { return 0; } > {}; ``` Fixes: #46505 Reviewed By: curdeius Differential Revision: https://reviews.llvm.org/D116806
-
Lang Hames authored
JITLink depends on OrcShared as of c0fdc748. This should fix the build failure at https://lab.llvm.org/buildbot#builders/61/builds/19796.
-
Vincent Lee authored
This fixes a windows build failure from D115416.
-
Nikita Popov authored
We currently have two similar implementations of this concept: isNoAliasCall() only checks for the noalias return attribute. isNoAliasFn() also checks for allocation functions. We should switch to only checking the attribute. SLC is responsible for inferring the noalias return attribute for non-new allocation functions (with a missing case fixed in https://github.com/llvm/llvm-project/commit/348bc76e3548c52dbcd442590ca0a7f5b09b7534). For new, clang is responsible for setting the attribute, if -fno-assume-sane-operator-new is not passed. Differential Revision: https://reviews.llvm.org/D116800
-
Lang Hames authored
runFinalizeActions takes an AllocActions vector and attempts to run its finalize actions. If any finalize action fails then all paired dealloc actions up to the failing pair are run, and the error(s) returned. If all finalize actions succeed then a vector containing the dealloc actions is returned. runDeallocActions takes a vector<WrapperFunctionCall> containing dealloc action calls and runs them all, returning any error(s). These helpers are intended to simplify the implementation of JITLinkMemoryManager::InFlightAlloc::finalize and JITLinkMemoryManager::deallocate overrides by taking care of execution (and potential roll-back) of allocation actions.
-
Craig Topper authored
[RISCV] Generalize (srl (and X, 0xffff), C) -> (srli (slli X, (XLen-16), (XLen-16) + C) optimization. This can be generalized to (srl (and X, C2), C) -> (srli (slli X, (XLen-C3), (XLen-C3) + C). Where C2 is a mask with C3 trailing ones. This can avoid constant materialization for C2. This is beneficial even when C2 can be selected to ANDI because the SLLI can become C.SLLI, but C.ANDI cannot cover all the immediates of ANDI. This also enables CSE in some cases of i8 sdiv by constant codegen.
-
Stephen Neuendorffer authored
LLVM_OPTIMIZED_TABLEGEN results in MLIR_TABLEGEN_EXE pointing to an absolute path in the build directory. This doesn't work when exporting to an install directory. This patch fixes the exported information for an install directory to refer to the installed mlir-tblgen. (Note that this is probably a debug version if LLVM_OPTIMIZED_TABLEGEN is set)
-
Pavel Kosov authored
Patch fixes scheduling of FP load instructions with pre/post increment adding WriteAdr for address operand. Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D116361 OS Laboratory. Huawei Russian Research Institute. Saint-Petersburg
-
Jonas Devlieghere authored
-
Dave Lee authored
If LLVM is configured without X86 as one of its TARGETS_TO_BUILD, then lldb will crash when using X86 disassembler (which it does while running `image show-unwind`).
-
Zi Xuan Wu authored
Lower global symbols such as call/external symbol. Lower other leaf DAG node such as frame address/block address/jumptable/vastart. Normally some leaf symbols need reside in constant pool as ABI prefers, and are addressed by lrw or jsri instructions. Every symbol in constant pool is lowered with one entry in target constant pool. The entry has different type corresponding to different leaf node such as blockaddress, jumptable, or global value.
-
Siva Chandra Reddy authored
Other threads related tests have been using the API that is tested here without any problems. The main reason for disabling the test has also been fixed many months ago.
-
Dave Lee authored
-
Jonas Devlieghere authored
This patch removes most of the reproducer instrumentation. It keeps around the LLDB_RECORD_* macros for logging. See [1] for more details. [1] https://lists.llvm.org/pipermail/lldb-dev/2021-September/017045.html Differential revision: https://reviews.llvm.org/D116847
-
Dave Lee authored
While working on D116788 (properly error out of `frame var`), this libstdc++ specific `frame var` invocation was found in the tests. This test is in the generic directory, but has this one case that requires libstdc++. The fix here is to put the one `expect()` inside of a condition that checks for libstdc++. Differential Revision: https://reviews.llvm.org/D116901
-
Dave Lee authored
This test checks for `aarch64` but the lit config could also contain `arm64`. This change adds `arm64` to make the test pass in all cases. Differential Revision: https://reviews.llvm.org/D116912
-
Dave Lee authored
-
Craig Topper authored
Similar for (sra (sext_inreg X, i8), C). With Zbb, sext_inreg of i8 and i16 are legal for sext.b and sext.h. This transform makes the Zbb codegen the same as without Zbb. The shifts are more compressible. This also exposes an opportunity for CSE with another slli in the i16 sdiv by constant codegen.
-
Alexander Shaposhnikov authored
This diff adds first bits to support relocation relaxations for AArch64 discussed on https://github.com/ARM-software/abi-aa/pull/106. In particular, the case of adrp x0, :got: symbol ldr x0, [x0, :got_lo12: symbol] is handled. Test plan: make check-all Differential revision: https://reviews.llvm.org/D112063
-
jacquesguan authored
Disable EEW=64 for vector index load/store when XLEN=32. Differential Revision: https://reviews.llvm.org/D106518
-
jinge90 authored
indirect branch tracking(IBT) feature aiming to ensure the target address of an indirect jump/call is not tampered. When IBT is enabled, each function or target of any indirect jump/call will start with an 'endbr32/64' instruction otherwise the program will crash during execution. To build an application with CET enabled. we need to ensure: 1. build the source code with "-fcf-protection=full" 2. all the libraries linked with .o files must be CET enabled too This patch aims to enable CET for compiler-rt builtins library, we add an option "COMPILER_RT_ENABLE_CET" whose default value is OFF to enable CET for compiler-rt in building time and when this option is "ON", "-fcf-protection=full" is added to BUILTINS_CFLAG and the "endbr32/64" will be placed in the beginning of each assembly function. We also enabled CET for crtbegin, crtend object files in this patch. Reviewed by: MaskRay, compnerd, manojgupta, efriedma Differential Rev...
-
Jim Lin authored
New type str 'y' added from D76077. But missed its description in comments. Reviewed By: stuij Differential Revision: https://reviews.llvm.org/D116509
-
Craig Topper authored
We can use zext.h with Zbb, but srli/slli may offer more opportunities for compression.
-
Esme-Yi authored
Summary: The patch adds support for yaml2obj parsing auxiliary symbols for XCOFF. Since the test cases of this patch are interdependent with D113825 ([llvm-readobj][XCOFF] dump auxiliary symbols), test cases of this patch will be committed after D113825 is committed. Reviewed By: jhenderson, DiggerLin Differential Revision: https://reviews.llvm.org/D113552
-
Chen Zheng authored
Reviewed By: qiucf Differential Revision: https://reviews.llvm.org/D114778
-
Craig Topper authored
These nodes should saturate to their saturating VT. We can use this information to know the bits past the VT are all zeros or all sign bits. I think we might only have test coverage for the unsigned case. I'll verify and add tests. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D116870
-
Alexander Shaposhnikov authored
This diff renames emitCalleeSavedFrameMoves to avoid conflicts with non-virtual methods of derived classes having the same name but different semantics. E.g. the class AArch64FrameLowering used to have (non-virtual) "emitCalleeSavedFrameMoves" but it started to override TargetFrameLowering::emitCalleeSavedFrameMoves after https://github.com/llvm/llvm-project/commit/c3e6555616 though its usage and semantics didn't change. P.S. for x86 there was no conflict because the signature of non-virtual X86FrameLowering::emitCalleeSavedFrameMoves is different Test plan: make check-all Differential revision: https://reviews.llvm.org/D114140
-
Mehdi Amini authored
-
Mehdi Amini authored
-
Mehdi Amini authored
-