SuccessChanges

Summary

  1. [clang] Fix incorrect call to TextDiagnostic::printDiagnosticMessage (details)
  2. [LSR] Preserve MSSA when using SplitCriticalEdge. (details)
  3. Fix crash in the pass pipeline when local reproducer is enabled (details)
  4. [CodeGen] Fixing inconsistent ABI mangling of vlaues in SelectionDAGBuilder (details)
  5. [Test] Test auto-update (details)
Commit 4eae6fc95f95563a73a510a8b09cfce01004930a by andrzej.warzynski
[clang] Fix incorrect call to TextDiagnostic::printDiagnosticMessage

As per the documentation, the 2nd argument in printDiagnosticMessage
should be a bool that specifies whether the underlying message is a
continuation note diagnostic or not. More specifically, it should be:
```
Level == DiagnosticsEngine::Note
```
instead of:
```
Level
```

This change means that `no input file` in the following scenario will be
now correctly printed in bold:
```
$ bin/clang
clang: error: no input files
```
In terminals that don't support text formatting the behaviour doesn't
change.

Differential Revision: https://reviews.llvm.org/D87816
The file was modifiedclang/lib/Frontend/TextDiagnosticPrinter.cpp (diff)
Commit 57ae9bb9323548b2ad4ba8274c3910bf9c764983 by flo
[LSR] Preserve MSSA when using SplitCriticalEdge.

LSR claims to MemorySSA, but we also have to make sure it is preserved
when splitting critical edges. This can be done by passing MSSAU to
SplitCriticalEdge.

Fixes PR47557.
The file was modifiedllvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp (diff)
The file was addedllvm/test/Analysis/MemorySSA/update-remove-dead-blocks.ll
Commit 702f06ad14ac61d364b773e5a1f4d8b0b0214553 by joker.eph
Fix crash in the pass pipeline when local reproducer is enabled

This crash only happens when a function pass is followed by a module
pass. In this case the splitting of the pass pipeline didn't handle
properly the verifier passes and ended up with an odd number of pass in
the pipeline, breaking an assumption of the local crash reproducer
executor and hitting an assertion.

Differential Revision: https://reviews.llvm.org/D88000
The file was modifiedmlir/test/Pass/crash-recovery.mlir (diff)
The file was modifiedmlir/lib/Pass/Pass.cpp (diff)
Commit 53d238a961d14eae46f6f2b296ce48026c7bd0a1 by lucas.prates
[CodeGen] Fixing inconsistent ABI mangling of vlaues in SelectionDAGBuilder

SelectionDAGBuilder was inconsistently mangling values based on ABI
Calling Conventions when getting them through copyFromRegs in
SelectionDAGBuilder, causing duplicate value type convertions for
function arguments. The checking for the mangling requirement was based
on the value's originating instruction and was performed outside of, and
inspite of, the regular Calling Convention Lowering.

The issue could be observed in a scenario such as:

```
%arg1 = load half, half* %const, align 2
%arg2 = call fastcc half @someFunc()
call fastcc void @otherFunc(half %arg1, half %arg2)
; Here, %arg2 was incorrectly mangled twice, as the CallConv data from
; the call to @someFunc() was taken into consideration for the check
; when getting the value for processing the call to @otherFunc(...),
; after the proper convertion had taken place when lowering the return
; value of the first call.
```

This patch fixes the issue by disregarding the Calling Convention
information for such copyFromRegs, making sure the ABI mangling is
properly contanined in the Calling Convention Lowering.

This fixes Bugzilla #47454.

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D87844
The file was addedllvm/test/CodeGen/ARM/pr47454.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp (diff)
Commit 98aed8aa00dcc021686972734b5356c831328721 by mkazantsev
[Test] Test auto-update
The file was modifiedllvm/test/Transforms/IndVarSimplify/eliminate-comparison.ll (diff)