Changes

Summary

  1. NFC Fix cost model checks in tests for debug intrinsics (details)
  2. [mlir] Move tosa.concat lowering from TosaToLinalg to TosaToTensor (details)
  3. [LLVM][OHOS] Clang toolchain and targets (details)
  4. [Assignment Tracking] getIntrinsicInstrCost: set dbg.assign cost to zero (details)
  5. [Test] Add missing REQUIRES: asserts in test (details)
  6. [SCEV] Clarify ControlsExit comment (NFC) (details)
  7. [InstCombine] Regenerate test checks (NFC) (details)
  8. [SCEV] Fix finite loop non-strict predicate simplification (PR60944) (details)
  9. [SCEV] Rename ControlsExit -> ControlsOnlyExit (NFC) (details)
  10. [TTI] Evaluate cost of experimental_widenable_condition as zero (details)
  11. [AArch64] Add svboolx2_t and svboolx4_t tuple types (details)
  12. [DAG/AMDGPU] Use UniformityAnalysis in DAGISel (details)
  13. [StructurizeCFG] Correctly depend on UniformityAnalysis (details)
  14. [IndVars] Option verify-indvars is broken (and always has been), delete it (details)
  15. [NFC] Drop NDEBUG around MSSA verification (details)
  16. [mlir][DialectUtils] Cleanup IndexingUtils and provide more affine variants while reusing implementations (details)
  17. [clang-format] Treat &/&& as reference when followed by requires clause (details)
  18. Revert "[DAG/AMDGPU] Use UniformityAnalysis in DAGISel" (details)
  19. [RISCV][NFC] Share interleave mask checking logic (details)
  20. Reapply [LowerTypeTests] Avoid creation of select constant expression (details)
  21. [mlir][Affine] Add helper functions to allow reordering affine.apply operands and decompose the ops into smaller components (details)
  22. [RISCV][test] Test case for regression when MachineOutliner and MachineCopyPropagation are both enabled (details)
  23. [mlir][Transform] NFC - Various API cleanups and use RewriterBase in lieu of PatternRewriter (details)
  24. [X86] Add negative test for D145930 (details)
  25. [X86] Fix encoding for ATOMIC_LOGIC_OP (details)
  26. [Support][MemBuffer] Prevent UB on empty StringRefs (details)
  27. [mlir][GPUTransforms] NFC - Refactor GPUTransforms.cpp in preparation for improvements. (details)
  28. [Tooling/Inclusion] Index more sub std namespace symbols. (details)
  29. Cleanup of Complex Deinterleaving pass (NFCI) (details)
  30. [Codegen][ARM][AArch64] Support symmetric operations on complex numbers (details)
  31. Remove an extra `//` in the IWYU pragma for gtest-matchers.h (details)
  32. [clangd] Drop stale macro and mark ranges (details)
  33. [RISCV] Return false from shouldFormOverflowOp when type is i8 and i16 (details)
  34. [clang][Sema] Avoid duplicate diagnostics for unreachable fallthrough attribute (details)
  35. [RISCV] Reject 'g' with explicit version in parseArchString (details)
  36. [libc][NFC] Move memcmp implementations in subfolders (details)
  37. [mlir][Bazel] Adjust build after 0fa20ecafe0c3c7ffde413800eb4b1551b432273 (details)
  38. [clang][sema][NFC] Make a few functions const (details)
  39. [flang] Handle mismatches of procedure type args (details)
  40. [mlir][Bazel] Adjust build after aafb52d7c9226cd9925bd5135309bd02b6e3b59d (details)
  41. Revert "Fix include order in CXType.cpp" (details)
  42. Revert "[libc][NFC] Move memcmp implementations in subfolders" (details)
  43. [reland][libc][NFC] Move memcmp implementations in subfolders (details)
  44. [AMDGPU] Don't run `llc-pipeline.ll` when expensive_checks are enabled (details)
  45. [NFC][OHOS] Temporarily switch off tests for windows (details)
  46. [libc] Correctly pass the compile options to the internal GPU compilation (details)
  47. [SLP]Fix PR61395: need to adjust vector factor after emitting shuffle (details)
  48. Reland: [DAG/AMDGPU] Use UniformityAnalysis in DAGISel (details)
  49. [TTI] Treat AND/OR with widenable conditions as free of cost (details)
  50. [libclang] No longer attempt to get a dependent bit-width (details)
  51. [PhaseOrdering] Add test for DAE/GlobalDCE interaction (NFC) (details)
  52. [lldb] Fix -Wswitch in TypeSystemClang.cpp ('SveBoolx2' and 'SveBoolx4' not handled in switch) (NFC) (details)
  53. [libc] Remove dummy archive and file from integration test (details)
  54. [X86] Fix typo in vXi64 ABDS/ABDU test cases (details)
  55. [DAG] Fold (bitcast (logicop (bitcast x), (c))) -> (logicop x, (bitcast c)) iff the current logicop type is illegal (details)
  56. llvm/test/TableGen/intrinsic-pointer-to-any.td: Rework D125247. (details)
  57. [mlir][vector] Add gather lowering patterns (details)
  58. [OpenMP][libomptarget][NFC] Add documentation regarding NextGen plugins (details)
  59. [flang] Handle parent component on the LHS of intrinsic assignment (details)
  60. [mlir][vector] Clarify OOB semantics of remaining load/store ops (details)
  61. [CodeGen] Use *{Set,Map}::contains (NFC) (details)
  62. Fix false positive with unreachable C++ catch handlers (details)
  63. [DAG] Match select(icmp(x,y),sub(x,y),sub(y,x)) -> abd(x,y) patterns (details)
  64. [Docs] Added llvm-reduce docs in CommandGuide (details)
