SuccessChanges

Summary

  1. [NFC][Asan] Fit ChunkHeader into redzone (details)
  2. [APFloat] Fix uninitialized variable in IEEEFloat constructors (details)
  3. ARMTargetParser.cpp - use auto const references in for range loops. NFCI. (details)
  4. TrigramIndex.cpp - remove unnecessary includes. NFCI. (details)
  5. [ValueTracking] Add UndefOrPoison/Poison-only version of relevant functions (details)
  6. [flang]Add Semantic Checks for OpenMP Allocate Clause (details)
  7. [BuildLibCalls] Add more noundef to library functions (details)
  8. [UnifyFunctionExitNodes] Fix Modified status for unreachable blocks (details)
  9. [mlir][Linalg] Integration tests for convolutions added. (details)
  10. [cmake] Use absolute paths for modules search (details)
  11. [elf2yaml] Fix dumping a debug section whose name is not recognized. (details)
  12. APInt.h - return directly from clearUnusedBits in single word cases. NFCI. (details)
  13. [KnownBits] Move SelectionDAG::computeKnownBits ISD::ABS handling to KnownBits::abs (details)
Commit b5bc56da8aa23dc57db9d286b0591dbcf9b1bdd3 by Vitaly Buka
[NFC][Asan] Fit ChunkHeader into redzone

In code as-is min redzone and ChunkHeader are 16 byte.
This patch just makes sure that redzone is calculated correctly if we
extend ChunkHeader.
The file was modifiedcompiler-rt/lib/asan/asan_allocator.cpp
Commit 24ecfdac7b7d195795b6cb0e373cba8bfa7911f4 by llvm-dev
[APFloat] Fix uninitialized variable in IEEEFloat constructors

Some constructors of IEEEFloat do not initialize member variable exponent.
Fix it by initializing exponent with the following values:

For NaNs, the `exponent` is `maxExponent+1`.
For Infinities, the `exponent` is `maxExponent+1`.
For Zeroes, the `exponent` is `maxExponent-1`.

Patch by: @nullptr.cpp (Yang Fan)

Differential Revision: https://reviews.llvm.org/D86997
The file was modifiedllvm/lib/Support/APFloat.cpp
The file was modifiedllvm/include/llvm/ADT/APFloat.h
Commit f16b2d83154aed71aaf9a0717fbb0199d027f312 by llvm-dev
ARMTargetParser.cpp - use auto const references in for range loops. NFCI.

Fix static analysis warnings about unnecessary copies.
The file was modifiedllvm/lib/Support/ARMTargetParser.cpp
Commit 455cce3e216ba3cac0844b4ee9cf85791c1ac046 by llvm-dev
TrigramIndex.cpp - remove unnecessary includes. NFCI.

TrigramIndex.h already includes most of these.
The file was modifiedllvm/include/llvm/Support/TrigramIndex.h
The file was modifiedllvm/lib/Support/TrigramIndex.cpp
Commit 25ce1e0497259711836f949005297125e92a6e93 by aqjune
[ValueTracking] Add UndefOrPoison/Poison-only version of relevant functions

This patch adds isGuaranteedNotToBePoison and programUndefinedIfUndefOrPoison.

isGuaranteedNotToBePoison will be used at D75808. The latter function is used at isGuaranteedNotToBePoison.

Reviewed By: nikic

Differential Revision: https://reviews.llvm.org/D84242
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
The file was modifiedllvm/lib/Transforms/Instrumentation/PoisonChecking.cpp
The file was modifiedllvm/lib/Analysis/ValueTracking.cpp
The file was modifiedllvm/unittests/Analysis/ValueTrackingTest.cpp
The file was modifiedllvm/lib/Transforms/Scalar/IndVarSimplify.cpp
The file was modifiedllvm/include/llvm/Analysis/ValueTracking.h
Commit 0fd425af071a9bc5c0891a4db09f4d9a466b7be9 by caroline.concatto
[flang]Add Semantic Checks for OpenMP Allocate Clause

Reviewed By: kiranchandramohan, clementval, kiranktp, raghavendhra

Differential Revision: https://reviews.llvm.org/D86051
The file was modifiedflang/lib/Semantics/check-omp-structure.h
The file was modifiedflang/lib/Semantics/check-omp-structure.cpp
The file was modifiedflang/lib/Semantics/resolve-directives.cpp
The file was addedflang/test/Semantics/omp-resolve06.f90
The file was modifiedflang/test/Semantics/omp-clause-validity01.f90
The file was modifiedflang/include/flang/Semantics/symbol.h
Commit 36c8621638d18c830efe2c6a2a6d0a0338b0f79d by aqjune
[BuildLibCalls] Add more noundef to library functions

This patch follows D85345 and adds more noundef attributes to return values/arguments of library functions
that are mostly about accessing the file system or processes.

A few functions like `chmod` or `times` use typedef `mode_t` and `clock_t`.
They are neither struct nor union, so they cannot contain undef even if they're lowered to iN in IR. So, it is fine to add noundef to them.

