SuccessChanges

Summary

  1. [SCEV] Support unsigned predicates in isKnownPredicateViaNoOverflow (details)
  2. [MLIR][Linalg] Fix assertion in dependency analysis (details)
  3. [NFC][PowerPC]Add tests for multiply-by-constant. (details)
  4. [APFloat] multiplySignificand - always pass IEEEFloat as const reference. NFCI. (details)
  5. [PowerPC] Add support for R_PPC64_GOT_TPREL_PCREL34 used in TLS Initial Exec (details)
  6. Revert rGf835779160ec303 "[APFloat] multiplySignificand - always pass IEEEFloat as const reference. NFCI." (details)
  7. [lldb] Ignore certain Clang type sugar when creating the type name (details)
  8. [ARM][TTI] Prevents constants in a min(max) or max(min) pattern from being hoisted when in a loop (details)
  9. [SCEV] Handle `less` predicates for FoundPred = NE (details)
  10. [SystemZ][z/OS] Set default wchar_t type for zOS (details)
  11. [LLD][PowerPC][test] Update thunk range error report for PPC64PCRelLongBranchThunk (details)
  12. [ARM] Trying to fix asan buildbot (details)
  13. [libc++] NFC: Remove trailing whitespace from the feature test macro table (details)
  14. [SLP] Merge null and dyn_cast<> checks into dyn_cast_or_null<>. NFCI. (details)
  15. [MLIR][Standard] Add `atan` to standard dialect (details)
  16. [SyntaxTree] Add tests for the assignment of the `canModify` tag. (details)
  17. [SLP] clean up code in gather(); NFC (details)
  18. [SLP] move misplaced code comments; NFC (details)
  19. [SLP] reduce code duplication for checking parent block; NFC (details)
  20. [PowerPC] Fix for compiler side issue in PCRelative Local Exec (details)
Commit 16fde88dbd797b01f3c236062fbec50fe5bbf81d by mkazantsev
[SCEV] Support unsigned predicates in isKnownPredicateViaNoOverflow

SCEV should be able to prove facts like `x <u x+1<nuw>`.

Differential Revision: https://reviews.llvm.org/D88015
Reviewed By: lebedev.ri
The file was modifiedllvm/unittests/Analysis/ScalarEvolutionTest.cpp
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
Commit 0841f7172b74e1cbe2ce9839e5f4e1f0c2836bef by frgossen
[MLIR][Linalg] Fix assertion in dependency analysis

The assertion falsely expected ranked memrefs only.  Now both, ranked and
unranked memrefs are allowed.

Differential Revision: https://reviews.llvm.org/D88080
The file was modifiedmlir/lib/Dialect/Linalg/Analysis/DependenceAnalysis.cpp
Commit c7ff6e0fe1cd37a162af5f30d8cb070eb4cc038d by esme.yi
[NFC][PowerPC]Add tests for multiply-by-constant.
The file was modifiedllvm/test/CodeGen/PowerPC/mulli.ll
Commit f835779160ec30340676918915526615a07e826e by llvm-dev
[APFloat] multiplySignificand - always pass IEEEFloat as const reference. NFCI.

We do this in all other cases.
The file was modifiedllvm/include/llvm/ADT/APFloat.h
The file was modifiedllvm/lib/Support/APFloat.cpp
Commit c0071862bb426689acef09491b01b1edca9d747e by stefanp
[PowerPC] Add support for R_PPC64_GOT_TPREL_PCREL34 used in TLS Initial Exec

Add Thread Local Storage Initial Exec support to LLD.

This patch adds the computation for the relocations as well as the relaxation from Initial Exec to Local Exec.

Initial Exec:
```
pld r9, x@got@tprel@pcrel
add r9, r9, x@tls@pcrel
```
or
```
pld r9, x@got@tprel@pcrel
lbzx r10, r9, x@tls@pcrel
```
Note that @tls@pcrel is actually encoded as R_PPC64_TLS with a one byte displacement.

For the above examples relaxing Intitial Exec to Local Exec:
```
paddi r9, r9, x@tprel
nop
```
or
```
paddi r9, r13, x@tprel
lbz r10, 0(r9)
```

