Make Verifier recognize undef tokens as correct IR
Undef tokens may appear in unreached code as result of RAUW of some optimization,
and it should not be considered as bad IR.
Link to bug: https://github.com/llvm/llvm-project/issues/56267
Paths
| Differential D128904
Bug fix "GC relocate is incorrectly tied to the statepoint" ClosedPublic Authored by dbakunevich on Jun 30 2022, 4:50 AM.
Details Summary Make Verifier recognize undef tokens as correct IR Undef tokens may appear in unreached code as result of RAUW of some optimization, Link to bug: https://github.com/llvm/llvm-project/issues/56267
Diff Detail
Event Timelinedbakunevich marked 5 inline comments as done. Comment Actions As part of this task, I could not use the isa<Type_1,Type_2>(Val) construct, because there was an error when building llvm. isa<Type1>(Val) || isa<Type_2>(Val) is often used. Therefore, I propose to solve the full transition problem with isa<>() || isa<>() to isa<,>() as a separate NFC patch Comment Actions Pls change patch description into smth more verbose, like Make Verifier recognize undef tokens as correct IR Undef tokens may appear in unreached code as result of RAUW of some optimization, and it should not be considered as bad IR. This revision is now accepted and ready to land.Jul 5 2022, 1:57 AM This revision was landed with ongoing or failed builds.Jul 18 2022, 2:26 AM Closed by commit rGd693fd29f188: [Verifier] Make Verifier recognize undef tokens as correct IR (authored by mkazantsev). · Explain Why This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 445430 llvm/include/llvm/IR/IntrinsicInst.h
llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
llvm/lib/IR/IntrinsicInst.cpp
llvm/lib/IR/Verifier.cpp
llvm/test/Transforms/InstCombine/gc.relocate-verify.ll
|
Assert isa<GCStatepointInst, UndefValue>(Statepoint)