SuccessChanges

Summary

  1. Revert "[SelectionDAG] Remove unused FP constant in getNegatedExpression" (details)
  2. [LLD][PowerPC] Add support for R_PPC64_TPREL34 used in TLS Local Exec (details)
  3. [libc] Fix typo in platform_defs.h.inc (details)
  4. [libc] Add missing LibcFPTestHelpers library (details)
  5. [libc] Add missing TableGen dependency (details)
  6. [analyzer][StdLibraryFunctionsChecker] Elaborate the summary of fread and fwrite (details)
  7. [llvm-readobj/elf] - Don't crash when the size of s dynamic symbol table, inferred from the hash table, is broken. (details)
  8. [analyzer] Add documentation for alpha.fuchsia.Lock and alpha.core.C11Lock (details)
  9. [InstSimplify] add limit folds for fmin/fmax (details)
  10. [libc++] Use allocator_traits to consistently allocate/deallocate/construct/destroy objects in std::any (details)
  11. SLPVectorizer.h - remove unnecessary AliasAnalysis.h include. NFCI. (details)
  12. [mlir][openacc] Add loop op verifier (details)
  13. [analyzer][Liveness][NFC] Get rid of statement liveness, because such a thing doesn't exist (details)
  14. [XCOFF] Run resource intense test only on platforms where it makes sense (details)
Commit e1669843f2aaf1e4929afdd8f125c14536d27664 by qiucofan
Revert "[SelectionDAG] Remove unused FP constant in getNegatedExpression"

2508ef01 doesn't totally fix the issue since we did not handle the case
when unused temporary negated result is the same with the result, which
is found by address sanitizer.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
The file was removedllvm/test/CodeGen/X86/pr47517.ll
Commit 65f6810d3a4b0ef1fdaad49e808459fbd133bb20 by stefanp
[LLD][PowerPC] Add support for R_PPC64_TPREL34 used in TLS Local Exec

Add Thread Local Storage Local Exec support to LLD. This is to support PC Relative addressing of Local Exec.
The patch teaches LLD to handle:
```
paddi r9, r13, x1@tprel
```
The relocation is:
```
R_PPC_TPREL34
```

Reviewed By: NeHuang, MaskRay

Differential Revision: https://reviews.llvm.org/D86608
The file was addedlld/test/ELF/ppc64-tls-pcrel-le.s
The file was modifiedlld/ELF/Arch/PPC64.cpp
Commit 85763e0758fbd238c81f233c6f9510e81c7de177 by gchatelet
[libc] Fix typo in platform_defs.h.inc

Differential Revision: https://reviews.llvm.org/D87687
The file was addedlibc/config/linux/platform_defs.h.inc
The file was modifiedlibc/src/__support/CMakeLists.txt
The file was removedlibc/config/linux/platfrom_defs.h.inc
Commit 00d6e7116c208b06e4c85bb58a40e76412be65a6 by gchatelet
[libc] Add missing LibcFPTestHelpers library

Differential Revision: https://reviews.llvm.org/D87690
The file was modifiedlibc/utils/MPFRWrapper/CMakeLists.txt
Commit e328456a9e6fa8c1ef05e183c1506ed837005847 by gchatelet
[libc] Add missing TableGen dependency

Differential Revision: https://reviews.llvm.org/D87689
The file was modifiedlibc/utils/LibcTableGenUtil/CMakeLists.txt
Commit a012bc4c42e4408a18e4c4d67306b79c576df961 by gabor.marton
[analyzer][StdLibraryFunctionsChecker] Elaborate the summary of fread and fwrite

Add the BufferSize argument constraint to fread and fwrite. This change
itself makes it possible to discover a security critical case, described
in SEI-CERT ARR38-C.

We also add the not-null constraint on the 3rd arguments.

In this patch, I also remove those lambdas that don't take any
parameters (Fwrite, Fread, Getc), thus making the code better
structured.

Differential Revision: https://reviews.llvm.org/D87081
The file was modifiedclang/test/Analysis/analyzer-enabled-checkers.c
The file was modifiedclang/include/clang/StaticAnalyzer/Checkers/Checkers.td
The file was addedclang/test/Analysis/std-c-library-functions-vs-stream-checker.c
The file was modifiedclang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp
The file was modifiedclang/test/Analysis/std-c-library-functions-arg-constraints.c
The file was modifiedclang/test/Analysis/Inputs/system-header-simulator.h
Commit 7df873f9c67099a209f0122a1f5411e701a9d425 by grimar
[llvm-readobj/elf] - Don't crash when the size of s dynamic symbol table, inferred from the hash table, is broken.

Currently we might derive the dynamic symbol table size from the DT_HASH hash table (using its `nchain` field).
It is possible to crash dumpers with a broken relocation that refers to a symbol with an index
that is too large. To trigger it, the inferred size of the dynamic symbol table should go past the end of the object.

This patch adds a size validation + warning.

