- Mar 18, 2021
-
-
Alexander Belyaev authored
Also use `ArrayAttr` to pass iterator pass to the TiledLoopOp builder. Differential Revision: https://reviews.llvm.org/D98871
-
Sid Manning authored
Allow inline assembly code to referece cs0 and cs1.
-
LLVM GN Syncbot authored
-
caoming.roy authored
Implement command-line options -map Reviewed By: int3, #lld-macho Differential Revision: https://reviews.llvm.org/D98323
-
Pavel Labath authored
Fix the test to account for recent test infrastructure changes, and make it run locally to increase the chances of it continuing to work in the future.
-
Andrzej Warzynski authored
Adds support for `-fget-symbols-sources` in the new Flang driver. All relevant tests are updated to use the new driver when `FLANG_BUILD_NEW_DRIVER` is set. `RUN` lines in tests are updated so `-fsyntax-only` comes before `-fget-symbols-sources`. That's because: * both `-fsyntax-only` and `-fget-symbols-sources` are action flags, and * the new driver, flang-new, will only consider the right-most action flag. In other words, this change is needed so that the tests work with both `f18` (requires both flags) and `flang-new` (only considers the last action flag). Differential Revision: https://reviews.llvm.org/D98191 -
Andrew Savonichev authored
Delay the issue of a new instruction if that leads to out-of-order commits of writes. This patch fixes the problem described in: https://bugs.llvm.org/show_bug.cgi?id=41796#c3 Differential Revision: https://reviews.llvm.org/D98604
-
Jay Foad authored
-
David Truby authored
Co-authored-by:
Kiran Chandramohan <kiran.chandramohan@arm.com> Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D92327
-
Simon Pilgrim authored
-
Matt Arsenault authored
Pass through the original argument IR value in order to preserve the aliasing information in the memcpy memory operands.
-
Matt Arsenault authored
byval requires an implicit copy between the caller and callee such that the callee may write into the stack area without it modifying the value in the parent. Previously, this was passing through the raw pointer value which would break if the callee wrote into it. Most of the time, this copy can be optimized out (however we don't have the optimization SelectionDAG does yet). This will trigger more fallbacks for AMDGPU now, since we don't have legalization for memcpy yet (although we should stop using byval anyway).
-
Alexey Bataev authored
If SLP vectorizer tries to extend the scheduling region and runs out of the budget too early, but still extends the region to the new ending instructions (i.e., it was able to extend the region for the first instruction in the bundle, but not for the second), the compiler need to recalculate dependecies in full, just like if the extending was successfull. Without it, the schedule data chunks may end up with the wrong number of (unscheduled) dependecies and it may end up with the incorrect function, where the vectorized instruction does not dominate on the extractelement instruction. Differential Revision: https://reviews.llvm.org/D98531
-
Alexey Lapshin authored
This patch is follow-up for D91028. It implements direct writing into the output stream for wasm. Depends on D91028 Differential Revision: https://reviews.llvm.org/D95478
-
Martin Storsjö authored
If producing libraries with an arch suffix (i.e. if LLVM_ENABLE_PER_TARGET_RUNTIME_DIR isn't set), we append the architecture name. However, for arm, clang doesn't look for libraries with the full architecture name, but only looks for "arm" and "armhf". Try to deduce what the full target triple might have been, and use that for deciding between "arm" and "armhf". This tries to reapply this bit from D98173, that had to be reverted in 7b153b43 due to affecting how the builtins themselves are compiled, not only affecting the output file name. Differential Revision: https://reviews.llvm.org/D98452
-
Max Kazantsev authored
-
Max Kazantsev authored
Just makes code simpler.
-
Max Kazantsev authored
Provides API that allows to check predicate for being true or false with one call. Current implementation is naive and just calls isKnownPredicate twice, but further we can rework this logic trying to use one check to prove both facts.
-
Thomas Preud'homme authored
LLVM test CodeGen/AArch64/machine-outliner-retaddr-sign-thunk.ll uses a string substitution block that contains a regex matching block. This seems like as a copy/paste from other similar test where the match also defines a variable, hence the [[]] syntax. In this case however this is a CHECK-NOT variable so nothing should match. No variable definition is thus expected and the square brackets can be dropped. Reviewed By: chill Differential Revision: https://reviews.llvm.org/D98853
-
Sven van Haastregt authored
The `int` and `long` versions of these builtins already provide the necessary overloads for `intptr_t` and `uintptr_t` arguments, as `ASTContext` defines `atomic_(u)intptr_t` in terms of the `int` or `long` types. Prior to this patch, calls to those builtins with particular argument types resulted in call-is-ambiguous errors. Differential Revision: https://reviews.llvm.org/D98520
-
Thomas Preud'homme authored
Clang test acle_sve_ld1.sh is missing the colon in one of the string variable definition separating the variable name from the regex. This leads the substitution block to be parsed as a numeric variable use. Reviewed By: sdesmalen Differential Revision: https://reviews.llvm.org/D98852
-
Sanjay Patel authored
This makes the induction part of the loop vectorizer match the reduction part. We do not need all of the fast-math-flags. For example, there are some that clearly are not in play like arcp or afn. If we want to make FMF constraints consistent across the IR optimizer, we might want to add nsz too, but that's up for debate (users can't expect associative FP math and preservation of sign-of-zero at the same time?). The calling code was fixed to avoid miscompiles with: 1bee5497 Differential Revision: https://reviews.llvm.org/D98708
-
Balazs Benics authored
After the import, we did not copy the `TSCSpec`. This commit resolves that. Reviewed By: balazske Differential Revision: https://reviews.llvm.org/D98707
-
Valeriy Savchenko authored
-
Elizabeth Andrews authored
This patch is a second attempt at fixing a link error for MSVC entry points when calling conventions are specified using a flag. Calling conventions specified using flags should not be applied to MSVC entry points. The default calling convention is set in this case. The default calling convention for MSVC entry points main and wmain is cdecl. For WinMain, wWinMain and DllMain, the default calling convention is stdcall on 32 bit Windows. Explicitly specified calling conventions are applied to MSVC entry points. For MinGW, the default calling convention for all MSVC entry points is cdecl. First attempt: 4cff1b40 Revert of first attempt: bebfc3b9 Differential Revision: https://reviews.llvm.org/D97941
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
Alexey Lapshin authored
This patch removes creation of the resulting file from the executeObjcopyOnBinary() function. For the most use cases, the executeObjcopyOnBinary receives output file as a parameter - raw_ostream &Out. The splitting .dwo file is implemented differently: file containg .dwo tables is created inside executeObjcopyOnBinary(). When objcopy functionality would be moved into separate library, current implementation will become inconvenient. The goal of that refactoring is to separate concerns: It might be convenient to to do dwo tables splitting but to create resulting file differently. Differential Revision: https://reviews.llvm.org/D98582
-
Simon Pilgrim authored
Add ISD::ABS to the existing unary instructions handling for splat detection This is similar to D83605, but doesn't appear to need to touch any of the wasm refactoring. Differential Revision: https://reviews.llvm.org/D98778
-
Fraser Cormack authored
This patch adds support for masked scatter intrinsics on scalable vector types. It is mostly an extension of the earlier masked gather support introduced in D96263, since the addressing mode legalization is the same. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D96486
-
Nigel Perks authored
The XCore backend does not support object emission. Several tests fail for this reason when XCore is the default target. See staging buildbot builder: clang-xcore-ubuntu-20-x64. So check for backend object emission before running the tests requiring it. Incorporate isConfigurationSupported functionality in isObjectEmissionSupported, to avoid calling them both in the same tests. Differential Revision: https://reviews.llvm.org/D98400
-
Fraser Cormack authored
This patch supports the masked gather intrinsics in RVV. The RVV indexed load/store instructions only support the "unsigned unscaled" addressing mode; indices are implicitly zero-extended or truncated to XLEN and are treated as byte offsets. This ISA supports the intrinsics directly, but not the majority of various forms of the MGATHER SDNode that LLVM combines to. Any signed or scaled indexing is extended to the XLEN value type and scaled accordingly. This is done during DAG combining as widening the index types to XLEN may produce illegal vectors that require splitting, e.g. nxv16i8->nxv16i64. Support for scalable-vector CONCAT_VECTORS was added to avoid spilling via the stack when lowering split legalized index operands. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D96263
-
Valeriy Savchenko authored
Cleanup attribute allows users to attach a destructor-like functions to variable declarations to be called whenever they leave the scope. The logic of such functions is not supported by the Clang's CFG and is too hard to be reasoned about. In order to avoid false positives in this situation, we assume that we didn't see ALL of the executtion paths of the function and, thus, can warn only about multiple call violation. rdar://74441906 Differential Revision: https://reviews.llvm.org/D98694
-
Vladislav Vinogradov authored
Do not limit the number of arguments in rewriter pattern. Introduce separate `FmtStrVecObject` class to handle format of variadic `std::string` array. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D97839
-
Wang, Pengfei authored
-
Bing1 Yu authored
-
Valeriy Savchenko authored
This patch introduces a very simple inter-procedural analysis between blocks and enclosing functions. We always analyze blocks first (analysis is done as part of semantic analysis that goes side-by-side with the parsing process), and at the moment of reporting we don't know how that block will be actually used. This patch introduces new logic delaying reports of the "never called" warnings on blocks. If we are not sure that the block will be called exactly once, we shouldn't warn our users about that. Double calls, however, don't require such delays. While analyzing the enclosing function, we can actually decide what we should do with those warnings. Additionally, as a side effect, we can be more confident about blocks in such context and can treat them not as escapes, but as direct calls. rdar://74090107 Differential Revision: https://reviews.llvm.org/D98688
-
Fraser Cormack authored
Without this patch, bitcasts of fixed-length mask vectors would go through the stack. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D98779
-
Luo, Yuanke authored
D93594 depend on the dominate tree and loop information. It increased the compile time when build with -O0. However this is just to amend the dominate tree and loop information, so that it is unnecessary to re-analyze them again. Given the dominate tree of loop information are absent in this pass, we can avoid amending them. Differential Revision: https://reviews.llvm.org/D98773
-
Sjoerd Meijer authored
Don't rewrite an add instruction with 2 SET_CC operands into a csel instruction. The total instruction sequence uses an extra instruction and register. Preventing this allows us to match a `(add, csel)` pattern and rewrite this into a `cinc`. Differential Revision: https://reviews.llvm.org/D98704
-