- May 11, 2022
-
-
Mike Rice authored
This adds support for variable stride with the val, uval, and ref linear modifiers. Previously only the no modifer type ls<argno> was supported. val -> Ls<argno> uval -> Us<argno> ref -> Rs<argno> Differential Revision: https://reviews.llvm.org/D125330
-
LLVM GN Syncbot authored
-
Mehdi Amini authored
-
Jan Korous authored
This reverts commit ce583b14.
-
Mingming Liu authored
This reverts commit d84ca05e. Will revert, update commit message and re-commit.
-
Vasileios Porpodas authored
[SLP][NFC] Precommit a lit test for a followup patch that improves tree reordering for external users. Differential Revision: https://reviews.llvm.org/D125110
-
Erich Keane authored
-
Jim Ingham authored
It was originally only in "gdb-remote process" but it is convenient to also have it come as part of gdb-remote packets.
-
Matthias Braun authored
-
Nathan James authored
-
jeff authored
This patch adds cluster edges between independent MFMA instructions. Additionally, it propogates all predecessors of cluster insts to the root of the cluster(s), and all successors to the leaf(ves) of the cluster(s) -- this is done to remove the possibility that those insts will be interspersed within the cluster. Reviewed By: kerbowa Differential Revision: https://reviews.llvm.org/D124678
-
Erich Keane authored
-
Mingming Liu authored
Differential Revision: https://reviews.llvm.org/D124118
-
Erich Keane authored
last.
-
jeff authored
Reviewed By: kerbowa Differential Revision: https://reviews.llvm.org/D124647
-
Arthur Eubanks authored
D98718 caused the order of Values/MemoryLocations we pass to alias() to be significant due to storing the offset in the PartialAlias case. But some callers weren't audited and were still passing swapped arguments, causing the returned PartialAlias offset to be negative in some cases. For example, the newly added unittests would return -1 instead of 1. Fixes #55343, a miscompile. Reviewed By: asbirlea, nikic Differential Revision: https://reviews.llvm.org/D125328
-
Florian Hahn authored
The patch extends AArch64TTIImpl::instCombineIntrinsic to simplify llvm.aarch64.neon.f{min,max}nm(a, a) -> a. This helps with simplifying code written using the ACLE, e.g. see https://godbolt.org/z/jYxsoc89c Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D125234 -
Yaxun (Sam) Liu authored
-
Nicolas Vasilache authored
This is now subsumed by `replaceLoopWithNewYields`. Differential Revision: https://reviews.llvm.org/D125309
-
Mahesh Ravishankar authored
The current implementation of `cloneWithNewYields` has a few issues - It clones the loop body of the original loop to create a new loop. This is very expensive. - It performs `erase` operations which are incompatible when this method is called from within a pattern rewrite. All erases need to go through `PatternRewriter`. To address these a new utility method `replaceLoopWithNewYields` is added which - moves the operations from the original loop into the new loop. - replaces all uses of the original loop with the corresponding results of the new loop - use a call back to allow caller to generate the new yield values. - the original loop is modified to just yield the basic block arguments corresponding to the iter_args of the loop. This represents a no-op loop. The loop itself is dead (since all its uses are replaced), but is not removed. The caller is expected to erase the op. Consequently, this method can be called from within a `matchAndRewrite` method of a `PatternRewriter`. The `cloneWithNewYields` could be replaces with `replaceLoopWithNewYields`, but that seems to trigger a failure during walks, potentially due to the operations being moved. That is left as a TODO. Differential Revision: https://reviews.llvm.org/D125147
-
Alan Zhao authored
The EXTERN keyword defines external symbols in MASM. Credit goes to epastor@ for implementing most of the logic; I (ayzhao@) added some bugfixes and tests. [0]: https://docs.microsoft.com/en-us/cpp/assembler/masm/extern-masm?view=msvc-170 Reviewed By: epastor Submitted By: epastor Differential Revision: https://reviews.llvm.org/D125273
-
Yaxun (Sam) Liu authored
CUDA/HIP programs use __noinline__ like a keyword e.g. __noinline__ void foo() {} since __noinline__ is defined as a macro __attribute__((noinline)) in CUDA/HIP runtime header files. However, gcc and clang supports __attribute__((__noinline__)) the same as __attribute__((noinline)). Some C++ libraries use __attribute__((__noinline__)) in their header files. When CUDA/HIP programs include such header files, clang will emit error about invalid attributes. This patch fixes this issue by supporting __noinline__ as a keyword, so that CUDA/HIP runtime could remove the macro definition. Reviewed by: Aaron Ballman, Artem Belevich Differential Revision: https://reviews.llvm.org/D124866 -
Sanjay Patel authored
shuffle (cast X), (cast Y), Mask --> cast (shuffle X, Y, Mask) This is similar to a recent transform with fneg ( b331a7eb ), but this is intentionally the most conservative first step to try to avoid regressions in codegen. There are several restrictions that could be removed as follow-up enhancements. Note that a cast with a unary shuffle is currently canonicalized in the other direction (shuffle after cast - D103038 ). We might want to invert that to be consistent with this patch.
-
Sanjay Patel authored
-
Joseph Huber authored
Summary: We use the `--offload-new-driver` option to enable offload code embedding. The check for when to do this was flawed and was enabling it too early in the case of OpenMP, causing a segfault when dereferencing the offloading toolchain.
-
Jan Korous authored
Specifically for: !tbaa, !tbaa.struct, !annotation, !srcloc, !nosanitize. The goal is to avoid test brittleness caused by hardcoded values. Differential Revision: https://reviews.llvm.org/D123273
-
Matthias Braun authored
We often see code like the following after running SCCP: switch (x) { case 42: phi(42, ...); } This tends to produce bad code as we currently materialize the constant phi-argument in the switch-block. This increases register pressure and if the pattern repeats for `n` case statements, we end up generating `n` constant values. This changes CodeGenPrepare to catch this pattern and revert it back to: switch (x) { case 42: phi(x, ...); } Differential Revision: https://reviews.llvm.org/D124552 -
Matthias Braun authored
This adds a `TargetLoweringBase::getSwitchConditionType` callback to give targets a chance to control the type used in `CodeGenPrepare::optimizeSwitchInst`. Implement callback for X86 to avoid i8 and i16 types where possible as they often incur extra zero-extensions. This is NFC for non-X86 targets. Differential Revision: https://reviews.llvm.org/D124894
-
Matthias Braun authored
- Change `switch.ll` test to a style suitable for `tools/update_llc_test_checks.py`. - Precommit test for upcoming changes: - Add `switch_i8` to `test/CodeGen/X86/switch.ll`. - Add `test/CodeGen/X86/switch-phi-const.ll`. Differential Revision: https://reviews.llvm.org/D124893
-
Kadir Cetinkaya authored
- Make clangd's internal representation more aligned with the standard. We keep range and extra inlayhint kinds around, but don't serialize them on standard version. - Have custom serialization for extension (ugly, but going to go away). - Support both versions until clangd-17. - Don't advertise extension if client has support for standard implementation. - Log a warning at startup about extension being deprecated, if client doesn't have support. Differential Revision: https://reviews.llvm.org/D125228
-
Mike Rice authored
Add mangling for linear parameters specified with ref, uval, and val for 'omp declare simd' vector functions. Add missing stride for linear this parameters. Differential Revision: https://reviews.llvm.org/D125269
-
Tsukasa OI authored
This commit adds 'K' to supported extension list (before 'J'). It makes "Zk*" extensions correctly placed before "Zv*" extensions. Multi-letter "Z*" extensions are first ordered with the most closely related alphabetical extension category ("IMAF..."). This is represented in LLVM as `AllStdExts' variable in `llvm/lib/Support/RISCVISAInfo.cpp'. However, it did not have 'k' making "Zk*" extensions not correctly ordered. Reviewed By: kito-cheng Differential Revision: https://reviews.llvm.org/D124340 -
Krzysztof Drewniak authored
This ensures that attributes such as the index bitwidth propagate correctly to the AMDGPUToROCDL patterns. Differential Revision: https://reviews.llvm.org/D125320
-
Konstantin Varlamov authored
The view itself has been implemented previously -- this patch only adds the ability to pipe it. Also finishes the implementation of [P1739](https://wg21.link/p1739) and [LWG3407](https://wg21.link/lwg3407). Differential Revision: https://reviews.llvm.org/D125156
-
David Green authored
This reverts commit 7dcd0ea6 due to issues reported postcommit with the correctness of truncated cttzs.
-
Craig Topper authored
Previously we took the old name and always appended a numberic suffix. Since we're doing a 1:1 replacement, it's clearer to keep the original name exactly. Reviewed By: fhahn Differential Revision: https://reviews.llvm.org/D125281
-
Craig Topper authored
This makes the output IR more readable since we're doing a one to one replacement. Reviewed By: fhahn Differential Revision: https://reviews.llvm.org/D125280
-
- May 10, 2022
-
-
Peter Klausler authored
Fortran 2018 requires that a compiler allow objects whose rank + corank is 15, and that's our maximum; detect and diagnose violations. Differential Revision: https://reviews.llvm.org/D125153
-
Nikita Popov authored
-
Ivan Kosarev authored
Also makes a step towards resolving https://github.com/llvm/llvm-project/issues/38652 Reviewed By: foad, dp Differential Revision: https://reviews.llvm.org/D125117
-