UnstableChanges

Summary

  1. [jenkins] Fix TabError: inconsistent use of tabs and spaces in indentation (details)
Commit 160b3dc7da986033340d9d0d25f6427677931856 by Jonas Devlieghere
[jenkins] Fix TabError: inconsistent use of tabs and spaces in indentation
The file was modifiedzorg/jenkins/monorepo_build.py (diff)

Summary

  1. [analyzer] Rework SValBuilder::evalCast function into maintainable and clear way (details)
  2. [clang][cli] Generate -f[no-]finite-loops arguments (details)
  3. [SVE] Add support for scalable vectorization of loops with int/fast FP reductions (details)
  4. [DAG] Use APInt::extractBits instead of lshr().trunc(). NFCI. (details)
  5. [DAG] Avoid APInt copies by directly using the APInt reference from getAPIntValue. NFCI. (details)
  6. [VPlan] Remove unused Phi member from VPWidenPHIRecipe (NFC). (details)
  7. [clang][cli] Add explicit round-trip test (details)
  8. [llvm][Aarch64][SVE] Remove extra fmov instruction with certain literals (details)
  9. [NFC][LoopInterchange] Explicitly pass both `InnerLoop` and `OuterLoop` to `processLoop` (details)
  10. [clangd] Modules can have a public API. NFC (details)
Commit 13f4448ae7db1a477ec2d48776e46415a3401314 by dpetrov
[analyzer] Rework SValBuilder::evalCast function into maintainable and clear way

Summary: Refactor SValBuilder::evalCast function. Make the function clear and get rid of redundant and repetitive code. Unite SValBuilder::evalCast, SimpleSValBuilder::dispatchCast, SimpleSValBuilder::evalCastFromNonLoc and SimpleSValBuilder::evalCastFromLoc functions into single SValBuilder::evalCast.
This patch shall not change any previous behavior.

Differential Revision: https://reviews.llvm.org/D90157
The file was modifiedclang/lib/StaticAnalyzer/Core/SValBuilder.cpp
The file was modifiedclang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h
Commit 32389346ed83e14b7a9bd3a31a96181c6a1cdb5e by Jan Svoboda
[clang][cli] Generate -f[no-]finite-loops arguments

This patch generates the `-f[no-]finite-loops` arguments from `CompilerInvocation` (added in D96419), fixing test failures of Clang built with `-DCLANG_ROUND_TRIP_CC1_ARGS=ON`.

Reviewed By: fhahn

Differential Revision: https://reviews.llvm.org/D96761
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedclang/test/CodeGenCXX/attr-mustprogress.cpp
Commit ba1e150d03cac7629111a90eea1f2d727e465983 by kerry.mclaughlin
[SVE] Add support for scalable vectorization of loops with int/fast FP reductions

This patch enables scalable vectorization of loops with integer/fast reductions, e.g:

```
unsigned sum = 0;
for (int i = 0; i < n; ++i) {
  sum += a[i];
}
```

A new TTI interface, isLegalToVectorizeReduction, has been added to prevent
reductions which are not supported for scalable types from vectorizing.
If the reduction is not supported for a given scalable VF,
computeFeasibleMaxVF will fall back to using fixed-width vectorization.

Reviewed By: david-arm, fhahn, dmgreen

Differential Revision: https://reviews.llvm.org/D95245
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/include/llvm/Analysis/TargetTransformInfo.h
The file was modifiedllvm/lib/Analysis/TargetTransformInfo.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
The file was modifiedllvm/include/llvm/Analysis/TargetTransformInfoImpl.h
The file was addedllvm/test/Transforms/LoopVectorize/AArch64/scalable-reductions.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
Commit dd879f7dc9f5df614431358e11f21c948429eda6 by llvm-dev
[DAG] Use APInt::extractBits instead of lshr().trunc(). NFCI.

Avoids so many APInt instances by directly using the APInt reference from getAPIntValue.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
Commit 420420de57ccbd78805ed86df49b6c19088f99c4 by llvm-dev
[DAG] Avoid APInt copies by directly using the APInt reference from getAPIntValue. NFCI.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
Commit f64c6260690e57e138468edb6934de036baef29c by flo
[VPlan] Remove unused Phi member from VPWidenPHIRecipe (NFC).

The member is not needed any longer after recent changes.
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.h
Commit ed86328515888b762277a118773b2f41b106d016 by Jan Svoboda
[clang][cli] Add explicit round-trip test

This patch adds a test that verifies all `CompilerInvocation` members are filled correctly during command line round-trip.

Reviewed By: dexonsmith

Differential Revision: https://reviews.llvm.org/D96705
The file was modifiedclang/unittests/Frontend/CompilerInvocationTest.cpp
Commit e86f9ba15c41492c4ff9cd860136f69cfb4e17d2 by david.truby
[llvm][Aarch64][SVE] Remove extra fmov instruction with certain literals

When a literal that cannot fit in the immediate form of the fmov instruction
is used to initialise an SVE vector, an extra unnecessary fmov is currently
generated. This patch adds an extra codegen pattern preventing the extra
instruction from being generated.

Differential Revision: https://reviews.llvm.org/D96700

Co-Authored-By: Paul Walker <paul.walker@arm.com>
The file was modifiedllvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
The file was modifiedllvm/test/CodeGen/AArch64/sve-intrinsics-dup-x.ll
The file was modifiedllvm/test/CodeGen/AArch64/sve-vector-splat.ll
Commit 6b612a7baf8ef6ab775f5ae48b8ffc3b51e8e9a3 by tu.da.wei
[NFC][LoopInterchange] Explicitly pass both `InnerLoop` and `OuterLoop` to `processLoop`

This is a split patch of D96644.

Explicitly pass both `InnerLoop` and `OuterLoop` to function `processLoop` to remove the need to swap elements in loop list and allow making loop list an `ArrayRef`.
Also, fix inconsistent spellings of `OuterLoopId` and `Inner Loop Id` in debug log.

Reviewed By: fhahn

Differential Revision: https://reviews.llvm.org/D96650
The file was modifiedllvm/test/Transforms/LoopInterchange/interchange-flow-dep-outer.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/not-interchanged-loop-nest-3.ll
The file was modifiedllvm/lib/Transforms/Scalar/LoopInterchange.cpp
Commit 40cc63ea6eec7874d3a358f9fa549ef2f6543512 by sam.mccall
[clangd] Modules can have a public API. NFC

Differential Revision: https://reviews.llvm.org/D96730
The file was modifiedclang-tools-extra/clangd/unittests/ClangdLSPServerTests.cpp
The file was modifiedclang-tools-extra/clangd/ClangdServer.cpp
The file was modifiedclang-tools-extra/clangd/CMakeLists.txt
The file was addedclang-tools-extra/clangd/Module.cpp
The file was modifiedclang-tools-extra/clangd/ClangdServer.h
The file was modifiedclang-tools-extra/clangd/Module.h