Differential revision: https://reviews.llvm.org/D86923
The file was modifiedllvm/test/tools/llvm-readobj/ELF/hash-table.test
The file was modifiedllvm/test/tools/llvm-readobj/ELF/hash-histogram.test
The file was modifiedllvm/test/tools/llvm-readobj/ELF/hash-symbols.test
The file was modifiedllvm/test/tools/llvm-readobj/ELF/dyn-symbols-size-from-hash-table.test
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp
Commit 7c6f5b7fbf5a9eee7f3ef9192c354d1536a8f1c6 by dkszelethus
[analyzer] Add documentation for alpha.fuchsia.Lock and alpha.core.C11Lock

Differential Revision: https://reviews.llvm.org/D86532
The file was modifiedclang/docs/analyzer/checkers.rst
The file was modifiedclang/docs/analyzer/user-docs/CrossTranslationUnit.rst
Commit 8985755762a429573af2ce657274772339d3b9db by spatel
[InstSimplify] add limit folds for fmin/fmax

If the constant operand is the opposite of the min/max value,
then the result must be the other value.

This is based on the similar codegen transform proposed in:
D87571
The file was modifiedllvm/test/Transforms/PhaseOrdering/X86/vector-reductions-expanded.ll
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
The file was modifiedllvm/test/Transforms/InstSimplify/fminmax-folds.ll
Commit 39c8795141703a7d8313b2448d9d34e856df0b85 by Louis Dionne
[libc++] Use allocator_traits to consistently allocate/deallocate/construct/destroy objects in std::any

https://llvm.org/PR45099 notes (correctly) that we're inconsistent in memory
allocation in `std::any`. We allocate memory with `std::allocator<T>::allocate`,
construct with placement new, destroy by calling the destructor directly, and
deallocate by calling `delete`. Most of those are customizable by the user,
but in different ways.

The standard is silent on how these things are to be accomplished.
This patch makes it so we use `allocator_traits<allocator<T>>` for all
of these operations (allocate, construct, destruct, deallocate).
This is, at least, consistent.

Fixes https://llvm.org/PR45099.

Differential Revision: https://reviews.llvm.org/D81133
The file was addedlibcxx/test/libcxx/utilities/any/allocator.pass.cpp
The file was modifiedlibcxx/include/any
Commit 2b42d53e5ea4ee648cde5b2f73523f01f2405631 by llvm-dev
SLPVectorizer.h - remove unnecessary AliasAnalysis.h include. NFCI.

Forward declare AAResults instead of the (old) AliasAnalysis type.

Remove includes from SLPVectorizer.cpp that are already included in SLPVectorizer.h.
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
The file was modifiedllvm/include/llvm/Transforms/Vectorize/SLPVectorizer.h
Commit 01f5fcd8290349265e6039ad9089b086ea783f00 by clementval
[mlir][openacc] Add loop op verifier

Add a verifier for the loop op in the OpenACC dialect. Check basic restriction
from 2.9 Loop construct from the OpenACC 3.0 specs.

Reviewed By: ftynse

Differential Revision: https://reviews.llvm.org/D87546
The file was modifiedmlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
The file was modifiedmlir/test/Dialect/OpenACC/ops.mlir
The file was addedmlir/test/Dialect/OpenACC/invalid.mlir
The file was modifiedmlir/include/mlir/Dialect/OpenACC/OpenACCOps.td
Commit dd1d5488e47d0a89217dfd22a726c3d3ad2b4984 by dkszelethus
[analyzer][Liveness][NFC] Get rid of statement liveness, because such a thing doesn't exist

The summary and very short discussion in D82122 summarizes whats happening here.

In short, liveness talks about variables, or expressions, anything that
has a value. Well, statements just simply don't have a one.

Differential Revision: https://reviews.llvm.org/D82598
The file was modifiedclang/lib/Analysis/LiveVariables.cpp
The file was modifiedclang/include/clang/StaticAnalyzer/Checkers/Checkers.td
The file was modifiedclang/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h
The file was modifiedclang/lib/StaticAnalyzer/Core/Environment.cpp
The file was modifiedclang/lib/StaticAnalyzer/Checkers/DebugCheckers.cpp
The file was modifiedclang/lib/StaticAnalyzer/Core/SymbolManager.cpp
The file was modifiedclang/test/Analysis/live-stmts.mm
The file was modifiedclang/test/Analysis/live-stmts.cpp
The file was modifiedclang/docs/analyzer/developer-docs/DebugChecks.rst
The file was modifiedclang/include/clang/Analysis/Analyses/LiveVariables.h
Commit ec2b0a51977861ed7be92c365ec2636fbf690528 by jasonliu
[XCOFF] Run resource intense test only on platforms where it makes sense

This is a follow up commit for the issue raised in
https://reviews.llvm.org/D86879
The file was modifiedllvm/test/CodeGen/PowerPC/aix-overflow-toc.py