SuccessChanges

Summary

  1. [BranchProbabilityInfo] Remove block handles in eraseBlock() (details)
  2. [Test] Run test with expensive SE inference. NFC (details)
  3. [BranchProbabilityInfo] Introduce method copyEdgeProbabilities(). NFC (details)
  4. [Test] One more test on IndVars with negative step (details)
  5. [X86] use macros to split GFNI intrinsics into different kinds (details)
Commit e38c8e7590a0a82be24f3bcc5b87736498f2cb07 by yrouban
[BranchProbabilityInfo] Remove block handles in eraseBlock()

BranchProbabilityInfo::eraseBlock() is a public method and
can be called without deleting the block itself.
This method is made remove the correspondent tracking handle
from BranchProbabilityInfo::Handles along with
the probabilities of the block. Handles.erase() call is moved
to eraseBlock().
In setEdgeProbability() we need to add the block handle only once.

Reviewed By: kazu

Differential Revision: https://reviews.llvm.org/D90838
The file was modifiedllvm/lib/Analysis/BranchProbabilityInfo.cpp
The file was modifiedllvm/include/llvm/Analysis/BranchProbabilityInfo.h
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/lib/Analysis/BranchProbabilityInfo.cpp
The file was modifiedllvm/include/llvm/Analysis/BranchProbabilityInfo.h
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