Commit
d71b1f738d55dce1236c624b240152a26f07d5f7
by orlando.hyamsNFC Fix cost model checks in tests for debug intrinsics
These tests don't have a "Debug Info Version" module flag causing the debug intrinsics to be dropped with a warning `warning: ignoring debug info with an invalid version (0)`. The test passes because there are no CHECK lines for these intrinsics. Fix the issue and auto-update the test checks.
Reviewed By: jryans
Differential Revision: https://reviews.llvm.org/D145573
|
 | llvm/test/Analysis/CostModel/X86/free-intrinsics.ll (diff) |
 | llvm/test/Analysis/CostModel/free-intrinsics-datalayout.ll (diff) |
 | llvm/test/Analysis/CostModel/free-intrinsics-no_info.ll (diff) |
Commit
e377520a47e6ced171fe1a4a39b91297326a1817
by mayaam88[mlir] Move tosa.concat lowering from TosaToLinalg to TosaToTensor
tosa.concat is lowered to tensor.insert_slice thus it should be in TosaToTensor rather than in TosaToLinalg.
Reviewed By: rsuderman
Differential Revision: https://reviews.llvm.org/D145952
|
 | mlir/test/Conversion/TosaToTensor/tosa-to-tensor.mlir (diff) |
 | mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp (diff) |
 | mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir (diff) |
 | mlir/lib/Conversion/TosaToTensor/TosaToTensor.cpp (diff) |
Commit
72474afa27570a0a1307f3260f0187b703aa6d84
by kpdev42[LLVM][OHOS] Clang toolchain and targets
Add a clang part of OpenHarmony target
Related LLVM part: D138202
~~~
Huawei RRI, OS Lab
Reviewed By: DavidSpickett
Differential Revision: https://reviews.llvm.org/D145227
|
 | clang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/a7_hard_neon-vfpv4/libclang_rt.profile.a |
 | clang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/a7_soft/libclang_rt.profile.a |
 | clang/test/Driver/Inputs/ohos_native_tree/sysroot/usr/lib/arm-liteos-ohos/.keep |
 | clang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/a7_hard_neon-vfpv4/clang_rt.crtbegin.o |
 | clang/include/clang/Basic/Attr.td (diff) |
 | clang/lib/Basic/Targets.cpp (diff) |
 | clang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/libclang_rt.builtins.a |
 | clang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/a7_softfp_neon-vfpv4/libclang_rt.builtins.a |
 | clang/lib/Driver/ToolChains/Arch/ARM.cpp (diff) |
 | clang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/a7_hard_neon-vfpv4/.keep |
 | clang/test/Driver/Inputs/ohos_native_tree/sysroot/usr/lib/arm-liteos-ohos/a7_hard_neon-vfpv4/.keep |
 | clang/test/Driver/Inputs/ohos_native_tree/sysroot/usr/lib/arm-liteos-ohos/a7_soft/.keep |
 | clang/test/Driver/Inputs/ohos_native_tree/llvm/lib/arm-liteos-ohos/libc++.so |
 | clang/test/Driver/ohos.c |
 | clang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/a7_soft/clang_rt.crtbegin.o |
 | clang/lib/Driver/CMakeLists.txt (diff) |
 | clang/lib/Driver/Driver.cpp (diff) |
 | clang/test/Driver/Inputs/ohos_native_tree/sysroot/usr/include/arm-liteos-ohos/.keep |
 | clang/lib/Driver/ToolChains/Arch/AArch64.cpp (diff) |
 | clang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/a7_hard_neon-vfpv4/libclang_rt.builtins.a |
 | clang/lib/Driver/ToolChains/CommonArgs.cpp (diff) |
 | clang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/a7_soft/libclang_rt.builtins.a |
 | clang/test/Driver/Inputs/ohos_native_tree/llvm/lib/arm-liteos-ohos/a7_hard_neon-vfpv4/libc++.so |
 | clang/lib/Basic/Targets/OSTargets.h (diff) |
 | clang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/a7_softfp_neon-vfpv4/.keep |
 | clang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/a7_hard_neon-vfpv4/clang_rt.crtend.o |
 | clang/test/Driver/Inputs/ohos_native_tree/llvm/include/c++/v1/.keep |
 | clang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/libclang_rt.profile.a |
 | clang/test/Driver/Inputs/ohos_native_tree/llvm/lib/arm-liteos-ohos/c++/a7_soft/libc++.so |
 | clang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/a7_soft/.keep |
 | clang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/clang_rt.crtend.o |
 | clang/lib/Driver/ToolChains/OHOS.h |
 | clang/lib/Basic/TargetInfo.cpp (diff) |
 | clang/test/Driver/Inputs/ohos_native_tree/llvm/lib/arm-liteos-ohos/c++/a7_softfp_neon-vfpv4/libc++.so |
 | clang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/clang_rt.crtbegin.o |
 | clang/include/clang/Driver/ToolChain.h (diff) |
 | clang/test/Driver/Inputs/ohos_native_tree/sysroot/usr/include/.keep |
 | clang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/.keep |
 | clang/lib/Basic/Targets/ARM.cpp (diff) |
 | clang/test/CodeGen/aarch64-fix-cortex-a53-835769.c (diff) |
 | clang/lib/Driver/ToolChains/OHOS.cpp |
 | clang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/a7_softfp_neon-vfpv4/clang_rt.crtbegin.o |
 | clang/lib/Driver/ToolChains/Gnu.cpp (diff) |
 | clang/test/Driver/Inputs/ohos_native_tree/llvm/bin/.keep |
 | clang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/a7_softfp_neon-vfpv4/clang_rt.crtend.o |
 | clang/lib/Basic/Targets/X86.h (diff) |
 | clang/test/Driver/Inputs/ohos_native_tree/llvm/lib/arm-liteos-ohos/c++/a7_hard_neon-vfpv4/libc++.so |
 | clang/test/Driver/ohos.cpp |
 | clang/lib/CodeGen/ABIInfo.h (diff) |
 | clang/test/Driver/Inputs/ohos_native_tree/llvm/lib/arm-liteos-ohos/a7_soft/libc++.so |
 | clang/test/Driver/Inputs/ohos_native_tree/llvm/lib/arm-liteos-ohos/a7_softfp_neon-vfpv4/libc++.so |
 | clang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/a7_soft/clang_rt.crtend.o |
 | clang/lib/CodeGen/TargetInfo.cpp (diff) |
 | clang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/a7_softfp_neon-vfpv4/libclang_rt.profile.a |
 | clang/test/Driver/Inputs/ohos_native_tree/sysroot/usr/lib/.keep |
 | clang/test/Preprocessor/ohos.c |
 | clang/test/Driver/Inputs/ohos_native_tree/sysroot/usr/lib/arm-liteos-ohos/a7_softfp_neon-vfpv4/.keep |