Reviewed By: nemanjai, MaskRay, #powerpc

Differential Revision: https://reviews.llvm.org/D86893
The file was modifiedlld/ELF/Arch/PPC64.cpp
The file was addedlld/test/ELF/ppc64-tls-pcrel-ie.s
Commit a15b42146c617777b364e3b63babf1de547b9f26 by llvm-dev
Revert rGf835779160ec303 "[APFloat] multiplySignificand - always pass IEEEFloat as const reference. NFCI."

This reverts commit f835779160ec30340676918915526615a07e826e while I investigate some buildbot failures
The file was modifiedllvm/lib/Support/APFloat.cpp
The file was modifiedllvm/include/llvm/ADT/APFloat.h
Commit b5e49e91cb90eda1f926139c8567e27f1b664cc1 by Raphael Isemann
[lldb] Ignore certain Clang type sugar when creating the type name

Clang has some type sugar that only serves as a way to preserve the way a user
has typed a certain type in the source code. These types are currently not
unwrapped when we query the type name for a Clang type, which means that this
type sugar actually influences what formatters are picked for a certain type.
Currently if a user decides to reference a type by doing `::GlobalDecl Var = 3;`,
the type formatter for `GlobalDecl` will not be used (as the type sugar
around the type gives it the name `::GlobalDecl`. The same goes for other ways
to spell out a type such as `auto` etc.

With this patch most of this type sugar gets stripped when the full type name is
calculated. Typedefs are not getting desugared as that seems counterproductive.
I also don't desugar atomic types as that's technically not type sugar.

Reviewed By: jarin

Differential Revision: https://reviews.llvm.org/D87481
The file was addedlldb/test/API/lang/cpp/elaborated-types/TestElaboratedTypes.py
The file was addedlldb/test/API/lang/cpp/elaborated-types/main.cpp
The file was modifiedlldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
The file was addedlldb/test/API/lang/cpp/elaborated-types/Makefile
Commit a3d0dce2608bb399f2bf0122d8c6a4c7b4d6c1fa by meera.nakrani
[ARM][TTI] Prevents constants in a min(max) or max(min) pattern from being hoisted when in a loop

Changes TTI function getIntImmCostInst to take an additional Instruction parameter,
which enables us to be able to check it is part of a min(max())/max(min()) pattern that will match SSAT.
We can then mark the constant used as free to prevent it being hoisted so SSAT can still be generated.
Required minor changes in some non-ARM backends to allow for the optional parameter to be included.

Differential Revision: https://reviews.llvm.org/D87457
The file was modifiedllvm/include/llvm/Analysis/TargetTransformInfo.h
The file was modifiedllvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp
The file was modifiedllvm/lib/Target/X86/X86TargetTransformInfo.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
The file was modifiedllvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCTargetTransformInfo.h
The file was modifiedllvm/lib/Target/Lanai/LanaiTargetTransformInfo.h
The file was modifiedllvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
The file was modifiedllvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
The file was modifiedllvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
The file was modifiedllvm/lib/Target/X86/X86TargetTransformInfo.h
The file was modifiedllvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h
The file was modifiedllvm/test/CodeGen/Thumb2/mve-satmul-loops.ll
The file was modifiedllvm/include/llvm/Analysis/TargetTransformInfoImpl.h
The file was modifiedllvm/lib/Analysis/TargetTransformInfo.cpp
The file was modifiedllvm/lib/Target/ARM/ARMTargetTransformInfo.h
The file was modifiedllvm/lib/Transforms/Scalar/ConstantHoisting.cpp
Commit e2703c021d844ea0e5c1b203a4bd534e7a231997 by mkazantsev
[SCEV] Handle `less` predicates for FoundPred = NE

Currently these predicates are ignored, yet their handling is
pretty simple. I could not find a single test where it would
actually change something, but it's only because isImpliedCondOperands
is not smart enough to prove it further on. Yet the situation when
we come there with `less` predicate is pretty common.

Differential Revision: https://reviews.llvm.org/D87890
Reviewed By: fhahn
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
Commit 0fb97fd6a4f2ec9267a1f4d039ec8895c2460ab7 by Abhina.Sreeskantharajan
[SystemZ][z/OS] Set default wchar_t type for zOS

Set the default wchar_t type on z/OS, and unsigned as the default.

Reviewed By: hubert.reinterpretcast, fanbo-meng

Differential Revision: https://reviews.llvm.org/D87624
The file was modifiedclang/test/CodeGen/wchar-size.c
The file was modifiedclang/test/Preprocessor/wchar_t.c
The file was modifiedclang/lib/Basic/Targets/OSTargets.h
The file was modifiedclang/test/Lexer/wchar-signedness.c
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedclang/test/Sema/wchar.c
Commit 967e29ff8c8f572aceaa0f551b281a4d7c4a73bd by wei.huang
[LLD][PowerPC][test] Update thunk range error report for PPC64PCRelLongBranchThunk

Update the thunk range error report for PPC64PCRelLongBranchThunk and add a range
error test case for PPC64R12SetupStub.

Differential Revision: https://reviews.llvm.org/D87381
The file was modifiedlld/ELF/Thunks.cpp
The file was addedlld/test/ELF/ppc64-pcrel-call-to-toc-error.s
The file was modifiedlld/test/ELF/ppc64-pcrel-long-branch-error.s
Commit 94c799fecff06c614cb68976288fc7b8c9a11139 by sam.parker
[ARM] Trying to fix asan buildbot
The file was modifiedllvm/lib/Target/ARM/ARMLowOverheadLoops.cpp
Commit 0451ed961993d4f52f4083192de0e57a1b246ac6 by Louis Dionne
[libc++] NFC: Remove trailing whitespace from the feature test macro table
The file was modifiedlibcxx/docs/FeatureTestMacroTable.rst
The file was modifiedlibcxx/utils/generate_feature_test_macro_components.py
Commit d682a36ef9dace4887c42d392110ea21eb9e31a6 by llvm-dev
[SLP] Merge null and dyn_cast<> checks into dyn_cast_or_null<>. NFCI.
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Commit e952bb709ff70e45c80434fbb8e0b97b52afcf01 by frgossen
[MLIR][Standard] Add `atan` to standard dialect

Differential Revision: https://reviews.llvm.org/D88091
The file was modifiedmlir/include/mlir/Dialect/StandardOps/IR/Ops.td
Commit 6dc06fa09d1a259df1f897dc821ba1544e2bcd24 by ecaldas
[SyntaxTree] Add tests for the assignment of the `canModify` tag.

Differential Revision: https://reviews.llvm.org/D88077
The file was modifiedclang/unittests/Tooling/Syntax/BuildTreeTest.cpp
Commit 062276c691099f977e69c101f21c1a9ac549f283 by spatel
[SLP] clean up code in gather(); NFC

1. Use range for-loop to avoid repeatedly accessing end index.
2. Better variable names.
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Commit bbd49a0266921ce68a8581b8ae3d5c88eda8c679 by spatel
[SLP] move misplaced code comments; NFC
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Commit 0c3bfbe4bc212c8e6b54ffd6d9f59ae513e31247 by spatel
[SLP] reduce code duplication for checking parent block; NFC
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Commit 7e78d89052b15f32ea56f018698194c7c9627152 by stefanp
[PowerPC] Fix for compiler side issue in PCRelative Local Exec

Stop combining loads and stores with PPCISD::ADD_TLS before we can merge the
node with with TLS_LOCAL_EXEC_MAT_ADDR. The issue is that
TLS_LOCAL_EXEC_MAT_ADDR cannot be selected by itself and requires the previous
ADD_TLS node that goes with it. However, we sometimes try to combine ADD_TLS
with loads and stores that come after it. If this happens then the ADD_TLS is
removed and TLS_LOCAL_EXEC_MAT_ADDR cannot be selected.

While this bug fix will address the issue it my not be ideal from a performance
perspective as we may be able to add patterns to combine TLS_LOCAL_EXEC_MAT_ADDR
with ADD_TLS with the load and store that comes after it all in one. However,
this is beyond the scope of this patch.

Reviewed By: NeHuang

Differential Revision: https://reviews.llvm.org/D88030
The file was modifiedllvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
The file was modifiedllvm/test/CodeGen/PowerPC/pcrel-tls-local-exec.ll