Commit d71b1f738d55dce1236c624b240152a26f07d5f7 by orlando.hyams
NFC 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
The file was modifiedllvm/test/Analysis/CostModel/X86/free-intrinsics.ll (diff)
The file was modifiedllvm/test/Analysis/CostModel/free-intrinsics-datalayout.ll (diff)
The file was modifiedllvm/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
The file was modifiedmlir/test/Conversion/TosaToTensor/tosa-to-tensor.mlir (diff)
The file was modifiedmlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp (diff)
The file was modifiedmlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir (diff)
The file was modifiedmlir/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
The file was addedclang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/a7_hard_neon-vfpv4/libclang_rt.profile.a
The file was addedclang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/a7_soft/libclang_rt.profile.a
The file was addedclang/test/Driver/Inputs/ohos_native_tree/sysroot/usr/lib/arm-liteos-ohos/.keep
The file was addedclang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/a7_hard_neon-vfpv4/clang_rt.crtbegin.o
The file was modifiedclang/include/clang/Basic/Attr.td (diff)
The file was modifiedclang/lib/Basic/Targets.cpp (diff)
The file was addedclang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/libclang_rt.builtins.a
The file was addedclang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/a7_softfp_neon-vfpv4/libclang_rt.builtins.a
The file was modifiedclang/lib/Driver/ToolChains/Arch/ARM.cpp (diff)
The file was addedclang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/a7_hard_neon-vfpv4/.keep
The file was addedclang/test/Driver/Inputs/ohos_native_tree/sysroot/usr/lib/arm-liteos-ohos/a7_hard_neon-vfpv4/.keep
The file was addedclang/test/Driver/Inputs/ohos_native_tree/sysroot/usr/lib/arm-liteos-ohos/a7_soft/.keep
The file was addedclang/test/Driver/Inputs/ohos_native_tree/llvm/lib/arm-liteos-ohos/libc++.so
The file was addedclang/test/Driver/ohos.c
The file was addedclang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/a7_soft/clang_rt.crtbegin.o
The file was modifiedclang/lib/Driver/CMakeLists.txt (diff)
The file was modifiedclang/lib/Driver/Driver.cpp (diff)
The file was addedclang/test/Driver/Inputs/ohos_native_tree/sysroot/usr/include/arm-liteos-ohos/.keep
The file was modifiedclang/lib/Driver/ToolChains/Arch/AArch64.cpp (diff)
The file was addedclang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/a7_hard_neon-vfpv4/libclang_rt.builtins.a
The file was modifiedclang/lib/Driver/ToolChains/CommonArgs.cpp (diff)
The file was addedclang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/a7_soft/libclang_rt.builtins.a
The file was addedclang/test/Driver/Inputs/ohos_native_tree/llvm/lib/arm-liteos-ohos/a7_hard_neon-vfpv4/libc++.so
The file was modifiedclang/lib/Basic/Targets/OSTargets.h (diff)
The file was addedclang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/a7_softfp_neon-vfpv4/.keep
The file was addedclang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/a7_hard_neon-vfpv4/clang_rt.crtend.o
The file was addedclang/test/Driver/Inputs/ohos_native_tree/llvm/include/c++/v1/.keep
The file was addedclang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/libclang_rt.profile.a
The file was addedclang/test/Driver/Inputs/ohos_native_tree/llvm/lib/arm-liteos-ohos/c++/a7_soft/libc++.so
The file was addedclang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/a7_soft/.keep
The file was addedclang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/clang_rt.crtend.o
The file was addedclang/lib/Driver/ToolChains/OHOS.h
The file was modifiedclang/lib/Basic/TargetInfo.cpp (diff)
The file was addedclang/test/Driver/Inputs/ohos_native_tree/llvm/lib/arm-liteos-ohos/c++/a7_softfp_neon-vfpv4/libc++.so
The file was addedclang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/clang_rt.crtbegin.o
The file was modifiedclang/include/clang/Driver/ToolChain.h (diff)
The file was addedclang/test/Driver/Inputs/ohos_native_tree/sysroot/usr/include/.keep
The file was addedclang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/.keep
The file was modifiedclang/lib/Basic/Targets/ARM.cpp (diff)
The file was modifiedclang/test/CodeGen/aarch64-fix-cortex-a53-835769.c (diff)
The file was addedclang/lib/Driver/ToolChains/OHOS.cpp
The file was addedclang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/a7_softfp_neon-vfpv4/clang_rt.crtbegin.o
The file was modifiedclang/lib/Driver/ToolChains/Gnu.cpp (diff)
The file was addedclang/test/Driver/Inputs/ohos_native_tree/llvm/bin/.keep
The file was addedclang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/a7_softfp_neon-vfpv4/clang_rt.crtend.o
The file was modifiedclang/lib/Basic/Targets/X86.h (diff)
The file was addedclang/test/Driver/Inputs/ohos_native_tree/llvm/lib/arm-liteos-ohos/c++/a7_hard_neon-vfpv4/libc++.so
The file was addedclang/test/Driver/ohos.cpp
The file was modifiedclang/lib/CodeGen/ABIInfo.h (diff)
The file was addedclang/test/Driver/Inputs/ohos_native_tree/llvm/lib/arm-liteos-ohos/a7_soft/libc++.so
The file was addedclang/test/Driver/Inputs/ohos_native_tree/llvm/lib/arm-liteos-ohos/a7_softfp_neon-vfpv4/libc++.so
The file was addedclang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/a7_soft/clang_rt.crtend.o
The file was modifiedclang/lib/CodeGen/TargetInfo.cpp (diff)
The file was addedclang/test/Driver/Inputs/ohos_native_tree/llvm/lib/clang/x.y.z/lib/arm-liteos-ohos/a7_softfp_neon-vfpv4/libclang_rt.profile.a
The file was addedclang/test/Driver/Inputs/ohos_native_tree/sysroot/usr/lib/.keep
The file was addedclang/test/Preprocessor/ohos.c
The file was addedclang/test/Driver/Inputs/ohos_native_tree/sysroot/usr/lib/arm-liteos-ohos/a7_softfp_neon-vfpv4/.keep
Commit 37bf5c500494f55db7378a1e371346cc8b37706b by orlando.hyams
[Assignment Tracking] getIntrinsicInstrCost: set dbg.assign cost to zero

