[PATCH] D111448: [BPI] Handle incomplete state in BPI

Anna Thomas via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 8 11:35:15 PDT 2021


anna added a comment.

In D111448#3052089 <https://reviews.llvm.org/D111448#3052089>, @asbirlea wrote:

> I'm confused how the intermittent assert occurs. Is the compilation non-deterministic?

Compilation is deterministic.

There can be couple of reasons (I couldn't find the reason for the intermittent failure) :

1. Underlying data structure for `Probs` is `DenseMap<Edge, BranchProbability>`.  Iteration through `Probs` is non-determistic, but I don't see us relying on that in BPI.
2. It could also be that some pass within our LPM invocation has non-determinism in iteration through `use-list` or the way the successors are updated (this LPM is made up of all upstream passes: LoopPredication, LICM, LoopSimplifyCFG, LoopUnswitch<non-trivial>, GuardWidening).


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D111448/new/

https://reviews.llvm.org/D111448



More information about the llvm-commits mailing list