FailedChanges

Summary

  1. [X86] X86CallFrameOptimization - generalize slow push code path (details)
  2. [PostOrderIterator] Use SmallVector to store stack; NFC (details)
  3. [VPlan] Use one VPWidenRecipe per original IR instruction. (NFC). (details)
Commit a7115d51be09ebc8953a269d26bda3d0c50dbab2 by llvm-dev
[X86] X86CallFrameOptimization - generalize slow push code path

Replace the explicit isAtom() || isSLM() test with the more general (and more specific) slowTwoMemOps() check to avoid the use of the PUSHrmm push from memory case.

This is actually very tricky to test in anything but quite complex code, but the atomic-idempotent.ll tests seem to be the most straightforward to use.

Differential Revision: https://reviews.llvm.org/D76239
The file was modifiedllvm/lib/Target/X86/X86CallFrameOptimization.cpp
The file was modifiedllvm/test/CodeGen/X86/atomic-idempotent.ll
Commit 6ba63510720f5bd6033a3eeffd51f8d7e0e90432 by nikita.ppv
[PostOrderIterator] Use SmallVector to store stack; NFC

We use a SmallPtrSet to track visited nodes, use a SmallVector
of the same size for the stack.
The file was modifiedllvm/include/llvm/ADT/PostOrderIterator.h
Commit 49d00824bbbb8945b92c0f592c6951a881a6242f by flo
[VPlan] Use one VPWidenRecipe per original IR instruction. (NFC).

This patch changes VPWidenRecipe to only store a single original IR
instruction. This is the first required step towards modeling it's
operands as VPValues and also towards breaking it up into a
VPInstruction.

Discussed as part of D74695.

Reviewers: Ayal, gilr, rengolin

Reviewed By: gilr

Differential Revision: https://reviews.llvm.org/D76988
The file was modifiedllvm/lib/Transforms/Vectorize/VPRecipeBuilder.h
The file was modifiedllvm/unittests/Transforms/Vectorize/VPlanHCFGTest.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.h
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp