[PATCH] D76069: [ARM][MachineOutliner] Add default mode.

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 20 21:16:26 PDT 2020


efriedma added inline comments.


================
Comment at: llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp:6083
+  if (!MBB.isLiveIn(ARM::LR))
+    MBB.addLiveIn(ARM::LR);
   // Can we save to a register?
----------------
In general, calling addLiveIn(LR) on the current block isn't sufficient to update the liveness correctly.  If LR is live-in in the current block, it has to be live-out of that block's predecessors, which means it has to be live-in to the current block's predecessors.  See D78586.

Actually, can the isLiveIn() check fail?  if LR isn't live-in, wouldn't we choose MachineOutlinerNoLRSave?  Or is it possible to hit some weird case where LR is live, but not explicitly listed in the live-in list?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D76069





More information about the llvm-commits mailing list