[PATCH] D89088: [MBP] Add whole chain to BlockFilterSet instead of individual BB

Jeremy Morse via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 20 14:48:29 PDT 2020


jmorse added a comment.

In D89088#2342853 <https://reviews.llvm.org/D89088#2342853>, @dmajor wrote:

> Adding @jmorse in case D83046 <https://reviews.llvm.org/D83046> is related.

Technically D83046 <https://reviews.llvm.org/D83046> is NFC, it just juggles the files where the pass implementation lives, however this is definitely my area of focus,

> The dump of the affected machine function is: https://paste.mozilla.org/g44ZAPGr.

Thanks for the dump; if I'm interpreting it correctly, the entry block itself has a predecessor:

  bb.2 (%ir-block.16):
  ; predecessors: %bb.1

(Working on the convention that the first block in the function is the entry block). The dataflow implementation doesn't believe this can ever happen, and the assertion hit assumes that the entry block can be identified by its lack of predecessors. At a shallow level, that could be tightened up to identify the entry block by whether it's the first block in the function. IMO it'd be an acceptable immediate fix.

If an entry block with a predecessor is legal behaviour, we'd need to change other parts of the algorithm too as the formal dataflow definitions require a block with no predecessors to begin exploration at. There's a risk that more variable locations get dropped  than necessary.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D89088



More information about the llvm-commits mailing list