Reviewed By: jmorse

Differential Revision: https://reviews.llvm.org/D144652
The file was modifiedllvm/test/Analysis/CostModel/free-intrinsics-datalayout.ll (diff)
The file was modifiedllvm/test/Analysis/CostModel/free-intrinsics-no_info.ll (diff)
The file was modifiedllvm/test/Analysis/CostModel/X86/free-intrinsics.ll (diff)
The file was modifiedllvm/include/llvm/Analysis/TargetTransformInfoImpl.h (diff)
Commit 77308dd400a1bc11eb267821b6df9a9bd2cfce54 by mkazantsev
[Test] Add missing REQUIRES: asserts in test
The file was modifiedllvm/test/Transforms/LoopUnroll/guard-cost-for-unrolling.ll (diff)
Commit 6d70812789c2583333c25ff15c5e2b166d66ce1b by npopov
[SCEV] Clarify ControlsExit comment (NFC)

ControlsExit implies a single exit branch.
The file was modifiedllvm/include/llvm/Analysis/ScalarEvolution.h (diff)
Commit ff11d6b6f6e27f5de389002b8f6102b6cf3ed474 by npopov
[InstCombine] Regenerate test checks (NFC)
The file was modifiedllvm/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
The file was modifiedllvm/test/Transforms/IndVarSimplify/range-iter-threshold.ll (diff)
The file was modifiedllvm/test/Transforms/IndVarSimplify/rewrite-loop-exit-value.ll (diff)
The file was modifiedllvm/test/Analysis/ScalarEvolution/finite-trip-count.ll (diff)
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp (diff)
The file was modifiedllvm/test/Transforms/IndVarSimplify/pr60944.ll (diff)
The file was modifiedllvm/include/llvm/Analysis/ScalarEvolution.h (diff)
Commit 2f3dc5fa8b5ddc6cec944580ec59a66cefdf54e7 by npopov
[SCEV] Rename ControlsExit -> ControlsOnlyExit (NFC)

