- Jan 10, 2022
-
-
Florian Hahn authored
This patch reduces the number of times IRBuilders need to be constructed in SROA.cpp by passing existing ones by reference to the appropriate places.
-
Haojian Wu authored
Differential Revision: https://reviews.llvm.org/D116919
-
Haojian Wu authored
Fixes https://github.com/clangd/clangd/issues/502 Differential Revision: https://reviews.llvm.org/D116922
-
Alex Zinenko authored
-
Florian Hahn authored
9345ab3a updated generateOverflowCheck to skip creating checks that always evaluate to false. This in turn means that we only need to create TruncTripCount if it is actually used. Sink the TruncTripCount creating into ComputeEndCheck, so it is only created when there's an actual check.
-
Jeremy Morse authored
This patch adds a "DexCommandLine" command, allowing dexter tests to specify what command line options the test should be started with. I've also plumbed it through into the debuggers. This eases the matter of pointing Dexter at larger tests, or controlling different paths through a single binary from a Dexter test. Differential Revision: https://reviews.llvm.org/D115330
-
Mubashar Ahmad authored
An option has been added to Clang to enable or disable the PMU v3.4 architecture extension. Differential Revision: https://reviews.llvm.org/D116748
-
Sam McCall authored
A function call `unresolved()` in C will generate an implicit declaration of the missing function and warn `ext_implicit_function_decl` or so. (Compared to in C++ where we get `err_undeclared_var_use`). We want to try to resolve these names. Unfortunately typo correction is disabled in sema for performance reasons unless this warning is promoted to error. (We need typo correction for include-fixer.) It's not clear to me where a switch to force this correction on should go, include-fixer is kind of a hack. So hack more by telling sema we're promoting them to error. Fixes https://github.com/clangd/clangd/issues/937 Differential Revision: https://reviews.llvm.org/D115490
-
Alex Zinenko authored
During iterative inlining of the functions in a multi-step call chain, the inliner could add the same call operation several times to the worklist, which led to use-after-free when this op was considered more than once. Closes #52887. Reviewed By: wsmoses Differential Revision: https://reviews.llvm.org/D116820
-
David Green authored
This commit caused performance regressions due to differences in the expected code during loop flattening. Reverting it until the fix is ready, which hopefully wont take too long. This reverts commit 86825fc2.
-
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
-