[PATCH] D60783: [LoopPred] Implement a version of the profitability heuristic w/o BPI

Fedor Sergeev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 16 23:52:34 PDT 2019


fedor.sergeev added a comment.

In D60783#1469458 <https://reviews.llvm.org/D60783#1469458>, @hfinkel wrote:

> > In the new pass manager, getting access to BPI reliability is a challenge. In practice, we've been running downstream with a variation of this non-BPI based heuristic.
>
> Can you please explain why? The new pass manager was supposed to make our problems getting a hold of analysis results in different places easier, not harder.


New pass manager provides proper organization of analyses but it cant (and shouldnt!) hide innate asymmetry in relationship between Function-level analysis and Loop-level transformation.
NPM specifically prohibits reruns of outer-level analysis from within a inner-level-pass (proxy is readonly).
When working on loop-level you can only *use* function/module-level analysis, manually *preserve* it or automatically invalidate analysis results as a whole after the changes to IR.
That seems to be a proper design decision.

For BPI that means we can not rerun BPI as soon as some loop-level pass invalidates it. So the only way to get BPI reliably in all loop passes is to teach all the loop passes to preserve BPI.


Repository:
  rL LLVM

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

https://reviews.llvm.org/D60783





More information about the llvm-commits mailing list