As suggested in https://reviews.llvm.org/D145510#4192162.
The file was modifiedllvm/include/llvm/Analysis/ScalarEvolution.h (diff)
The file was modifiedllvm/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
The file was modifiedllvm/test/Transforms/LoopUnroll/guard-cost-for-unrolling.ll (diff)
The file was modifiedllvm/include/llvm/Analysis/TargetTransformInfoImpl.h (diff)
Commit a1fae98ba95c18ea6b673fc3c177b917e0f5aa56 by matthew.devereau
[AArch64] Add svboolx2_t and svboolx4_t tuple types

https://reviews.llvm.org/D145505
The file was modifiedclang/lib/CodeGen/CodeGenTypes.cpp (diff)
The file was modifiedclang/lib/AST/Type.cpp (diff)
The file was modifiedclang/test/CodeGenCXX/aarch64-mangle-sve-vectors.cpp (diff)
The file was modifiedclang/utils/TableGen/SveEmitter.cpp (diff)
The file was addedclang/test/CodeGen/svboolx4_t.cpp
The file was modifiedclang/lib/AST/ASTContext.cpp (diff)
The file was modifiedclang/include/clang/Basic/AArch64SVEACLETypes.def (diff)
The file was addedclang/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
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp (diff)
The file was modifiedllvm/include/llvm/CodeGen/TargetLowering.h (diff)
The file was modifiedllvm/include/llvm/CodeGen/FunctionLoweringInfo.h (diff)
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp (diff)
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.h (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/llc-pipeline.ll (diff)
The file was modifiedllvm/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.
The file was modifiedllvm/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
The file was modifiedllvm/lib/Transforms/Scalar/IndVarSimplify.cpp (diff)
Commit c113d0b766983635eafad3c4a4ce93fe32f6146d by mkazantsev
[NFC] Drop NDEBUG around MSSA verification

Proposed on review of https://reviews.llvm.org/D145894.
The file was modifiedllvm/lib/Transforms/Scalar/IndVarSimplify.cpp (diff)
Commit 203fad476b7e9318e1c81ff39958994190866901 by nicolas.vasilache
[mlir][DialectUtils] Cleanup IndexingUtils and provide more affine variants while reusing implementations

Differential Revision: https://reviews.llvm.org/D145784
The file was modifiedmlir/lib/Conversion/MathToFuncs/MathToFuncs.cpp (diff)
The file was modifiedmlir/lib/Dialect/MemRef/Transforms/FoldMemRefAliasOps.cpp (diff)
The file was modifiedmlir/include/mlir/IR/AffineExpr.h (diff)
The file was modifiedmlir/lib/Dialect/Vector/Transforms/VectorUnroll.cpp (diff)
The file was modifiedmlir/lib/Dialect/Math/Transforms/PolynomialApproximation.cpp (diff)
The file was modifiedmlir/include/mlir/Dialect/Utils/IndexingUtils.h (diff)
The file was modifiedmlir/lib/Conversion/MathToLibm/MathToLibm.cpp (diff)
The file was modifiedmlir/lib/Dialect/MemRef/Transforms/ExpandStridedMetadata.cpp (diff)
The file was modifiedmlir/lib/Dialect/Utils/IndexingUtils.cpp (diff)
The file was modifiedmlir/lib/Dialect/Vector/Transforms/VectorTransforms.cpp (diff)
The file was modifiedmlir/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
The file was modifiedclang/unittests/Format/TokenAnnotatorTest.cpp (diff)
The file was modifiedclang/unittests/Format/FormatTest.cpp (diff)
The file was modifiedclang/lib/Format/TokenAnnotator.cpp (diff)
Commit 0e79106fc970b79c9b711c58d2145026b1fd2a00 by pierre.vanhoutryve
Revert "[DAG/AMDGPU] Use UniformityAnalysis in DAGISel"

This reverts commit 0022b5803fd4f5a4e9fcf233267c0ffa1b88f763.
The file was modifiedllvm/include/llvm/CodeGen/FunctionLoweringInfo.h (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp (diff)
The file was modifiedllvm/include/llvm/CodeGen/SelectionDAG.h (diff)
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp (diff)
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/llc-pipeline.ll (diff)
The file was modifiedllvm/include/llvm/CodeGen/TargetLowering.h (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp (diff)
The file was modifiedllvm/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
The file was modifiedllvm/unittests/IR/ShuffleVectorInstTest.cpp (diff)
The file was modifiedllvm/lib/IR/Instructions.cpp (diff)
The file was modifiedllvm/test/Analysis/CostModel/RISCV/shuffle-interleave.ll (diff)
The file was modifiedllvm/include/llvm/IR/Instructions.h (diff)
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp (diff)
The file was modifiedllvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp (diff)
The file was modifiedllvm/lib/CodeGen/InterleavedAccessPass.cpp (diff)
Commit 5b86eaeb7e4d0b508e8dc9592b63361c5abb1e48 by npopov
Reapply [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
The file was modifiedllvm/test/Transforms/LowerTypeTests/function-weak.ll (diff)
The file was modifiedllvm/lib/Transforms/IPO/LowerTypeTests.cpp (diff)
The file was modifiedllvm/test/Transforms/LowerTypeTests/cfi-direct-call1.ll (diff)
The file was modifiedllvm/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
The file was modifiedmlir/include/mlir/Dialect/Affine/Passes.h (diff)
The file was modifiedmlir/lib/Dialect/Affine/Transforms/AffineExpandIndexOps.cpp (diff)
The file was modifiedmlir/lib/Dialect/Affine/Transforms/CMakeLists.txt (diff)
The file was modifiedmlir/tools/mlir-opt/mlir-opt.cpp (diff)
The file was addedmlir/test/Dialect/Affine/decompose-affine-ops.mlir
The file was modifiedmlir/test/lib/Dialect/Affine/CMakeLists.txt (diff)
The file was addedmlir/test/lib/Dialect/Affine/TestDecomposeAffineOps.cpp
The file was addedmlir/include/mlir/Dialect/Affine/Transforms/Transforms.h
The file was addedmlir/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.
The file was addedllvm/test/CodeGen/RISCV/machine-outliner-and-machine-copy-propagation.ll
Commit 1cff4cbda3051df77c4b2e2bf9432cac45fbd395 by nicolas.vasilache
[mlir][Transform] NFC - Various API cleanups and use RewriterBase in lieu of PatternRewriter

Depends on: D145685

Differential Revision: https://reviews.llvm.org/D145977
The file was modifiedmlir/include/mlir/Dialect/GPU/TransformOps/GPUTransformOps.td (diff)
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Transforms.cpp (diff)
The file was modifiedmlir/lib/Dialect/SCF/TransformOps/SCFTransformOps.cpp (diff)
The file was modifiedmlir/test/Dialect/GPU/transform-gpu-failing.mlir (diff)
The file was modifiedmlir/lib/Dialect/Affine/TransformOps/AffineTransformOps.cpp (diff)
The file was modifiedmlir/lib/Dialect/Transform/IR/TransformOps.cpp (diff)
The file was modifiedmlir/test/Dialect/GPU/transform-gpu.mlir (diff)
The file was modifiedmlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h (diff)
The file was modifiedmlir/include/mlir/Dialect/SCF/Transforms/Transforms.h (diff)
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/SplitReduction.cpp (diff)
The file was modifiedmlir/include/mlir/Dialect/SCF/Transforms/Patterns.h (diff)
The file was modifiedmlir/lib/Dialect/GPU/TransformOps/GPUTransformOps.cpp (diff)
The file was modifiedmlir/lib/Dialect/SCF/Transforms/LoopPipelining.cpp (diff)
The file was modifiedmlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp (diff)
The file was modifiedmlir/include/mlir/Dialect/SCF/Transforms/TileUsingInterface.h (diff)
The file was modifiedmlir/lib/Dialect/SCF/Transforms/TileUsingInterface.cpp (diff)
The file was modifiedmlir/include/mlir/Dialect/GPU/TransformOps/GPUTransformOps.h (diff)
The file was removedmlir/include/mlir/Dialect/Transform/IR/TransformUtils.h
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp (diff)
The file was modifiedmlir/test/lib/Dialect/SCF/TestSCFUtils.cpp (diff)
The file was modifiedmlir/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
The file was addedllvm/test/CodeGen/X86/pr61384.ll
Commit 2ebbcfa07edd9f16bf28cbf1deaaa302503fd330 by me
[X86] Fix encoding for ATOMIC_LOGIC_OP

Fixes PR#61384.

Differential Revision: https://reviews.llvm.org/D145930
The file was modifiedllvm/test/CodeGen/X86/pr61384.ll (diff)
The file was modifiedllvm/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
The file was modifiedllvm/unittests/Support/MemoryBufferTest.cpp (diff)
The file was modifiedllvm/lib/Support/MemoryBuffer.cpp (diff)
Commit aafb52d7c9226cd9925bd5135309bd02b6e3b59d by nicolas.vasilache
[mlir][GPUTransforms] NFC - Refactor GPUTransforms.cpp in preparation for improvements.

Depends on: D145977

Differential Revision: https://reviews.llvm.org/D145980
The file was modifiedmlir/lib/Dialect/Utils/StaticValueUtils.cpp (diff)
The file was modifiedmlir/include/mlir/Dialect/GPU/TransformOps/GPUTransformOps.h (diff)
The file was modifiedmlir/test/Dialect/GPU/transform-gpu.mlir (diff)
The file was modifiedmlir/include/mlir/Dialect/Utils/StaticValueUtils.h (diff)
The file was modifiedmlir/test/Dialect/GPU/transform-gpu-failing.mlir (diff)
The file was modifiedmlir/lib/Dialect/GPU/TransformOps/GPUTransformOps.cpp (diff)
The file was modifiedmlir/lib/Dialect/SCF/IR/SCF.cpp (diff)
The file was modifiedmlir/include/mlir/Dialect/SCF/IR/SCFOps.td (diff)
Commit 586e497f7985ddb0ca481b45f82e202d3b6f23ea by hokein.wu
[Tooling/Inclusion] Index more sub std namespace symbols.

Fixes https://github.com/llvm/llvm-project/issues/61373

Differential Revision: https://reviews.llvm.org/D146021
The file was modifiedclang/lib/Tooling/Inclusions/Stdlib/StdSymbolMap.inc (diff)
The file was modifiedclang/tools/include-mapping/gen_std.py (diff)
Commit 49384f14113b402e2c6feb8cef476beda4527be7 by nicholas.guy
Cleanup of Complex Deinterleaving pass (NFCI)

Differential Revision: https://reviews.llvm.org/D143177
The file was modifiedllvm/lib/CodeGen/ComplexDeinterleavingPass.cpp (diff)
Commit 96615c856df50d68f41f2f72c12e5bb912def9bf by nicholas.guy
[Codegen][ARM][AArch64] Support symmetric operations on complex numbers

Differential Revision: https://reviews.llvm.org/D142482
The file was modifiedllvm/test/CodeGen/Thumb2/mve-complex-deinterleaving-mixed-cases.ll (diff)
The file was modifiedllvm/include/llvm/CodeGen/ComplexDeinterleavingPass.h (diff)
The file was modifiedllvm/lib/CodeGen/ComplexDeinterleavingPass.cpp (diff)
The file was modifiedllvm/test/CodeGen/AArch64/complex-deinterleaving-mixed-cases.ll (diff)
Commit ca431a4fcbec372f1bce34b498576c641b98040c by hokein.wu
Remove an extra `//` in the IWYU pragma for gtest-matchers.h

Differential Revision: https://reviews.llvm.org/D146022
The file was modifiedthird-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
The file was modifiedclang-tools-extra/clangd/unittests/PreambleTests.cpp (diff)
The file was modifiedclang-tools-extra/clangd/Preamble.cpp (diff)
The file was modifiedclang-tools-extra/clangd/Preamble.h (diff)
The file was modifiedclang-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
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.h (diff)
The file was modifiedllvm/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
The file was modifiedclang/docs/ReleaseNotes.rst (diff)
The file was modifiedclang/include/clang/Analysis/Analyses/ReachableCode.h (diff)
The file was modifiedclang/lib/Analysis/ReachableCode.cpp (diff)
The file was addedclang/test/Sema/warn-unreachable-fallthrough.c
The file was modifiedclang/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
The file was modifiedllvm/lib/Support/RISCVISAInfo.cpp (diff)
The file was modifiedllvm/unittests/Support/RISCVISAInfoTest.cpp (diff)
Commit 7f20e2a8d2ba73a8b05742903f4ae42afec82bff by gchatelet
[libc][NFC] Move memcmp implementations in subfolders
The file was modifiedutils/bazel/llvm-project-overlay/libc/BUILD.bazel (diff)
The file was addedlibc/src/string/memory_utils/aarch64/memcmp_implementations.h
The file was modifiedlibc/src/string/memory_utils/CMakeLists.txt (diff)
The file was addedlibc/src/string/memory_utils/x86_64/memcmp_implementations.h
The file was modifiedlibc/src/string/memory_utils/memcmp_implementations.h (diff)
Commit fe0573d1dd32cd757be941272015bfa341bd800c by akuegel
[mlir][Bazel] Adjust build after 0fa20ecafe0c3c7ffde413800eb4b1551b432273
The file was modifiedutils/bazel/llvm-project-overlay/mlir/BUILD.bazel (diff)
Commit 6603c68302c16e52be6d6262033def4348a9f864 by tbaeder
[clang][sema][NFC] Make a few functions const

Differential Revision: https://reviews.llvm.org/D145947
The file was modifiedclang/lib/Sema/SemaDecl.cpp (diff)
The file was modifiedclang/lib/Sema/Sema.cpp (diff)
The file was modifiedclang/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
The file was addedflang/test/Lower/implicit-call-mismatch.f90
The file was modifiedflang/lib/Lower/ConvertExpr.cpp (diff)
The file was modifiedflang/lib/Optimizer/Builder/FIRBuilder.cpp (diff)
Commit e4a74efa6a85973a94fbc0b9a3e6a42d2ac67205 by akuegel
[mlir][Bazel] Adjust build after aafb52d7c9226cd9925bd5135309bd02b6e3b59d
The file was modifiedutils/bazel/llvm-project-overlay/mlir/BUILD.bazel (diff)
Commit 20fb4c3270b9d3596f213623d39c507711d1c165 by aaron
Revert "Fix include order in CXType.cpp"

This reverts commit 4d55a0b512a17dfaa2461b8803d37b79f6c9691d.

The addition of clang_isBitFieldDecl is not needed because
clang_Cursor_isBitField already exists.
The file was modifiedclang/include/clang-c/Index.h (diff)
The file was modifiedclang/tools/libclang/libclang.map (diff)
The file was modifiedclang/tools/libclang/CXType.cpp (diff)
The file was modifiedclang/docs/ReleaseNotes.rst (diff)
Commit 00c52331395e0fba1c001fac0199510024c0bbd7 by gchatelet
Revert "[libc][NFC] Move memcmp implementations in subfolders"

this broke arm32 build bots
This reverts commit 7f20e2a8d2ba73a8b05742903f4ae42afec82bff.
The file was modifiedlibc/src/string/memory_utils/memcmp_implementations.h (diff)
The file was removedlibc/src/string/memory_utils/x86_64/memcmp_implementations.h
The file was removedlibc/src/string/memory_utils/aarch64/memcmp_implementations.h
The file was modifiedutils/bazel/llvm-project-overlay/libc/BUILD.bazel (diff)
The file was modifiedlibc/src/string/memory_utils/CMakeLists.txt (diff)
Commit a49118a3f452403908abece104e946de8d5d50e1 by gchatelet
[reland][libc][NFC] Move memcmp implementations in subfolders
The file was addedlibc/src/string/memory_utils/aarch64/memcmp_implementations.h
The file was modifiedlibc/src/string/memory_utils/memcmp_implementations.h (diff)
The file was addedlibc/src/string/memory_utils/x86_64/memcmp_implementations.h
The file was modifiedutils/bazel/llvm-project-overlay/libc/BUILD.bazel (diff)
The file was modifiedlibc/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
The file was modifiedllvm/test/CodeGen/AMDGPU/llc-pipeline.ll (diff)
Commit f81317a54586dbcef0c14cf512a0770e8ecaab3d by kpdev42
[NFC][OHOS] Temporarily switch off tests for windows
The file was modifiedclang/test/Driver/ohos.c (diff)
The file was modifiedclang/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.
The file was modifiedlibc/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.
The file was addedllvm/test/Transforms/SLPVectorizer/X86/entries-different-vf.ll
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp (diff)
Commit 1f1fea6c380ef397f2a2416f14f8945d294a4682 by pierre.vanhoutryve
Reland: [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
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp (diff)
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.h (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp (diff)
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/llc-pipeline.ll (diff)
The file was modifiedllvm/include/llvm/CodeGen/SelectionDAG.h (diff)
The file was modifiedllvm/include/llvm/CodeGen/FunctionLoweringInfo.h (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp (diff)
The file was modifiedllvm/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
The file was modifiedllvm/test/Transforms/LoopUnroll/guard-cost-for-unrolling.ll (diff)
The file was modifiedllvm/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
The file was modifiedclang/docs/ReleaseNotes.rst (diff)
The file was modifiedclang/tools/libclang/CXType.cpp (diff)
The file was modifiedclang/include/clang-c/Index.h (diff)
Commit 8df140c860f16706ee34935f95cab391bbd19627 by npopov
[PhaseOrdering] Add test for DAE/GlobalDCE interaction (NFC)
The file was addedllvm/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.
The file was modifiedlldb/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
The file was modifiedlibc/test/integration/CMakeLists.txt (diff)
The file was removedlibc/test/integration/dummy.cpp
Commit f652bfeba583987b44c2a76ec2f4b5ec168977c8 by llvm-dev
[X86] Fix typo in vXi64 ABDS/ABDU test cases

The select operands were commuted preventing D144789 from folding
The file was modifiedllvm/test/CodeGen/X86/abdu-vector-128.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/abds-vector-128.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/abdu-vector-512.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/abds-vector-256.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/abds-vector-512.ll (diff)
The file was modifiedllvm/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
The file was modifiedllvm/test/CodeGen/AMDGPU/fneg.ll (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (diff)
Commit 4e3c8720c0da2614b25e32dd473b3fa5da3e2592 by geek4civic
llvm/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.
The file was modifiedllvm/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
The file was modifiedmlir/include/mlir/Dialect/Vector/Transforms/VectorRewritePatterns.h (diff)
The file was modifiedmlir/test/lib/Dialect/Vector/TestVectorTransforms.cpp (diff)
The file was modifiedmlir/lib/Dialect/Vector/Transforms/VectorTransforms.cpp (diff)
The file was addedmlir/test/Dialect/Vector/vector-gather-lowering.mlir
Commit 09a5915e517561916e6db7aff48b25a52af5d6b9 by kevin.sala
[OpenMP][libomptarget][NFC] Add documentation regarding NextGen plugins

Differential Revision: https://reviews.llvm.org/D144975
The file was modifiedopenmp/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
The file was modifiedflang/lib/Lower/Bridge.cpp (diff)
The file was modifiedflang/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
The file was modifiedmlir/include/mlir/Dialect/Vector/IR/VectorOps.td (diff)
Commit a585fa2637774232fd792047191f8358f462230f by kazu
[CodeGen] Use *{Set,Map}::contains (NFC)
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h (diff)
The file was modifiedllvm/lib/CodeGen/SlotIndexes.cpp (diff)
The file was modifiedllvm/lib/CodeGen/LiveDebugValues/VarLocBasedImpl.cpp (diff)
The file was modifiedllvm/lib/CodeGen/MachineBlockPlacement.cpp (diff)
The file was modifiedllvm/lib/CodeGen/MIRVRegNamerUtils.cpp (diff)
The file was modifiedllvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp (diff)
The file was modifiedllvm/lib/CodeGen/InlineSpiller.cpp (diff)
The file was modifiedllvm/lib/CodeGen/CodeGenPrepare.cpp (diff)
The file was modifiedllvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp (diff)
The file was modifiedllvm/lib/CodeGen/MachineLICM.cpp (diff)
Commit 0950332e91df0281c386874c45d7ce33b7da495b by aaron
Fix 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
The file was modifiedclang/test/CXX/drs/dr3xx.cpp (diff)
The file was modifiedclang/docs/ReleaseNotes.rst (diff)
The file was modifiedclang/test/SemaCXX/unreachable-catch-clauses.cpp (diff)
The file was modifiedclang/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
The file was modifiedllvm/test/CodeGen/AArch64/abd-combine.ll (diff)
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.h (diff)
The file was modifiedllvm/test/CodeGen/X86/abds-vector-128.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/abdu-vector-256.ll (diff)
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp (diff)
The file was modifiedllvm/test/CodeGen/X86/abds-vector-256.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/abdu-vector-512.ll (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (diff)
The file was modifiedllvm/test/CodeGen/PowerPC/ppc64-P9-vabsd.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/abds-vector-512.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/abdu-vector-128.ll (diff)
Commit ae2d8def6beee8b1ac3889af7c666133647db361 by tiwariabhinavak
[Docs] Added llvm-reduce docs in CommandGuide

[Docs] Added llvm-reduce docs in CommandGuide

Differential Revision: https://reviews.llvm.org/D146020
The file was modifiedllvm/docs/CommandGuide/index.rst (diff)
The file was addedllvm/docs/CommandGuide/llvm-reduce.rst