SuccessChanges

Summary

  1. [InstCombine] Simplify compare of Phi with constant inputs against a constant (details)
  2. [lldb] Handle new BFloat16 type (details)
  3. [ObjectYAML][test] Reuse the chack tag "DWARF-HEADER". NFC. (details)
  4. [mlir][Linalg] Add a hoistRedundantVectorTransfers helper function (details)
  5. [PowerPC][NFC] Add more PC Relative tests (details)
  6. [clang][test] Put output into temp directory (details)
  7. Revert "[InstCombine] Simplify compare of Phi with constant inputs against a constant" (details)
  8. [CodeGen][SVE] Legalisation of extends with scalable types (details)
  9. [mlir][Linalg] Add missing CMake dependency on SCFTransforms (details)
  10. [PowerPC] Remove extra nop after notoc call (details)
  11. [Dexter] Add DexLimitSteps command and ConditionalController (details)
  12. [TargetLowering][NFC] More efficient emitPatchpoint(). (details)
  13. [ARM] Add poly64_t on AArch32. (details)
  14. Remove mention of counter from Archer readme (details)
  15. [MsgPack] Added a convenience operator (details)
  16. [mlir][Vector] Move temporary alloc to top of the function alloca when lowering vector_transfers (details)
  17. Fix build breakage caused by 66a1b83bf93ec46f6d7a06c47d5981ae154f9ea0 (details)
Commit 16b7eb6dd1247dbe322061d33636a054d6c954dc by mkazantsev
[InstCombine] Simplify compare of Phi with constant inputs against a constant

We can simplify
```
  icmp <pred> phi(C1, C2, ...), C
```
with
```
  phi(icmp(C1, C), icmp(C2, C), ...)
```
provided that all comparison of constants are constants themselves.

Differential Revision: https://reviews.llvm.org/D81151
Reviewed By: lebedev.ri
The file was modifiedllvm/test/Transforms/InstCombine/zext-or-icmp.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
The file was modifiedllvm/test/Transforms/InstCombine/icmp-constant-phi.ll
The file was modifiedllvm/test/Transforms/InstCombine/indexed-gep-compares.ll
Commit 2af2140983a8de838a93b375121515a6b48524d4 by kadircet
[lldb] Handle new BFloat16 type
The file was modifiedlldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
Commit 9bfdf1180744f3fe8fe716fa77eacec1c56f0755 by Xing
[ObjectYAML][test] Reuse the chack tag "DWARF-HEADER". NFC.
The file was modifiedllvm/test/tools/yaml2obj/ELF/DWARF/debug-aranges.yaml
Commit 6953cf65024395508c464dc78c90b158b3241a3a by ntv
[mlir][Linalg] Add a hoistRedundantVectorTransfers helper function

This revision adds a helper function to hoist vector.transfer_read /
vector.transfer_write pairs out of immediately enclosing scf::ForOp
iteratively, if the following conditions are true:
   1. The 2 ops access the same memref with the same indices.
   2. All operands are invariant under the enclosing scf::ForOp.
   3. No uses of the memref either dominate the transfer_read or are
   dominated by the transfer_write (i.e. no aliasing between the write and
   the read across the loop)

To improve hoisting opportunities, call the `moveLoopInvariantCode` helper
function on the candidate loop above which to hoist. Hoisting the transfers
results in scf::ForOp yielding the value that originally transited through
memory.

This revision additionally exposes `moveLoopInvariantCode` as a helper in
LoopUtils.h and updates SliceAnalysis to support return scf::For values and
allow hoisting across multiple scf::ForOps.

Differential Revision: https://reviews.llvm.org/D81199
The file was modifiedmlir/include/mlir/Transforms/LoopUtils.h
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Hoisting.cpp
The file was modifiedmlir/lib/Transforms/LoopInvariantCodeMotion.cpp
The file was modifiedmlir/test/Dialect/Linalg/hoisting.mlir
The file was modifiedmlir/test/lib/Transforms/TestLinalgHoisting.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/Transforms/Hoisting.h
The file was modifiedmlir/lib/Analysis/SliceAnalysis.cpp
Commit 05e21f8cea272ceb957a932233639e5ee0bd2574 by stefanp
[PowerPC][NFC] Add more PC Relative tests