|
 | llvm/test/Analysis/CostModel/free-intrinsics-datalayout.ll (diff) |
 | llvm/test/Analysis/CostModel/free-intrinsics-no_info.ll (diff) |
 | llvm/test/Analysis/CostModel/X86/free-intrinsics.ll (diff) |
 | llvm/include/llvm/Analysis/TargetTransformInfoImpl.h (diff) |
|
 | llvm/test/Transforms/LoopUnroll/guard-cost-for-unrolling.ll (diff) |
|
 | llvm/include/llvm/Analysis/ScalarEvolution.h (diff) |
|
 | llvm/test/Transforms/InstCombine/compare-3way.ll (diff) |
Commit
660403940ca33d84c20b1cae343655f3d7872ada
by npopov[SCEV] Fix finite loop non-strict predicate simplification (PR60944)
There are a number of issues with the current code for converting ule -> ult (etc) predicates for comparisons controlling finite loops:
* It sets nowrap flags, which may only hold for that particular comparison, not globally. (PR60944) * It doesn't check that the RHS is invariant. (I'm not sure this can cause practical issues independently of the previous point.) * It runs before simplifications that may be more profitable. (PR54191)
This patch moves the handling for this into computeExitLimitFromICmp(), because it is somewhat tightly coupled with assumptions in that code, and addresses the aforementioned issues.
Fixes https://github.com/llvm/llvm-project/issues/60944. Fixes https://github.com/llvm/llvm-project/issues/54191.
Differential Revision: https://reviews.llvm.org/D145510
|
 | llvm/test/Transforms/IndVarSimplify/range-iter-threshold.ll (diff) |
 | llvm/test/Transforms/IndVarSimplify/rewrite-loop-exit-value.ll (diff) |
 | llvm/test/Analysis/ScalarEvolution/finite-trip-count.ll (diff) |
 | llvm/lib/Analysis/ScalarEvolution.cpp (diff) |
 | llvm/test/Transforms/IndVarSimplify/pr60944.ll (diff) |
 | llvm/include/llvm/Analysis/ScalarEvolution.h (diff) |
|
 | llvm/include/llvm/Analysis/ScalarEvolution.h (diff) |
 | llvm/lib/Analysis/ScalarEvolution.cpp (diff) |
Commit
b0ea210b351bcb6ac1dc25678e546fd55cf952d8
by mkazantsev[TTI] Evaluate cost of experimental_widenable_condition as zero
This intrinsic is not supposed to live through lowering, eventually it should turn into `true` constant and be optimized away.
Differential Revision: https://reviews.llvm.org/D146027 Reviewed By: skatkov
|
 | llvm/test/Transforms/LoopUnroll/guard-cost-for-unrolling.ll (diff) |
 | llvm/include/llvm/Analysis/TargetTransformInfoImpl.h (diff) |
|
 | clang/lib/CodeGen/CodeGenTypes.cpp (diff) |
 | clang/lib/AST/Type.cpp (diff) |
 | clang/test/CodeGenCXX/aarch64-mangle-sve-vectors.cpp (diff) |
 | clang/utils/TableGen/SveEmitter.cpp (diff) |
 | clang/test/CodeGen/svboolx4_t.cpp |
 | clang/lib/AST/ASTContext.cpp (diff) |
 | clang/include/clang/Basic/AArch64SVEACLETypes.def (diff) |
 | clang/test/CodeGen/svboolx2_t.cpp |
Commit
0022b5803fd4f5a4e9fcf233267c0ffa1b88f763
by pierre.vanhoutryve[DAG/AMDGPU] Use UniformityAnalysis in DAGISel
Switch DAGISel over to UniformityAnalysis, which was one of the last remaining users of the DivergenceAnalysis. No explosions seen during internal testing so this looks like a smooth transition.
Reviewed By: sameerds
Differential Revision: https://reviews.llvm.org/D145918
|
 | llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp (diff) |
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp (diff) |
 | llvm/include/llvm/CodeGen/TargetLowering.h (diff) |
 | llvm/include/llvm/CodeGen/FunctionLoweringInfo.h (diff) |
 | llvm/lib/Target/AMDGPU/SIISelLowering.cpp (diff) |
 | llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp (diff) |
 | llvm/lib/Target/AMDGPU/SIISelLowering.h (diff) |
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp (diff) |
 | llvm/test/CodeGen/AMDGPU/llc-pipeline.ll (diff) |
 | llvm/include/llvm/CodeGen/SelectionDAG.h (diff) |