- clock_t's actual type is size_t (C17, 7.27.1.3), so it isn't struct or union.

- For mode_t, either int or long is used in practice because programmers use bit manipulation. So, I think it is okay that it's never aggregate in practice.

After this patch, the remaining library functions are those that eagerly participate in optimizations: they can be removed, reordered, or
introduced by a transformation from primitive IR operations.
For them, a few testings is needed, since it may not be valid to add noundef anymore even if C standard says it's okay.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D85894
The file was modifiedllvm/test/Transforms/InferFunctionAttrs/annotate.ll
The file was modifiedllvm/lib/Transforms/Utils/BuildLibCalls.cpp
Commit 48fc781438767bd8337facf2e232c695b0426fb4 by david.stenberg
[UnifyFunctionExitNodes] Fix Modified status for unreachable blocks

If a function had at most one return block, the pass would return false
regardless if an unified unreachable block was created.

This patch fixes that by refactoring runOnFunction into two separate
helper functions for handling the unreachable blocks respectively the
return blocks, as suggested by @bjope in a review comment.

This was caught using the check introduced by D80916.

Reviewed By: serge-sans-paille

Differential Revision: https://reviews.llvm.org/D85818
The file was addedllvm/test/Transforms/UnifyFunctionExitNodes/unreachable-blocks-status.ll
The file was modifiedllvm/include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h
The file was modifiedllvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp
Commit edf244217a48b91c8e9c860848885106fbcc5c4b by limo
[mlir][Linalg] Integration tests for convolutions added.

This commit introduces end-to-end integration tests for
convolutions that test multiple ways of ConvOps lowering.

Differential Revision: https://reviews.llvm.org/D87277
The file was addedmlir/integration_test/Dialect/Linalg/Conv/test-conv-3d-call.mlir
The file was addedmlir/integration_test/Dialect/Linalg/Conv/test-conv-1d-nwc-call.mlir
The file was addedmlir/integration_test/Dialect/Linalg/Conv/test-conv-1d-call.mlir
The file was addedmlir/integration_test/Dialect/Linalg/Conv/test-conv-2d-nhwc-call.mlir
The file was addedmlir/integration_test/Dialect/Linalg/Conv/test-conv-1d-ncw-call.mlir
The file was addedmlir/integration_test/Dialect/Linalg/Conv/test-conv-2d-call.mlir
The file was addedmlir/integration_test/Dialect/Linalg/Conv/test-conv-3d-ndhwc-call.mlir
The file was addedmlir/integration_test/Dialect/Linalg/Conv/test-conv-3d-ncdhw-call.mlir
The file was addedmlir/integration_test/Dialect/Linalg/Conv/test-conv-2d-nchw-call.mlir
Commit d4b88ac1658d681e143482336cac27c6a74b8b24 by diana.picus
[cmake] Use absolute paths for modules search

For out of tree builds, the user generally needs to specify LLVM_DIR and
MLIR_DIR on the command line so that the correct LLVM and MLIR
installations are picked up.

If the provided paths are absolute, everything works fine, however for
buildbots it is customary to work with relative paths, and that makes it
difficult for CMake to find the right modules to include.

This patch changes CMakeLists.txt to convert LLVM_DIR and MLIR_DIR to
absolute paths before adding them to CMAKE_MODULE_PATH. The inputs are
assumed to be relative to the source directory (llvm-project/flang).

Differential Revision: https://reviews.llvm.org/D87083
The file was modifiedflang/CMakeLists.txt
Commit 25f3cc0ced1759af1911c2446ac40fab4f5e5571 by Xing
[elf2yaml] Fix dumping a debug section whose name is not recognized.

If the debug section's name isn't recognized, it should be
dumped as a raw content section.

Reviewed By: jhenderson, grimar

Differential Revision: https://reviews.llvm.org/D87346
The file was addedllvm/test/tools/obj2yaml/ELF/DWARF/unrecognized-debug-section.yaml
The file was modifiedllvm/tools/obj2yaml/elf2yaml.cpp
Commit 1eaf7babf2dcc3ab8fb429171c991556ffa98291 by llvm-dev
APInt.h - return directly from clearUnusedBits in single word cases. NFCI.

Consistently use the same pattern of returning *this from the clearUnusedBits() call to allow us to early out from the isSingleWord() path and avoid an else statement.
The file was modifiedllvm/include/llvm/ADT/APInt.h
Commit d816499f95d673bbad297d0231cbeaf5efbbc5de by llvm-dev
[KnownBits] Move SelectionDAG::computeKnownBits ISD::ABS handling to KnownBits::abs

Move the ISD::ABS handling to a KnownBits::abs handler, to simplify future implementations in ValueTracking/GlobalISel.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
The file was modifiedllvm/include/llvm/Support/KnownBits.h
The file was modifiedllvm/lib/Support/KnownBits.cpp