Modify the pcrel.ll test file to add more testing for PC Relative.
The file was modifiedllvm/test/CodeGen/PowerPC/pcrel.ll
Commit c31d2134639bb87d6705fe8fb1a46de61bc4cebf by kadircet
[clang][test] Put output into temp directory

To unbreak builds that happen on a read-only directory
The file was modifiedclang/test/CodeGen/arm-bf16-softfloat.c
Commit c4b5a66e44f031eb89c9d6ea32b144f1169bdbae by kadircet
Revert "[InstCombine] Simplify compare of Phi with constant inputs against a constant"

This reverts commit 16b7eb6dd1247dbe322061d33636a054d6c954dc.

Breaks build bots, see
http://lab.llvm.org:8011/builders/clang-x86_64-debian-fast/builds/29888
for an example.
The file was modifiedllvm/test/Transforms/InstCombine/indexed-gep-compares.ll
The file was modifiedllvm/test/Transforms/InstCombine/icmp-constant-phi.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
The file was modifiedllvm/test/Transforms/InstCombine/zext-or-icmp.ll
Commit 89fc0166f53252956705935bfebbb70f06c47c8e by kerry.mclaughlin
[CodeGen][SVE] Legalisation of extends with scalable types

Summary:
This patch adds legalisation of extensions where the operand
of the extend is a legal scalable type but the result is not.

EXTRACT_SUBVECTOR is used to split the result, before
being replaced by target-specific [S|U]UNPK[HI|LO] operations.

For example:

```
zext <vscale x 16 x i8> %a to <vscale x 16 x i16>
```
should emit:

```
uunpklo z2.h, z0.b
uunpkhi z1.h, z0.b
```

Reviewers: sdesmalen, efriedma, david-arm

Reviewed By: efriedma

Subscribers: tschuett, hiraditya, rkruppe, psnobl, huihuiz, cfe-commits, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D79587
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
The file was modifiedllvm/include/llvm/CodeGen/ValueTypes.h
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/lib/CodeGen/ValueTypes.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.h
The file was modifiedllvm/test/CodeGen/AArch64/sve-sext-zext.ll
Commit 6b0dfd703ad6621e8ace5d9d5bf4bb321bde0198 by ntv
[mlir][Linalg] Add missing CMake dependency on SCFTransforms
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt
Commit 8dbf5a95014f6b52c37ffc50c06cc6a3d13479f6 by stefanp
[PowerPC] Remove extra nop after notoc call

Calls that are marked as @notoc do not require the extra nop after the call
for the TOC restore.

Differential Revision: https://reviews.llvm.org/D81081
The file was modifiedllvm/lib/Target/PowerPC/PPCInstr64Bit.td
The file was modifiedllvm/test/CodeGen/PowerPC/pcrel-call-linkage-simple.ll
Commit c6aa829644f30d5590451b892918298f8117c985 by Tom.Weaver
[Dexter] Add DexLimitSteps command and ConditionalController

* Adds DexLimitSteps Command.
* Add ConditionalController, a new DebuggerController type.
* 5 regression tests
* documentation

* recommit, fixed accidental adding of unnecessary file

Reviewers: jmorse

Differential Revision: https://reviews.llvm.org/D79786
The file was addeddebuginfo-tests/dexter/dex/command/commands/DexLimitSteps.py
The file was addeddebuginfo-tests/dexter/dex/debugger/DebuggerControllers/ConditionalController.py
The file was modifieddebuginfo-tests/dexter/dex/debugger/DebuggerControllers/DebuggerControllerBase.py
The file was modifieddebuginfo-tests/dexter/Commands.md
The file was modifieddebuginfo-tests/dexter/dex/debugger/DebuggerBase.py
The file was modifieddebuginfo-tests/dexter/dex/debugger/dbgeng/dbgeng.py
The file was modifieddebuginfo-tests/dexter/dex/debugger/visualstudio/VisualStudio.py
The file was modifieddebuginfo-tests/dexter/dex/command/ParseCommand.py
The file was addeddebuginfo-tests/dexter/feature_tests/commands/perfect/limit_steps/limit_steps_overlapping_ranges.cpp
The file was addeddebuginfo-tests/dexter/feature_tests/commands/perfect/limit_steps/limit_steps_expect_value.cpp
The file was addeddebuginfo-tests/dexter/feature_tests/commands/perfect/limit_steps/limit_steps_check_json_step_count.cpp
The file was modifieddebuginfo-tests/dexter/dex/debugger/lldb/LLDB.py
The file was addeddebuginfo-tests/dexter/feature_tests/commands/perfect/limit_steps/limit_steps_same_line_conditional.cpp
The file was addeddebuginfo-tests/dexter/feature_tests/commands/perfect/limit_steps/limit_steps_expect_loop.cpp
The file was addeddebuginfo-tests/dexter/dex/debugger/DebuggerControllers/ControllerHelpers.py
The file was modifieddebuginfo-tests/dexter/dex/debugger/DebuggerControllers/DefaultController.py
The file was modifieddebuginfo-tests/dexter/dex/tools/test/Tool.py
Commit 66a1b83bf93ec46f6d7a06c47d5981ae154f9ea0 by dantrushin
[TargetLowering][NFC] More efficient emitPatchpoint().

