[all-commits] [llvm/llvm-project] e412ba: [MachineVerifier] add checks for INLINEASM_BR
Nick Desaulniers via All-commits
all-commits at lists.llvm.org
Fri Aug 19 12:52:49 PDT 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: e412bac9125a806d147f4f545dd057fac0b4a8f0
https://github.com/llvm/llvm-project/commit/e412bac9125a806d147f4f545dd057fac0b4a8f0
Author: Nick Desaulniers <ndesaulniers at google.com>
Date: 2022-08-19 (Fri, 19 Aug 2022)
Changed paths:
M llvm/lib/CodeGen/MachineVerifier.cpp
A llvm/test/MachineVerifier/verify-inlineasmbr.mir
Log Message:
-----------
[MachineVerifier] add checks for INLINEASM_BR
Test for a case we observed after the initial implementation of D129997
landed, in which case we observed a crash while building the ppc64le
Linux kernel. In that case, we had one block with two exits, both to the
same successor. Removing one of the exits corrupted the
successor/predecessor lists.
So when we have an INLINEASM_BR, check a few things for each indirect
target:
1. that it exists.
2. that it is listed in our successors.
3. that its predecessor list contains the parent MBB of INLINEASM_BR.
This would have caught the regression discovered after D129997 landed,
after the pass that was problematic (early-tailduplication) rather than
getting a stack trace in a later pass (regalloc) that doesn't understand
the anomaly and crashes.
Reviewed By: efriedma
Differential Revision: https://reviews.llvm.org/D130290
More information about the All-commits
mailing list