[PATCH] D110751: [DomTree] Assert that blocks in queries aren't from another function

Fangrui Song via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 30 21:54:36 PDT 2021


MaskRay accepted this revision.
MaskRay added a comment.

LGTM.



================
Comment at: llvm/include/llvm/Support/GenericDomTree.h:353
+    assert((!BB || !BB->getParent() || BB->getParent() == Parent) &&
+           "A node from another function!");
+
----------------
DaniilSuchkov wrote:
> aeubanks wrote:
> > DaniilSuchkov wrote:
> > > nikic wrote:
> > > > Is `!BB` really a valid input to this function?
> > > I don't know, but since there are no checks for that anywhere and it's not mentioned in its description, I decided refrain from making any assumptions.
> > > If you think it's not, I can add an assertion for that in a separate patch.
> > I'd just remove the check for `!BB` if check-llvm doesn't complain
> `make check` quickly reminded me that `!BB ||` wasn't accidental at all:
> ```
>   Skipped          :    36
>   Unsupported      : 19985
>   Passed           : 19299
>   Expectedly Failed:    58
>   Failed           :  6325
> ```
> That's almost 1/3 of all tests.
If my memory doesn't fail me: it may be used by postdominator as the root node. 
I did notice that this should be avoided to prevent confusion.


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

https://reviews.llvm.org/D110751



More information about the llvm-commits mailing list