SuccessChanges

Summary

  1. [lld][ELF][test] Add additional LTO testing (details)
  2. [RISC-V] Implement RISCVInstrInfo::isCopyInstrImpl() (details)
  3. [compiler-rt] Fix atomic support functions on 32-bit architectures (details)
  4. [SyntaxTree][Synthesis] Implement `deepCopy` (details)
  5. [mlir] Shape.AssumingOp implements RegionBranchOpInterface. (details)
Commit fa6da90aef004339e768c84d648f449348a5b13c by james.henderson
[lld][ELF][test] Add additional LTO testing

The additional testing is testing we previously had in a downstream test
suite.

Reviewed by: grimar, MaskRay

Differential Revision: https://reviews.llvm.org/D87824
The file was modifiedlld/test/ELF/lto/wrap-2.ll (diff)
The file was addedlld/test/ELF/lto/archive-mixed.test
The file was addedlld/test/ELF/lto/undef-mixed2.test
The file was modifiedlld/test/ELF/lto/internalize-basic.ll (diff)
Commit 8cf6778d3040b33db768bb7542630d9820a72e28 by Alexander.Richardson
[RISC-V] Implement RISCVInstrInfo::isCopyInstrImpl()

This does not result in changes for any of the current tests, but it might
improve debug information in some cases.

Reviewed By: luismarques

Differential Revision: https://reviews.llvm.org/D86522
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfo.cpp (diff)
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfo.h (diff)
Commit aa85c6f2a528792e2ff778a36fb6f35a01e8191c by Alexander.Richardson
[compiler-rt] Fix atomic support functions on 32-bit architectures

The code currently uses __c11_atomic_is_lock_free() to detect whether an
atomic operation is natively supported. However, this can result in a
runtime function call to determine whether the given operation is lock-free
and clang generating a call to e.g. __atomic_load_8 since the branch is
not a constant zero. Since we are implementing those runtime functions, we
must avoid those calls. This patch replaces __c11_atomic_is_lock_free()
with __atomic_always_lock_free() which always results in a compile-time
constant value. This problem was found while compiling atomic.c for MIPS32
since the -Watomic-alignment warning was being triggered and objdump showed
an undefined reference to _atomic_is_lock_free.

In addition to fixing 32-bit platforms this also enables the 16-byte case
that was disabled in r153779 (185f2edd70a34d28b305df0cd8ce519ecbca2cfd).

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D86510
The file was modifiedcompiler-rt/lib/builtins/atomic.c (diff)
Commit 4a5cc389c51d267f39286a9a8c58c32f758b9d4b by ecaldas
[SyntaxTree][Synthesis] Implement `deepCopy`

Differential Revision: https://reviews.llvm.org/D87749
The file was modifiedclang/unittests/Tooling/Syntax/SynthesisTest.cpp (diff)
The file was modifiedclang/include/clang/Tooling/Syntax/BuildTree.h (diff)
The file was modifiedclang/lib/Tooling/Syntax/Synthesis.cpp (diff)
Commit ffdd4a46a9a90d7b63b840c4b3c775074815f3ed by tpopp
[mlir] Shape.AssumingOp implements RegionBranchOpInterface.

This adds support for the interface and provides unambigious information
on the control flow as it is unconditional on any runtime values.
The code is tested through confirming that buffer-placement behaves as
expected.

Differential Revision: https://reviews.llvm.org/D87894
The file was modifiedmlir/include/mlir/Dialect/Shape/IR/ShapeOps.td (diff)
The file was modifiedmlir/test/Transforms/buffer-placement.mlir (diff)
The file was modifiedmlir/lib/Dialect/Shape/IR/Shape.cpp (diff)