- Nov 21, 2023
-
-
Momchil Velikov authored
[MachineSink][AArch64] Preserve debug location when rematerialising an instruction to replace a COPY (#72685) Fixes a regression in `tools/lldb-dap/optimized/TestDAP_optimized.py` caused by enabling "sink-and-fold" in MachineSink.
-
Florian Hahn authored
Use isKnownNonNegative for information transfer. This can improve results, in cases where ValueTracking can infer additional non-negative info, e.g. for phi nodes. This allows simplifying the check from https://github.com/llvm/llvm-project/issues/63126 by ConstraintElimination. It is also simplified by IndVarSimplify now; note the changes in llvm/test/Transforms/PhaseOrdering/loop-access-checks.ll, due to this now being simplified earlier.
-
CarolineConcatto authored
This patch implements the builtins in Clang and the LLVM-IR intrinsic for the following: EXTQ // Variants are also available for: // _s8, _s16, _u16, _s32, _u32, _s64, _u64 // _bf16, _f16, _f32, _f64 svuint8_t svextq_lane[_u8](svuint8_t zdn, svuint8_t zm, uint64_t imm); TBLQ and TBXQ // Variants are also available for: // _u8, _u16, _s16, _u32, _s32, _u64, _s64 // _bf16, _f16, _f32, _f64 svint8_t svtblq[_s8](svint8_t zn, svuint8_t zm); svint8_t svtbxq[_s8](svint8_t zn, svuint8_t zm); UZPQ1, UZPQ2, ZIPQ1 and ZIPQ2 // Variants are also available for: // _s8, _u16, _s16, _u32, _s32, _u64, _s64 // _bf16, _f16, _f32, _f64 svuint8_t svuzpq1[_u8](svuint8_t zn, svuint8_t zm); svuint8_t svuzpq2[_u8](svuint8_t zn, svuint8_t zm); svuint8_t svzipq1[_u8](svuint8_t zn, svuint8_t zm); svuint8_t svzipq2[_u8](svuint8_t zn, svuint8_t zm); PMOV // Variants are available for: // _s8, _u16, _s16, _s32, _u32, _s64, _u64 svbool_t svpmov_lane[_u8](svuint8_t zn, uint64_t imm); svbool_t svpmov[_u8](svuint8_t zn); // The immediate is zero svuint8_t svpmov_u8_z(svbool_t pn); // The immediate is zero // Variants are available for: // _s16, _s32, _u32, _s64, _u64 svuint16_t svpmov_lane[_u16]_m(svuint16_t zd, svbool_t pn, uint64_t imm); According to the PR#257[1] [1]ARM-software/acle#257 Co-authored-by:Hassnaa Hamdi <hassnaa.hamdi@arm.com>
-
Youngsuk Kim authored
Specialize `NoCFIValue::getType()` to give a more detailed type hint to clients. --------- Co-authored-by:Nikita Popov <github@npopov.com>
-
Aiden Grossman authored
This pass isn't used/tested anywhere in upstream LLVM, so remove it.
-
Aiden Grossman authored
This pass isn't used anywhere or tested anywhere upstream (it doesn't even have a create function), so remove it.
-
Aiden Grossman authored
This pass isn't used/tested upstream anywhere, so remove it.
-
Aiden Grossman authored
This pass isn't used/tested anywhere upstream, so remove it.
-
Aiden Grossman authored
This pass isn't used/tested upstream at all, so remove it.
-
Aiden Grossman authored
This pass isn't used/tested anywhere upstream, so remove it.
-
Aiden Grossman authored
This pass isn't used anywhere in upstream and thus doesn't have any test coverage. For these reasons, remove it.
-
Aiden Grossman authored
This pass isn't used anywhere in upstream and thus has no test coverage. For these reasons, remove it.
-
Nikita Popov authored
For calls, we are only interested in captures before the call, not captures by the call itself -- arguments that get passed to the call are checked explicitly. In particular, the current implementation is not optimal if the pointer is captured via a readonly argument -- in that case, we know that even if the argument is captured, the call will not modify the argument (at least not via that argument). Make this more precise by renaming to isCapturedBefore() and adding an OrAt argument that allows us to toggle whether to consider captures in the instruction itself or not.
-
Matthias Springer authored
This commit fixes a crash of the canonicalizer when there are slice ops with offset/size SSA values that have a negative constant value. Such ops are invalid if they are reachable and their offsets/sizes should not be folded to static integer values. (But such ops may appear in non-reachable block.) This commit fixes #71150.
-
Jessica Del authored
Add more test cases for `s_bitreplicate` constant folding.
-
Muhammad Omair Javaid authored
This patch disables parts of clang/test/Sema/code_align.c that need __int128_t to be defined. This will fix failures on Arm v7 buildbots due to #70762 Following bots are failing: https://lab.llvm.org/buildbot/#/builders/245 https://lab.llvm.org/buildbot/#/builders/178 https://lab.llvm.org/buildbot/#/builders/182 https://lab.llvm.org/buildbot/#/builders/186 https://lab.llvm.org/buildbot/#/builders/187
-
Rik Huijzer authored
The `createParallelComputeFunction` crashed when calling `getFunctionTypeAttrName` during the creation of a new `FuncOp` inside the pass. The problem is that `getFunctionTypeAttrName` looks up the attribute name for the function type which in this case is `func.func`. However, `name.getAttributeNames()` was empty when clients used `llvm.func` instead of `func.func`. To fix this, the `func` dialect is now registered as a dependent dialect. Also, I've added an assertion which could save other people some time. Fixes #71281, fixes #64326.
-
Valery Pykhtin authored
-
Fangrui Song authored
-no-pie[1]/-nopie is rarely used and among the rare uses almost everwhere uses -no-pie, since GCC does not recognize -nopie. However, OpenBSD seems to use -nopie. Therefore, make -nopie specific to OpenBSD to prevent newer ToolChains (Solaris, SerenityOS) from cargo culting and copying -nopie. [1]: https://reviews.llvm.org/D35462
-
MaheshRavishankar authored
-
Utkarsh Saxena authored
This reverts commit ba359866.
-
Liviu Ionescu authored
The PR https://github.com/llvm/llvm-project/pull/70817 introduced a small bug, the tests failed on ppc64-aix with: ``` RUN: at line 186: mkdir -pv /home/powerllvm/powerllvm_env/aix-ppc64/clang-ppc64-aix/build/tools/clang/test/Driver/Output/darwin-header-search-libcxx.cpp.tmp/install/bin + mkdir -pv /home/powerllvm/powerllvm_env/aix-ppc64/clang-ppc64-aix/build/tools/clang/test/Driver/Output/darwin-header-search-libcxx.cpp.tmp/install/bin mkdir: illegal option -- v Usage: mkdir [-p] [-e] [-m mode] Directory ... ``` This PR removes the verbose flag from both `mkdir` and `ln -s`.
-
Utkarsh Saxena authored
-
Freddy Ye authored
This patch added backend consumption on a new loop metadata: !1 = !{!"llvm.loop.align", i32 64} which is generated from clang's new loop attribute: [[clang::code_align()]] clang patch: #70762 -
Craig Topper authored
foward -> forward
-
Liao Chunyu authored
vmadd: (mul (add x, 1), y) -> (add (mul x, y), y) (mul x, add (y, 1)) -> (add x, (mul x, y)) vnmsub: (mul (sub 1, x), y) -> (sub y, (mul x, y)) (mul x, (sub 1, y)) -> (sub x, (mul x, y)) Comparison with gcc: vmadd: https://gcc.godbolt.org/z/xjePx87Y7 vnsub: https://gcc.godbolt.org/z/b17zG7nT1 -
Valentin Clement (バレンタイン クレメン) authored
HLFIR lowering as been set by default now and FIR lowering support will be removed in the near future. This patch removes the specific FIR check lines.
-
dong jianqiang authored
Add armeb support when incoming bc is arm big endian: Fix error: could not infer e_machine from bitcode target triple armebv7-linux-gnueabi.
-
Maksim Panchenko authored
Whenever LPStartEncoding was different from DW_EH_PE_omit, we used to miscalculate LPStart. As a result, landing pads were assigned wrong addresses. Fix that.
-
Mehdi Amini authored
MLIR can't really be const-correct (it would need a `ConstValue` class alongside the `Value` class really, like `ArrayRef` and `MutableArrayRef`). This is however making is more consistent: method that are directly modifying the Value shouldn't be marked const.
-
Owen Pan authored
-
Slava Zakharin authored
-
Maksim Levental authored
-
Shraiysh authored
This patch adds the following semantic check: ``` The ancestor device-modifier must not appear on the device clause on any directive other than the target construct. ```
-
Johannes Doerfert authored
When we record and replay kernels we should not error out early if there is a chance the program might still run fine. This patch will: 1) Fallback to the allocation heuristic if the VAMap doesn't work. 2) Adjust the memory start to match the required address if possible. 3) Adjust the (guessed) pointer arguments if the memory start adjustment is impossible. This will allow kernels without indirect accesses to work while indirect accesses will most likely fail.
-
Johannes Doerfert authored
-
Johannes Doerfert authored
-
Jie Fu authored
[mlir] Non-void lambda does not return a value in all control paths in yieldReplacementForFusedProducer (NFC) /llvm-project/mlir/lib/Dialect/SCF/Transforms/TileUsingInterface.cpp:703:5: error: non-void lambda does not return a value in all control paths [-Werror,-Wreturn-type] }; ^ 1 error generated. -
ZhaoQi authored
This patch is used to test whether fixupkind for bl can be returned correctly. When BL has target-flags(loongarch-call), there is no error. But without this flag, an assertion error will appear. So the test is just tagged as "Expectedly Failed" now until the following patch fix it.
-
Yuxuan Chen authored
[Clang] Fix finding instantiated decls for class template specializations during instantiation (#72346) This change aims to fix https://github.com/llvm/llvm-project/issues/70375 It appears to me that the logic here should be handling specializations in general, not just partial specialization. It also seems that both the comment before the block and the `isInstantiationOf(ClassTemplate, SpecTemplate)` below agree with my judgement. The issue might just be a mistake that someone mistaken specialization as a special case of partial specializations, while it's actually the other way around. Needs some experts to comment here if this is the right fix. The code that caused clang ICE is added as a test case.
-