- Jan 25, 2023
-
-
Joseph Huber authored
Currently, we embed device code into the host to perform multi-architecture linking and handling of device code. If the user specified `-S -emit-llvm` then the embedded output will be textual LLVM-IR. This is a problem because it can't be used by the LTO backend and it makes reading the file confusing. This patch changes the behaviour to only emit textual device IR if we are in device only mode, that is, if the device code is presented directly to the user instead of being embedded. Otherwise we should always embed device bitcode instead. Reviewed By: tra Differential Revision: https://reviews.llvm.org/D141717
-
Manas authored
A couple of packages were out-dated while building satest docker image. This patch updates those. Reviewed By: steakhal Differential Revision: https://reviews.llvm.org/D142454
-
Manas authored
This patch fixes certain cases where solver was not able to infer disequality due to overlapping of values in rangeset. This case was casting from lower signed type to bigger unsigned type. Reviewed By: steakhal Differential Revision: https://reviews.llvm.org/D140086
-
Douglas Yung authored
This reverts commit 2b807336. This change is causing Windows builds to hang and out of memory errors with clang-15: - https://lab.llvm.org/buildbot/#/builders/17/builds/33129 - https://lab.llvm.org/buildbot/#/builders/174/builds/17069 - https://lab.llvm.org/buildbot/#/builders/83/builds/28484 - https://lab.llvm.org/buildbot/#/builders/172/builds/22803 - https://lab.llvm.org/buildbot/#/builders/216/builds/16210
-
Florian Hahn authored
This patch updates SCCP to use the value ranges of AddInst operands to try to prove the AddInst does not overflow in the unsigned sense and adds the NUW flag. The reasoning is done with makeGuaranteedNoWrapRegion (thanks @nikic for point it out!). Follow-ups will include adding NSW and extension to more OverflowingBinaryOperators. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D142387
-
Sanjay Patel authored
not (bitcast (sext i1 X)) --> bitcast (sext (not i1 X)) https://alive2.llvm.org/ce/z/-6Ygkd This shows up as a potential regression if we change canonicalization of ashr+not to icmp+sext.
-
Sanjay Patel authored
-
Aaron Ballman authored
The test currently expects to be run in a directory named 'clang' but that's not valid for our release tarballs. We don't actually care what base directory the test is run from, so this removes the path component entirely.
-
Aart Bik authored
Note that I did not track why this started failing exactly, which is why I CC Matthias on this fix. But at least we run asan clean again for the whole suite after this change. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D142496
-
Paul Robinson authored
Found by the Rotten Green Tests project.
-
Philip Reames authored
This matches the behavior from a number of other targets, including e.g. X86. This does have the effect of increasing register pressure slightly, but we have a relative abundance of registers in the ISA compared to other targets which use the same heuristic. The motivation here is that our current cost heuristic treats number of registers as the dominant cost. As a result, an extra use outside of a loop can radically change the LSR result. As an example consider test4 from the recently added test/Transforms/LoopStrengthReduce/RISCV/lsr-cost-compare.ll. Without a use outside the loop (see test3), we convert the IV into a pointer increment. With one, we leave the gep in place. The pointer increment version both decreases number of instructions in some loops, and creates parallel chains of computation (i.e. decreases critical path depth). Both are generally profitable. Arguably, we should really be using a more sophisticated model here - such as e.g. using profile information or explicitly modeling parallelism gains. However, as a practical matter starting with the same mild hack that other targets have used seems reasonable. Differential Revision: https://reviews.llvm.org/D142227
-
Siva Chandra Reddy authored
This is the first of patches doing similar cleanup. A section in the code style doc has been added explaining where and how LIBC_INLINE is to be used. Reviewed By: jeffbailey, lntue Differential Revision: https://reviews.llvm.org/D142434
-
Guilherme Valarini authored
-
Sanjay Patel authored
Value name propagation improved.
-
Sanjay Patel authored
-
Sanjay Patel authored
There's no reason to use "CI" (cast instruction) when we know that the value is a more specific (exact) type of instruction (although we might want to common-ize some of this code to eliminate duplication or logic diffs). It's also visually difficult to distinguish between "CI", "ICI", and "IC" acronyms (and those could change meaning depending on context). This was partially changed in earlier commits, so this makes this pair of functions consistent.
-
Stanislav Mekhanoshin authored
Differential Revision: https://reviews.llvm.org/D142407
-
Shilei Tian authored
-
Stanislav Mekhanoshin authored
These are unsupported. Differential Revision: https://reviews.llvm.org/D142493
-
Han Zhu authored
-
Valentin Clement authored
When referencing a single component from a polymorphic array in an expression, the rebox operation should output a boxed array of that component type and not a polymorphic boxed array as it was done. Reviewed By: PeteSteinfeld Differential Revision: https://reviews.llvm.org/D142462
-
Alexandros Lamprineas authored
Found here https://github.com/llvm/llvm-project/issues/60191 The compiler would crash when specializing a function based on a function pointer whose call sites may expect less parameters than those of the function we are replacing the pointer with. Differential Revision: https://reviews.llvm.org/D142444
-
Joseph Huber authored
-
Vassil Vassilev authored
Patch by Lang Hames and Sunho Kim! Differential revision: https://reviews.llvm.org/D138264
-
Pratik Sharma authored
There were some dead links in Suppressing Undesired Diagnostics which I replaced with the working links. Fixes #60023 Differential Revision: https://reviews.llvm.org/D142377
-
Slava Zakharin authored
OpenMP buildbots are failing: https://lab.llvm.org/buildbot/#/builders/193/builds/25434 https://lab.llvm.org/buildbot/#/builders/193/builds/25420 This reverts commit 7fbf1221.
-
Stanislav Mekhanoshin authored
-
Jan Svoboda authored
This patch removes some dead code in the dependency scanner. The `ModuleDeps::ImplicitModulePCMPath` member stopped being used in D131934. The strict context hash was replaced in D129884 by hash of the canonical command line. Reviewed By: benlangmuir Differential Revision: https://reviews.llvm.org/D142416
-
Jan Svoboda authored
In D106100, we started guarding against spurious dependencies on modules that ended up being textual includes and thus didn't have any AST file associated. That patch accounted only for direct dependencies. There's a way how to get spurious dependencies for modules that are transitive. This patch guards against that scenario and adds a test case. (Note that since D142167, we don't allow `@import FW_Private` with `-fmodule-name=FW` anymore. However, that check lives in sema, which the scanner doesn't run. Being defensive in this patch therefore still makes sense.) rdar://104324602 Reviewed By: benlangmuir Differential Revision: https://reviews.llvm.org/D142165
-
Ayke van Laethem authored
All hardware address spaces on AVR can be freely cast between (they keep the same bit pattern). They just aren't dereferenceable when they're in a different address space as they really do point to a separate address space. This is supported in avr-gcc: https://godbolt.org/z/9Gfvhnhv9 avr-gcc also supports the `__memx` address space which is 24 bits. We don't support this address space yet but I've added a safeguard just in case. Differential Revison: https://reviews.llvm.org/D142107
-
Florian Hahn authored
This should fix a LeakSanitizer failure reported here: https://lab.llvm.org/buildbot/#/builders/5/builds/30952
-
Mark de Wever authored
The contiguous range made incorrect assumptions for certain input ranges. Fixes llvm.org/PR60164 Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D142302
-
Ben Langmuir authored
I originally thought we needed to add module file inputs for modular deps at the same time as outputs because they depend on the lookupModuleOutput callback, but this is not the case: they only depend on the callback results for other modules, which have already been computed by this point. So move them earlier so that they're set in the CompilerInvocation at the same time as other inputs. This makes the code easier to understand. This change is effectively NFC, though it technically changes the module exact value of the context hash. Differential Revision: https://reviews.llvm.org/D142392
-
eopXD authored
The object is now correct by construction. This is the 15th commit of a patch-set that aims to change the default policy for RVV intrinsics from TAMU to TAMA. Please refer to the cover letter in the 1st commit (D141573) for an overview. Depends on D141793. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D141796
-
eopXD authored
After this commit, the non-policy variants of `vid` and `viota` are no longer available for an oveloaded version since the default policy is now TAMA and the masked-off operand is removed. Be noted that ALL RVV intrinsics now operate under the general assumption that a policy behavior is "agnostic" unless specified. Therefore this patch also changes the semantic of policy intrinsics with the suffix of `_ta` and `tu`. These intrinsics don't have their mask policy specified and was assumed to be undisturbed. It is now changed to agnostic. This is the 14th commit of a patch-set that aims to change the default policy for RVV intrinsics from TAMU to TAMA. Please refer to the cover letter in the 1st commit (D141573) for an overview. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D141793
-
eopXD authored
These files were oversights in D141198. The test cases are now under its exact mnemonics. For example, test cases of `vle8`, `vle16`, `vle32`, and `vle64` were under `vle.c`. Now they are exist under `vle8.c`, `vle16.c`, `vle32.c`, and `vle64.c`, respectively. This is the 13th commit of a patch-set that aims to change the default policy for RVV intrinsics from TAMU to TAMA. Please refer to the cover letter in the 1st commit (D141573) for an overview. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D141792
-
eopXD authored
The current way creates a fallacy that checking for `PolicyAttrs == TAIL_AGNOSTIC` is implicitly equivalant to `TAIL_AGNOSTIC_MASK_UNDISTURBED`. This works under the assumption that an unmasked intrinsic has a policy of TAMU. The expression here is mis-leading and will not be correct when the default policy is not TAMU. As this patch-set targets to change the default policy from TAMU to TAMA, this commit is necessary before changing the default. This is the 12th commit of a patch-set that aims to change the default policy for RVV intrinsics from TAMU to TAMA. Please refer to the cover letter in the 1st commit (D141573) for an overview. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D141789
-
Guillaume Chatelet authored
The build bots are failing. This reverts commit c84d74f5.
-
Mark de Wever authored
The paper - P2286R8 Formatting ranges is fully implemented modulo its feature test macro. This macro has been revised by - LWG3750 Too many papers bump __cpp_lib_format The new macro depends on - P2585R0 Improving default container formatting This paper revises parts of P2286R8 and adds new formatter specializations. The specialization for debug strings has some wording issues, which is addresses in this paper - P2733R0 Fix handling of empty specifiers in std::format Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D142153
-
eopXD authored
The attribute can be removed now as preceding patches have removed its users. This is the 11th commit of a patch-set that aims to change the default policy for RVV intrinsics from TAMU to TAMA. Please refer to the cover letter in the 1st commit (D141573) for an overview. Reviewed By: craig.topper, kito-cheng Differential Revision: https://reviews.llvm.org/D141768
-