FailedChanges

Summary

  1. [InstCombine] collectBitParts - convert to use PatterMatch matchers and avoid IntegerType casts. (details)
  2. [AArch64] Remove a duplicate call to setHasWinCFI. NFCI. (details)
  3. [AArch64] Don't merge sp decrement into later stores when using WinCFI (details)
Commit 29ac9fae54c9cbd819ce400d42dd2e76bf5259ab by llvm-dev
[InstCombine] collectBitParts - convert to use PatterMatch matchers and avoid IntegerType casts.

Make sure we're using getScalarSizeInBits instead of cast<IntegerType> to get Type bit widths.

This is preliminary cleanup before we can start adding vector support to the bswap/bitreverse (element level) matching.
The file was modifiedllvm/lib/Transforms/Utils/Local.cpp
Commit 51e74e21aae8b4e885e23d3f15922a58bc173c34 by martin
[AArch64] Remove a duplicate call to setHasWinCFI. NFCI.

The function already has a cleanup scope that calls the same whenever
the function is exited. When reading the code, seeing that this return
codepath has an explicit call while other return paths lack it is
confusing.

In the hypothetical case of a function having a prologue that
set the HasWinCFI flag in the MF, but the epilogue containing no
WinCFI instructions, the HasWinCFI flag in the MF would end up reset back
to false.

Differential Revision: https://reviews.llvm.org/D88636
The file was modifiedllvm/lib/Target/AArch64/AArch64FrameLowering.cpp
Commit f4b9dfd9bc414a316d997a314b05ac7f9258a722 by martin
[AArch64] Don't merge sp decrement into later stores when using WinCFI

This matches the corresponding existing case in
AArch64LoadStoreOpt::findMatchingUpdateInsnForward.

Both cases could also be modified to check
MBBI->getFlag(FrameSetup/FrameDestroy) instead of forbidding any
optimization involving SP, but the effect is probably pretty much
the same.

Differential Revision: https://reviews.llvm.org/D88541
The file was modifiedllvm/test/CodeGen/AArch64/arm64-windows-calls.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp