SuccessChanges

Summary

  1. [X86] Fix a few recursivelyDeleteUnusedNodes calls that were trying to delete nodes before their user was really gone. (details)
  2. Fix violations of [basic.class.scope]p2. (details)
  3. [BrachProbablityInfo] Proportional distribution of reachable probabilities (details)
Commit e51d5bc7a4fc967c8a99a75cfa9480eb6b3a4fae by craig.topper
[X86] Fix a few recursivelyDeleteUnusedNodes calls that were trying to delete nodes before their user was really gone.

We looked through a truncate to get to the load. So we should be
deleting the truncate first.

There is a check that the node is really unused before deleting
so this didn't cause a functional issue.
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit 4ccb6c36a9159809f4b98176325ae202753fe136 by richard
Fix violations of [basic.class.scope]p2.

These cases all follow the same pattern:

struct A {
  friend class X;
  //...
  class X {};
};

But 'friend class X;' injects 'X' into the surrounding namespace scope,
rather than introducing a class member. So the second 'class X {}' is a
completely different type, which changes the meaning of the earlier name
'X' from '::X' to 'A::X'.

Additionally, the friend declaration is pointless -- members of a class
don't need to be befriended to be able to access private members.
The file was modifiedclang/utils/TableGen/NeonEmitter.cpp
The file was modifiedllvm/lib/CodeGen/InterferenceCache.h
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
The file was modifiedclang/lib/Analysis/CFG.cpp
Commit 07239c736a5b664942551b82ffa660f2a3f14f41 by yrouban
[BrachProbablityInfo] Proportional distribution of reachable probabilities

When fixing probability of unreachable edges in
BranchProbabilityInfo::calcMetadataWeights() proportionally distribute
remainder probability over the reachable edges. The old implementation
distributes the remainder probability evenly.
See examples in the fixed tests.

Reviewers: yamauchi, ebrevnov
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D80611
The file was modifiedllvm/lib/Analysis/BranchProbabilityInfo.cpp
The file was modifiedllvm/test/Analysis/BranchProbabilityInfo/basic.ll