Current implementation of emitPatchpoint() is very inefficient:
for every FrameIndex operand if creates new MachineInstr with
that operand expanded and all other copied as is.
Since PATCHPOINT/STATEPOINT instructions may have *a lot* of
FrameIndex operands, we end up creating and erasing many
machine instructions. But we can do it in single pass, with only
one new machine instruction generated.

Reviewed By: reames
Differential Revision: https://reviews.llvm.org/D81181
The file was modifiedllvm/lib/CodeGen/TargetLoweringBase.cpp
Commit 1e447318339a6e740819ec1568002f4751527efe by ties.stuij
[ARM] Add poly64_t on AArch32.

Summary:
The poly64 types are guarded with ifdefs for AArch64 only. This is wrong. This
was also incorrectly documented in the ACLE spec, but this has been rectified in
the latest release. See paragraph 13.1.2 "Vector data types":

https://developer.arm.com/docs/101028/latest

This patch was written by Alexandros Lamprineas.

Reviewers: ostannard, sdesmalen, fpetrogalli, labrinea, t.p.northover, LukeGeeson

Reviewed By: ostannard

Subscribers: pbarrio, LukeGeeson, kristof.beyls, danielkiss, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D79711
The file was modifiedclang/lib/AST/ItaniumMangle.cpp
The file was modifiedclang/lib/Sema/SemaType.cpp
The file was modifiedclang/utils/TableGen/NeonEmitter.cpp
The file was modifiedclang/include/clang/Basic/TargetBuiltins.h
The file was addedclang/test/CodeGen/arm-poly64.c
Commit e7577d1d763b16538793b183834c1a2003ca0ddd by protze
Remove mention of counter from Archer readme

The feature was removed before upstreaming Archer, so the documentation is wrong
The file was modifiedopenmp/tools/archer/README.md
Commit f1b2be416dc52d9e2323773c26ba58101acd21ba by Saiyedul.Islam
[MsgPack] Added a convenience operator

Summary: Added "not equal to" operator for DocNode comparison

Reviewers: arsenm, scott.linder, saiislam

Reviewed By: saiislam

Subscribers: wdng, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D81250
The file was modifiedllvm/include/llvm/BinaryFormat/MsgPackDocument.h
The file was modifiedllvm/unittests/BinaryFormat/MsgPackDocumentTest.cpp
Commit 247e185dd51261c8b8b7f572a3fa64c001e9d2d4 by ntv
[mlir][Vector] Move temporary alloc to top of the function alloca when lowering vector_transfers

Recently introduced allocation hoisting is quite conservative on the cases when it triggers.
This revision makes it such that the allocations for vector transfer lowerings are hoisted
to the top of the function.
This should be revisited in the context of parallelism and is a temporary workaround.

Differential Revision: https://reviews.llvm.org/D81253
The file was modifiedmlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp
The file was modifiedmlir/test/Conversion/VectorToSCF/vector-to-loops.mlir
Commit dae64d8f421c96288cd8cf1acc31ea57a10d4170 by dantrushin
Fix build breakage caused by 66a1b83bf93ec46f6d7a06c47d5981ae154f9ea0
The file was modifiedllvm/lib/CodeGen/TargetLoweringBase.cpp