[PATCH] D127516: RegisterCoalescer: Fix verifier error when merging copy of undef

Matthias Braun via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 27 11:11:19 PDT 2022


MatzeB added a comment.

For background: My understanding of `IMPLICIT_DEF` is that it was a bit of a workaround/hack necessary because for a given VReg on a control flow join you can have different "undef"/"not undef" merge. Unfortunately being out of SSA form we can't just attach an undef flag to the respective `PHI` operand as there is no PHI anymore. I always felt a bit uneasy with `IMPLICIT_DEF` getting used in other situations where they are not at the end of a block just for joining with a different definition/live value in the next block...

Though I have a feeling restricting `IMPLICIT_DEF`s just to this particular use case may be a loosing battle now since I think I've seen them pop-up in other situations... Also I don't remember fully, but I think we also trouble with undef flags being unable to express partially defined registers when subreg liveness is enabled.


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

https://reviews.llvm.org/D127516



More information about the llvm-commits mailing list