Commit
e4ea2d59191c7b94a3805cfd3adda1db6d17852a
by pierre.vanhoutryve[StructurizeCFG] Correctly depend on UniformityAnalysis
Small oversight in https://reviews.llvm.org/D145688 - the pass' dependency was not updated to reflect the change to UA.
Also, change DivergenceAnalysis to UniformityAnalysis in a comment. That way, StructurizeCFG only refers to UA and not DA anymore.
|
 | llvm/lib/Transforms/Scalar/StructurizeCFG.cpp (diff) |
Commit
47021bda646a4e52027f0956c84a3be5080fbc5e
by mkazantsev[IndVars] Option verify-indvars is broken (and always has been), delete it
This option is switched off by default, and it seems that it has never worked correctly. What it basically does is: it remembers current BECount SCEV, and after all transforms tries to validate some facts for it. However, between these two points this SCEV may become invalid (e.g. because some SCEVUnknown it references may be deleted as dead code). So basically it may work with broken pointers.
Besides, its implementation does strange things (e.g. forgetLoop) which are invasive and may affect behavior in other parts of the system (specifically verification), concealing some other problems. Another issue is that it may use SCEVCouldNotCompute object without checking this.
The option is not used in any unit tests, and if switched on by default, the following tests fail: ``` ******************** Failed Tests (14): LLVM :: Transforms/IndVarSimplify/2005-06-15-InstMoveCrash.ll LLVM :: Transforms/IndVarSimplify/2007-06-06-DeleteDanglesPtr.ll LLVM :: Transforms/IndVarSimplify/2008-10-03-CouldNotCompute.ll LLVM :: Transforms/IndVarSimplify/2009-05-24-useafterfree.ll LLVM :: Transforms/IndVarSimplify/2011-10-27-lftrnull.ll LLVM :: Transforms/IndVarSimplify/ARM/code-size.ll LLVM :: Transforms/IndVarSimplify/X86/deterministic-scev-verify.ll LLVM :: Transforms/IndVarSimplify/X86/pr57187.ll LLVM :: Transforms/IndVarSimplify/X86/verify-scev.ll LLVM :: Transforms/IndVarSimplify/bbi-63564.ll LLVM :: Transforms/IndVarSimplify/invalidate-modified-lcssa-phi.ll LLVM :: Transforms/IndVarSimplify/loop-predication.ll LLVM :: Transforms/IndVarSimplify/post-inc-range.ll LLVM :: Transforms/IndVarSimplify/turn-to-invariant.ll
******************** Unexpectedly Passed Tests (1): LLVM :: Transforms/IndVarSimplify/pr55689.ll ```
None of these looks like real problems found by verification, these are bugs in the verifying code itself (such as use of deleted SCEVs and SCEVCouldNotCompute's).
I think it all gives enough justification for its removal.
https://github.com/llvm/llvm-project/issues/61302
Differential Revision: https://reviews.llvm.org/D145894 Reviewed By: nikic
|
 | llvm/lib/Transforms/Scalar/IndVarSimplify.cpp (diff) |
|
 | llvm/lib/Transforms/Scalar/IndVarSimplify.cpp (diff) |
|
 | mlir/lib/Conversion/MathToFuncs/MathToFuncs.cpp (diff) |
 | mlir/lib/Dialect/MemRef/Transforms/FoldMemRefAliasOps.cpp (diff) |
 | mlir/include/mlir/IR/AffineExpr.h (diff) |
 | mlir/lib/Dialect/Vector/Transforms/VectorUnroll.cpp (diff) |
 | mlir/lib/Dialect/Math/Transforms/PolynomialApproximation.cpp (diff) |
 | mlir/include/mlir/Dialect/Utils/IndexingUtils.h (diff) |
 | mlir/lib/Conversion/MathToLibm/MathToLibm.cpp (diff) |
 | mlir/lib/Dialect/MemRef/Transforms/ExpandStridedMetadata.cpp (diff) |
 | mlir/lib/Dialect/Utils/IndexingUtils.cpp (diff) |
 | mlir/lib/Dialect/Vector/Transforms/VectorTransforms.cpp (diff) |
 | mlir/lib/Dialect/Vector/IR/VectorOps.cpp (diff) |
Commit
c9163901c8e118ec0b7d415ae6ef267c4b6d549f
by emilia[clang-format] Treat &/&& as reference when followed by requires clause
Previously, the token annotator would get confused and annotate a member function's ref qualifier as a binary operator, if said function also had a requires clause after it.
This patch accounts for that, treating requires clauses more similarly to `noexcept`, which also comes after the ref qualifier.
Fixes https://github.com/llvm/llvm-project/issues/61270
Reviewed By: HazardyKnusperkeks, owenpan
Differential Revision: https://reviews.llvm.org/D145656
|
 | clang/unittests/Format/TokenAnnotatorTest.cpp (diff) |
 | clang/unittests/Format/FormatTest.cpp (diff) |
 | clang/lib/Format/TokenAnnotator.cpp (diff) |
|
 | llvm/include/llvm/CodeGen/FunctionLoweringInfo.h (diff) |
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp (diff) |
 | llvm/include/llvm/CodeGen/SelectionDAG.h (diff) |
 | llvm/lib/Target/AMDGPU/SIISelLowering.cpp (diff) |
 | llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp (diff) |
 | llvm/test/CodeGen/AMDGPU/llc-pipeline.ll (diff) |
 | llvm/include/llvm/CodeGen/TargetLowering.h (diff) |
 | llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp (diff) |
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp (diff) |
 | llvm/lib/Target/AMDGPU/SIISelLowering.h (diff) |
Commit
a9d9616c0de3f07654ee139bead48b8d78f44e1f
by luke[RISCV][NFC] Share interleave mask checking logic
This adds two new methods to ShuffleVectorInst, isInterleave and isInterleaveMask, so that the logic to check if a shuffle mask is an interleave can be shared across the TTI, codegen and the interleaved access pass.
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D145971
|
 | llvm/unittests/IR/ShuffleVectorInstTest.cpp (diff) |
 | llvm/lib/IR/Instructions.cpp (diff) |
 | llvm/test/Analysis/CostModel/RISCV/shuffle-interleave.ll (diff) |
 | llvm/include/llvm/IR/Instructions.h (diff) |
 | llvm/lib/Target/RISCV/RISCVISelLowering.cpp (diff) |
 | llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp (diff) |
 | llvm/lib/CodeGen/InterleavedAccessPass.cpp (diff) |
Commit
5b86eaeb7e4d0b508e8dc9592b63361c5abb1e48
by npopovReapply [LowerTypeTests] Avoid creation of select constant expression
Reapply with a fix for phi handling: For phis, we need to insert into the incoming block, not above the phi. This is especially tricky if there are multiple incoming values from the same predecessor, because these must all use the same value.
-----
LowerTypeTests replaces weak declarations with an icmp+select constant expressions. As this is not a relocatable expression, it additionally promotes initializers using it to global ctors.
As part of https://discourse.llvm.org/t/rfc-remove-most-constant-expressions/63179, I would like to remove the select constant expression, of which LTT is now the last user. This is a bit tricky, because we now need to replace a constant with an instruction, which might require converting intermediate constant expression users to instructions as well.
We do this using the convertUsersOfConstantsToInstructions() helper. However, it needs to be slightly extended to also support expansion of ConstantAggregates. These are important in this context, because the promotion of initializers to global ctors will produce stores of such aggregates.
Differential Revision: https://reviews.llvm.org/D145247
|
 | llvm/test/Transforms/LowerTypeTests/function-weak.ll (diff) |
 | llvm/lib/Transforms/IPO/LowerTypeTests.cpp (diff) |
 | llvm/test/Transforms/LowerTypeTests/cfi-direct-call1.ll (diff) |
 | llvm/lib/IR/ReplaceConstant.cpp (diff) |
Commit
0fa20ecafe0c3c7ffde413800eb4b1551b432273
by nicolas.vasilache[mlir][Affine] Add helper functions to allow reordering affine.apply operands and decompose the ops into smaller components
Care is taken to order operands from least hoistable to most hoistable and to process subexpressions in the same order.
This allows exposing more oppportunities for licm, cse and strength reduction.
Such a step should typically be applied while we still have loops in the IR and just before lowering affine ops to arith. This is because the affine.apply canonicalization currently tries to maximally compose chains of affine.apply operations and could undo the effects of these decompositions.
Depends on: D145784
Differential Revision: https://reviews.llvm.org/D145685
|
 | mlir/include/mlir/Dialect/Affine/Passes.h (diff) |
 | mlir/lib/Dialect/Affine/Transforms/AffineExpandIndexOps.cpp (diff) |
 | mlir/lib/Dialect/Affine/Transforms/CMakeLists.txt (diff) |
 | mlir/tools/mlir-opt/mlir-opt.cpp (diff) |
 | mlir/test/Dialect/Affine/decompose-affine-ops.mlir |
 | mlir/test/lib/Dialect/Affine/CMakeLists.txt (diff) |
 | mlir/test/lib/Dialect/Affine/TestDecomposeAffineOps.cpp |
 | mlir/include/mlir/Dialect/Affine/Transforms/Transforms.h |
 | mlir/lib/Dialect/Affine/Transforms/DecomposeAffineOps.cpp |
Commit
0246c6148474f724c40c6328857bc4aa77c8b590
by asb[RISCV][test] Test case for regression when MachineOutliner and MachineCopyPropagation are both enabled
MachineCopyPropagation removes a register copy in the outlined function as it doesn't see that it's live-out from the function.
|
 | llvm/test/CodeGen/RISCV/machine-outliner-and-machine-copy-propagation.ll |
|
 | mlir/include/mlir/Dialect/GPU/TransformOps/GPUTransformOps.td (diff) |
 | mlir/lib/Dialect/Linalg/Transforms/Transforms.cpp (diff) |
 | mlir/lib/Dialect/SCF/TransformOps/SCFTransformOps.cpp (diff) |
 | mlir/test/Dialect/GPU/transform-gpu-failing.mlir (diff) |
 | mlir/lib/Dialect/Affine/TransformOps/AffineTransformOps.cpp (diff) |
 | mlir/lib/Dialect/Transform/IR/TransformOps.cpp (diff) |
 | mlir/test/Dialect/GPU/transform-gpu.mlir (diff) |
 | mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h (diff) |
 | mlir/include/mlir/Dialect/SCF/Transforms/Transforms.h (diff) |
 | mlir/lib/Dialect/Linalg/Transforms/SplitReduction.cpp (diff) |
 | mlir/include/mlir/Dialect/SCF/Transforms/Patterns.h (diff) |
 | mlir/lib/Dialect/GPU/TransformOps/GPUTransformOps.cpp (diff) |
 | mlir/lib/Dialect/SCF/Transforms/LoopPipelining.cpp (diff) |
 | mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp (diff) |
 | mlir/include/mlir/Dialect/SCF/Transforms/TileUsingInterface.h (diff) |
 | mlir/lib/Dialect/SCF/Transforms/TileUsingInterface.cpp (diff) |
 | mlir/include/mlir/Dialect/GPU/TransformOps/GPUTransformOps.h (diff) |
 | mlir/include/mlir/Dialect/Transform/IR/TransformUtils.h |
 | mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp (diff) |
 | mlir/test/lib/Dialect/SCF/TestSCFUtils.cpp (diff) |
 | mlir/lib/Dialect/Linalg/Transforms/Loops.cpp (diff) |
Commit
d8c2a10297f19b708ed0dae8d0fe8415a0f8e5e8
by me[X86] Add negative test for D145930
This patch adds a negative test for the issue discovered in D145930.
Differential Revision: https://reviews.llvm.org/D145933
|
 | llvm/test/CodeGen/X86/pr61384.ll |
|
 | llvm/test/CodeGen/X86/pr61384.ll (diff) |
 | llvm/lib/Target/X86/X86InstrCompiler.td (diff) |
Commit
710983ab540fa372e846d47e9fa80b7d8b96afb1
by kadircet[Support][MemBuffer] Prevent UB on empty StringRefs
Empty StringRefs are usually identified by their length being zero, and sometimes they'll have Data==nullptr (e.g. default constructed, or derived from an operation like split/copy and result turned out to be empty).
If such StringRef objects are passed to llvm::MemoryBuffer::getMemBufferCopy, it'll result in UB as neither src nor dst can be null, even if size is zero.
This patch prevents that UB by not issuing a copy whenever StringRef is empty.
Differential Revision: https://reviews.llvm.org/D144706
|
 | llvm/unittests/Support/MemoryBufferTest.cpp (diff) |
 | llvm/lib/Support/MemoryBuffer.cpp (diff) |
|
 | mlir/lib/Dialect/Utils/StaticValueUtils.cpp (diff) |
 | mlir/include/mlir/Dialect/GPU/TransformOps/GPUTransformOps.h (diff) |
 | mlir/test/Dialect/GPU/transform-gpu.mlir (diff) |
 | mlir/include/mlir/Dialect/Utils/StaticValueUtils.h (diff) |
 | mlir/test/Dialect/GPU/transform-gpu-failing.mlir (diff) |
 | mlir/lib/Dialect/GPU/TransformOps/GPUTransformOps.cpp (diff) |
 | mlir/lib/Dialect/SCF/IR/SCF.cpp (diff) |
 | mlir/include/mlir/Dialect/SCF/IR/SCFOps.td (diff) |
|
 | clang/lib/Tooling/Inclusions/Stdlib/StdSymbolMap.inc (diff) |
 | clang/tools/include-mapping/gen_std.py (diff) |
|
 | llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp (diff) |
|
 | llvm/test/CodeGen/Thumb2/mve-complex-deinterleaving-mixed-cases.ll (diff) |
 | llvm/include/llvm/CodeGen/ComplexDeinterleavingPass.h (diff) |
 | llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp (diff) |
 | llvm/test/CodeGen/AArch64/complex-deinterleaving-mixed-cases.ll (diff) |
|
 | third-party/unittest/googletest/include/gtest/gtest-matchers.h (diff) |
Commit
c11c2f5f6548a5303517c89ba6629bbfa7fae0d9
by kadircet[clangd] Drop stale macro and mark ranges
I'll follow up with patching of those ranges, this is to stop bleeding mentioned in https://github.com/clangd/clangd/issues/1537.
Differential Revision: https://reviews.llvm.org/D146024
|
 | clang-tools-extra/clangd/unittests/PreambleTests.cpp (diff) |
 | clang-tools-extra/clangd/Preamble.cpp (diff) |
 | clang-tools-extra/clangd/Preamble.h (diff) |
 | clang-tools-extra/clangd/ParsedAST.cpp (diff) |
Commit
eb54254b6e09afd726feefbebd1a74a4bc028722
by chunyu[RISCV] Return false from shouldFormOverflowOp when type is i8 and i16
i8 and i16 are not using overflow. Reduce the number of zero extension instructions.
To reduce the uncertainty of the unknown, most of the checks of the virtual function are kept
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D143646
|
 | llvm/lib/Target/RISCV/RISCVISelLowering.h (diff) |
 | llvm/test/CodeGen/RISCV/overflow-intrinsics.ll (diff) |
Commit
de401ac2a4ab74392b8234aa3a517481a1e2762c
by aaron[clang][Sema] Avoid duplicate diagnostics for unreachable fallthrough attribute
This patch checks whether -Wunreachable-code-fallthrough is enabled when clang encounters unreachable fallthrough attributes and, if so, suppresses code will never be executed warning to avoid duplicate warnings.
Fixes https://github.com/llvm/llvm-project/issues/60416 Differential Revision: https://reviews.llvm.org/D145842
|
 | clang/docs/ReleaseNotes.rst (diff) |
 | clang/include/clang/Analysis/Analyses/ReachableCode.h (diff) |
 | clang/lib/Analysis/ReachableCode.cpp (diff) |
 | clang/test/Sema/warn-unreachable-fallthrough.c |
 | clang/lib/Sema/AnalysisBasedWarnings.cpp (diff) |
Commit
e9a03f360fa964d90a4c55884ac8ac8a00abc896
by asb[RISCV] Reject 'g' with explicit version in parseArchString
There is no versioning scheme for the 'g' shorthand for imafd (or in current ISA specs, imafd_zifencei_zicsr). As such, the only sensible behaviour to me seems to be to reject a version for it.
Differential Revision: https://reviews.llvm.org/D145954
|
 | llvm/lib/Support/RISCVISAInfo.cpp (diff) |
 | llvm/unittests/Support/RISCVISAInfoTest.cpp (diff) |
|
 | utils/bazel/llvm-project-overlay/libc/BUILD.bazel (diff) |
 | libc/src/string/memory_utils/aarch64/memcmp_implementations.h |
 | libc/src/string/memory_utils/CMakeLists.txt (diff) |
 | libc/src/string/memory_utils/x86_64/memcmp_implementations.h |
 | libc/src/string/memory_utils/memcmp_implementations.h (diff) |
|
 | utils/bazel/llvm-project-overlay/mlir/BUILD.bazel (diff) |
|
 | clang/lib/Sema/SemaDecl.cpp (diff) |
 | clang/lib/Sema/Sema.cpp (diff) |
 | clang/include/clang/Sema/Sema.h (diff) |
Commit
bd94662697ebfaf761a389a3a59677fc0bf38b31
by leandro.lupori[flang] Handle mismatches of procedure type args
Fortran allows type mismatch when passing actual arguments to procedures and most cases were already being handled correctly by Flang. However, conversion of data types to and from procedures and conversion between procedures and char procedures were not always handled properly. The missing cases were added and these conversions are supported now.
Fixes #60550
Reviewed By: jeanPerier
Differential Revision: https://reviews.llvm.org/D145601
|
 | flang/test/Lower/implicit-call-mismatch.f90 |
 | flang/lib/Lower/ConvertExpr.cpp (diff) |
 | flang/lib/Optimizer/Builder/FIRBuilder.cpp (diff) |
|
 | utils/bazel/llvm-project-overlay/mlir/BUILD.bazel (diff) |
Commit
20fb4c3270b9d3596f213623d39c507711d1c165
by aaronRevert "Fix include order in CXType.cpp"
This reverts commit 4d55a0b512a17dfaa2461b8803d37b79f6c9691d.
The addition of clang_isBitFieldDecl is not needed because clang_Cursor_isBitField already exists.
|
 | clang/include/clang-c/Index.h (diff) |
 | clang/tools/libclang/libclang.map (diff) |
 | clang/tools/libclang/CXType.cpp (diff) |
 | clang/docs/ReleaseNotes.rst (diff) |
|
 | libc/src/string/memory_utils/memcmp_implementations.h (diff) |
 | libc/src/string/memory_utils/x86_64/memcmp_implementations.h |
 | libc/src/string/memory_utils/aarch64/memcmp_implementations.h |
 | utils/bazel/llvm-project-overlay/libc/BUILD.bazel (diff) |
 | libc/src/string/memory_utils/CMakeLists.txt (diff) |
|
 | libc/src/string/memory_utils/aarch64/memcmp_implementations.h |
 | libc/src/string/memory_utils/memcmp_implementations.h (diff) |
 | libc/src/string/memory_utils/x86_64/memcmp_implementations.h |
 | utils/bazel/llvm-project-overlay/libc/BUILD.bazel (diff) |
 | libc/src/string/memory_utils/CMakeLists.txt (diff) |
Commit
0ea6f0e15878bdc7c6afc0a4aa50e0836fa495d6
by pierre.vanhoutryve[AMDGPU] Don't run `llc-pipeline.ll` when expensive_checks are enabled
AMDGPU ISel can add extra passes when expensive checks are enabled. This means the pipeline can be reordered and the checks may fail.
Reviewed By: arsenm
Differential Revision: https://reviews.llvm.org/D146038
|
 | llvm/test/CodeGen/AMDGPU/llc-pipeline.ll (diff) |
|
 | clang/test/Driver/ohos.c (diff) |
 | clang/test/Driver/ohos.cpp (diff) |
Commit
a031f72187ce495b9faa4ccf99b1e901a3872f4b
by jhuber6[libc] Correctly pass the compile options to the internal GPU compilation
Summary: We use an internal option to create the GPU binary used for testing. This wasn't getting the proper flags passed to it due to a missing variable name.
|
 | libc/cmake/modules/LLVMLibCObjectRules.cmake (diff) |
Commit
874c49f55454cb285282e6d184f809945c0beca1
by a.bataev[SLP]Fix PR61395: need to adjust vector factor after emitting shuffle operation for combined entries.
The vector factor after combining of the shuffle entries is defined by the size of the mask, not by the vector factors of the original entries. So, need to adjust it to emit correct code.
|
 | llvm/test/Transforms/SLPVectorizer/X86/entries-different-vf.ll |
 | llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp (diff) |
Commit
1f1fea6c380ef397f2a2416f14f8945d294a4682
by pierre.vanhoutryveReland: [DAG/AMDGPU] Use UniformityAnalysis in DAGISel
Switch DAGISel over to UniformityAnalysis, which was one of the last remaining users of the DivergenceAnalysis. No explosions seen during internal testing so this looks like a smooth transition.
Reviewed By: sameerds
Differential Revision: https://reviews.llvm.org/D145918
|
 | llvm/lib/Target/AMDGPU/SIISelLowering.cpp (diff) |
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp (diff) |
 | llvm/lib/Target/AMDGPU/SIISelLowering.h (diff) |
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp (diff) |
 | llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp (diff) |
 | llvm/test/CodeGen/AMDGPU/llc-pipeline.ll (diff) |
 | llvm/include/llvm/CodeGen/SelectionDAG.h (diff) |
 | llvm/include/llvm/CodeGen/FunctionLoweringInfo.h (diff) |
 | llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp (diff) |
 | llvm/include/llvm/CodeGen/TargetLowering.h (diff) |
Commit
d12af65d4626ac69faf8f56afd30971b8a2fc3b3
by mkazantsev[TTI] Treat AND/OR with widenable conditions as free of cost
Because widenable conditions with eventually lower into a constant, such instructions as `and`, `or` etc. will also be optimized away. Treat them as free.
This is an important thing to have if we want that guards represented as experimental.guard calls and in their explicit form (branch by `and` with widenable condition) have the same cost for unroller and other passes like this.
Differential Revision: https://reviews.llvm.org/D146034 Reviewed By: nikic
|
 | llvm/test/Transforms/LoopUnroll/guard-cost-for-unrolling.ll (diff) |
 | llvm/include/llvm/Analysis/TargetTransformInfoImpl.h (diff) |
Commit
48fb6659610a3177e8606681046dfa0d19f67203
by aaron[libclang] No longer attempt to get a dependent bit-width
Handle template parameter-dependent bit field widths in libclang
In a class template, a bit field's width may depend on a template parameter. In this case the width expression cannot be evaluated.
Previously clang_getFieldDeclBitWidth() would assert, or cause memory unsafety and return an invalid result if assertions are disabled.
This adds a check for this case which returns an error code.
This work was largely taken from an earlier patch which was reverted due to an accidental API duplication (https://reviews.llvm.org/D130303).
Fixes: https://github.com/llvm/llvm-project/issues/56644 Co-authored-by: Aaron Ballman <aaron@aaronballman.com> Differential Revision: https://reviews.llvm.org/D146039
|
 | clang/docs/ReleaseNotes.rst (diff) |
 | clang/tools/libclang/CXType.cpp (diff) |
 | clang/include/clang-c/Index.h (diff) |
|
 | llvm/test/Transforms/PhaseOrdering/dae-dce.ll |
Commit
55aa4bfaee8a2bd5c56765b4d54c4115dcc5d6f3
by jiefu[lldb] Fix -Wswitch in TypeSystemClang.cpp ('SveBoolx2' and 'SveBoolx4' not handled in switch) (NFC)
/data/llvm-project/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp:4859:13: error: enumeration values 'SveBoolx2' and 'SveBoolx4' not handled in switch [-Werror,-Wswitch] switch (llvm::cast<clang::BuiltinType>(qual_type)->getKind()) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 error generated.
|
 | lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp (diff) |
Commit
022f2fa3ad2face29baf00e584cfc5d8be52c58b
by jhuber6[libc] Remove dummy archive and file from integration test
This doesn't seem to be used anymore after recent changes that removed the `--sysroot` method for the integration tests.
Reviewed By: sivachandra, lntue
Differential Revision: https://reviews.llvm.org/D146040
|
 | libc/test/integration/CMakeLists.txt (diff) |
 | libc/test/integration/dummy.cpp |
|
 | llvm/test/CodeGen/X86/abdu-vector-128.ll (diff) |
 | llvm/test/CodeGen/X86/abds-vector-128.ll (diff) |
 | llvm/test/CodeGen/X86/abdu-vector-512.ll (diff) |
 | llvm/test/CodeGen/X86/abds-vector-256.ll (diff) |
 | llvm/test/CodeGen/X86/abds-vector-512.ll (diff) |
 | llvm/test/CodeGen/X86/abdu-vector-256.ll (diff) |
Commit
4bf004e07e2b9d6e04e3f33e1b02628c679de664
by llvm-dev[DAG] Fold (bitcast (logicop (bitcast x), (c))) -> (logicop x, (bitcast c)) iff the current logicop type is illegal
Try to remove extra bitcasts around logicops if we're dealing with illegal types
Fixes the regressions in D145939
Differential Revision: https://reviews.llvm.org/D146032
|
 | llvm/test/CodeGen/AMDGPU/fneg.ll (diff) |
 | llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (diff) |
Commit
4e3c8720c0da2614b25e32dd473b3fa5da3e2592
by geek4civicllvm/test/TableGen/intrinsic-pointer-to-any.td: Rework D125247.
It should've updated the number of `def i8 : ValueType<8, 3>;` to `5`, since it renumbered ValueTypes.
FYI, the number 3 is `i2` and `IIT_I2(57)` was chosen in IntrinsicEmitter.
|
 | llvm/test/TableGen/intrinsic-pointer-to-any.td (diff) |
Commit
f80a976acd85611acd795225999a92bba57c76e6
by kubak[mlir][vector] Add gather lowering patterns
This is for targets that do not support gather-like ops, e.g., SPIR-V.
Gather is expanded into lower-level vector ops with memory accesses guarded with `scf.if`.
I also considered generating `vector.maskedload`s, but decided against it to keep the `memref` and `tensor` codepath closer together. There's a good chance that if a target doesn't support gather it does not support masked loads either.
Issue: https://github.com/llvm/llvm-project/issues/60905
Reviewed By: ThomasRaoux
Differential Revision: https://reviews.llvm.org/D145942
|
 | mlir/include/mlir/Dialect/Vector/Transforms/VectorRewritePatterns.h (diff) |
 | mlir/test/lib/Dialect/Vector/TestVectorTransforms.cpp (diff) |
 | mlir/lib/Dialect/Vector/Transforms/VectorTransforms.cpp (diff) |
 | mlir/test/Dialect/Vector/vector-gather-lowering.mlir |
|
 | openmp/docs/design/Runtimes.rst (diff) |
Commit
6472a2ee363f3b5ac823e471b7ba5582c101a528
by clementval[flang] Handle parent component on the LHS of intrinsic assignment
When the LHS is referring to a parent component the box need to be reboxed to the parent component type so the runtime can handle the assignment correctly.
Reviewed By: PeteSteinfeld
Differential Revision: https://reviews.llvm.org/D146046
|
 | flang/lib/Lower/Bridge.cpp (diff) |
 | flang/test/Lower/parent-component.f90 (diff) |
Commit
070283825aaff778f7fb527ebc4ef74c84b6c889
by kubak[mlir][vector] Clarify OOB semantics of remaining load/store ops
This is a follow up for https://reviews.llvm.org/D145824 that clarifies the out-of-bounds behavior for other masked load/store ops. It uses the same wording and informal semantics syntax as `gather` and `scatter`.
Issue: https://github.com/llvm/llvm-project/issues/60905
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D145975
|
 | mlir/include/mlir/Dialect/Vector/IR/VectorOps.td (diff) |
|
 | llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h (diff) |
 | llvm/lib/CodeGen/SlotIndexes.cpp (diff) |
 | llvm/lib/CodeGen/LiveDebugValues/VarLocBasedImpl.cpp (diff) |
 | llvm/lib/CodeGen/MachineBlockPlacement.cpp (diff) |
 | llvm/lib/CodeGen/MIRVRegNamerUtils.cpp (diff) |
 | llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp (diff) |
 | llvm/lib/CodeGen/InlineSpiller.cpp (diff) |
 | llvm/lib/CodeGen/CodeGenPrepare.cpp (diff) |
 | llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp (diff) |
 | llvm/lib/CodeGen/MachineLICM.cpp (diff) |
Commit
0950332e91df0281c386874c45d7ce33b7da495b
by aaronFix false positive with unreachable C++ catch handlers
This addresses an issue found by WG21 and tracked by CWG2699 (which is not yet publicly published). The basic problem is that Clang issues a diagnostic about not being able to reach a handler, but that handler *is* reached at runtime. Clang's diagnostic behavior was matching the standard wording, and our runtime behavior was matching the standard's intent.
This fixes the diagnostic so that it matches the runtime behavior more closely, and reduces the number of false positives. This is the direction of choice taken by Core for CWG2699 and it seems unlikely that WG21 will change direction here.
Fixes https://github.com/llvm/llvm-project/issues/61177 Differential Revision: https://reviews.llvm.org/D145408
|
 | clang/test/CXX/drs/dr3xx.cpp (diff) |
 | clang/docs/ReleaseNotes.rst (diff) |
 | clang/test/SemaCXX/unreachable-catch-clauses.cpp (diff) |
 | clang/lib/Sema/SemaStmt.cpp (diff) |
Commit
da570ef1b4f856603970ecb14299947fb6cd678a
by llvm-dev[DAG] Match select(icmp(x,y),sub(x,y),sub(y,x)) -> abd(x,y) patterns
Pulled out of PowerPC, and added ABDS support as well (hence the additional v4i32 PPC matches)
Differential Revision: https://reviews.llvm.org/D144789
|
 | llvm/test/CodeGen/AArch64/abd-combine.ll (diff) |
 | llvm/lib/Target/PowerPC/PPCISelLowering.h (diff) |
 | llvm/test/CodeGen/X86/abds-vector-128.ll (diff) |
 | llvm/test/CodeGen/X86/abdu-vector-256.ll (diff) |
 | llvm/lib/Target/PowerPC/PPCISelLowering.cpp (diff) |
 | llvm/test/CodeGen/X86/abds-vector-256.ll (diff) |
 | llvm/test/CodeGen/X86/abdu-vector-512.ll (diff) |
 | llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (diff) |
 | llvm/test/CodeGen/PowerPC/ppc64-P9-vabsd.ll (diff) |
 | llvm/test/CodeGen/X86/abds-vector-512.ll (diff) |
 | llvm/test/CodeGen/X86/abdu-vector-128.ll (diff) |
|
 | llvm/docs/CommandGuide/index.rst (diff) |
 | llvm/docs/CommandGuide/llvm-reduce.rst |