SuccessChanges

Summary

  1. [Test] Run test with expensive SE inference. NFC (details)
  2. [BranchProbabilityInfo] Introduce method copyEdgeProbabilities(). NFC (details)
  3. [Test] One more test on IndVars with negative step (details)
  4. [X86] use macros to split GFNI intrinsics into different kinds (details)
  5. [IR] CmpInst: add getUnsignedPredicate() (details)
  6. [IR] CmpInst: add isEquality(Pred) (details)
  7. [IR] CmpInst: add isRelational() (details)
  8. [IR] CmpInst: Add getFlippedSignednessPredicate() (details)
  9. [TypeSize] Extend UnivariateLinearPolyBase with getWithIncrement/Decrement methods (details)
Commit 1776581be44a2efe232f7b1a03a564844d1728fd by mkazantsev
[Test] Run test with expensive SE inference. NFC

The planned changes require expensive inference to kick in
The file was modifiedllvm/test/Transforms/IndVarSimplify/widen-loop-comp.ll
Commit 681d6c711f2743b69eaed5b3708e7c4bf86489c2 by yrouban
[BranchProbabilityInfo] Introduce method copyEdgeProbabilities(). NFC

A new method is introduced to allow bulk copy of outgoing edge
probabilities from one block to another. This can be useful when
a block is cloned from another one and we do not know if there
are edge probabilities set for the original block or not.
Copying outside of the BranchProbabilityInfo class makes the user
unconditionally set the cloned block's edge probabilities even if
they are unset for the original block.

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D90839
The file was modifiedllvm/include/llvm/Analysis/BranchProbabilityInfo.h
The file was modifiedllvm/lib/Analysis/BranchProbabilityInfo.cpp
Commit 84fe777a63f4c07715b75e65b8335561514e50b7 by mkazantsev
[Test] One more test on IndVars with negative step
The file was modifiedllvm/test/Transforms/IndVarSimplify/widen-loop-comp.ll
Commit 5e312e0041972668f1bd67ff9ed0f16a594795a3 by freddy.ye
[X86] use macros to split GFNI intrinsics into different kinds

Tremont microarchitecture only has GFNI(SSE) version, not AVX and
AVX512 version. This patch is to avoid compiling fail on Windows when
using -march=tremont to invoke one of GFNI(SSE) intrinsic.

Differential Revision: https://reviews.llvm.org/D90822
The file was modifiedclang/lib/Headers/gfniintrin.h
Commit a5ae3edaa380702eb2be225721533c1aab2f4d3e by lebedev.ri
[IR] CmpInst: add getUnsignedPredicate()

There's already getSignedPredicate(), it is not symmetrical to not have
it's opposite. I wanted to use it in new code, but it wasn't there..
The file was modifiedllvm/include/llvm/IR/InstrTypes.h
The file was modifiedllvm/lib/IR/Instructions.cpp
Commit c7c702a272f6b1a3578460eefc07e1282b43cf13 by lebedev.ri
[IR] CmpInst: add isEquality(Pred)

Currently there is only a member version of isEquality(),
which requires an actual [IF]CmpInst to be avaliable,
which isn't always possible, and is inconsistent with
the general pattern here.

I wanted to use it in a new patch, but it wasn't there..
The file was modifiedllvm/include/llvm/IR/InstrTypes.h
The file was modifiedllvm/lib/IR/Instructions.cpp
Commit d4f70d64547a1cf9a39e29dc4b70e53158df49fb by lebedev.ri
[IR] CmpInst: add isRelational()

Since there's CmpInst::isEquality(), it only makes sense
to have it's inverse for consistency.
The file was modifiedllvm/include/llvm/IR/InstrTypes.h
Commit 8d0fdd36a3a3e7d1bb07c34ab61cfe2671d13444 by lebedev.ri
[IR] CmpInst: Add getFlippedSignednessPredicate()

And refactor a few places to use it
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
The file was modifiedllvm/lib/IR/Instructions.cpp
The file was modifiedllvm/include/llvm/IR/InstrTypes.h
Commit 5ee9ef85190cff09c4d3718d8683af1900a33348 by sander.desmalen
[TypeSize] Extend UnivariateLinearPolyBase with getWithIncrement/Decrement methods

This patch adds getWithIncrement/getWithDecrement methods to
ElementCount and TypeSize to allow:

  TypeSize::getFixed(8).getWithIncrement(8)     <=> TypeSize::getFixed(16)
  TypeSize::getFixed(16).getWithDecrement(8)    <=> TypeSize::getFixed(8)
  TypeSize::getScalable(8).getWithIncrement(8)  <=> TypeSize::getScalable(16)
  TypeSize::getScalable(16).getWithDecrement(8) <=> TypeSize::getScalable(8)

This patch implements parts of the POC in D90342.

Reviewed By: ctetreau, dmgreen

Differential Revision: https://reviews.llvm.org/D90713
The file was modifiedllvm/unittests/Support/LinearPolyBaseTest.cpp
The file was modifiedllvm/include/llvm/Support/TypeSize.h