[PATCH] D153337: [MachineLICM][WinEH] Don't hoist register reloads out of funclets

Matt Arsenault via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 11 09:52:48 PDT 2023


arsenm accepted this revision.
arsenm added inline comments.


================
Comment at: llvm/lib/CodeGen/MachineLICM.cpp:540-543
     for (const auto &LI : BB->liveins()) {
       for (MCRegAliasIterator AI(LI.PhysReg, TRI, true); AI.isValid(); ++AI)
         PhysRegDefs.set(*AI);
     }
----------------
rnk wrote:
> arsenm wrote:
> > We're moving towards reverse block liveness. Modern liveness queries start at the end of the block and walk backwards, but this is walking forward looking for defs. Can this pass switch to using LiveRegUnits and stepBackwards?
> That sounds like a good idea, but it seems out of scope for this bug fix.
Yes, but this is just a quick spot fix. For some reason a lot of machine passes invented their own buggy liveness tracking mechanisms and miss the edge cases like this one


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

https://reviews.llvm.org/D153337



More information about the llvm-commits mailing list