[PATCH] D41226: LiveDebugValues spill recognition expasnsion

Wolfgang Pieb via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 8 09:58:42 PST 2018


wolfgangp added a comment.

I agree that this is a solution to a specific case. I would be OK with it going in for now (after addressing the remaining review comments) with a FIXME comment added to provide a more comprehensive solution later, i.e. one that addresses bundles and kills in instructions further down the chain, as Bjorn suggested.



================
Comment at: lib/CodeGen/LiveDebugValues.cpp:451
+        // previous spill instruction that is killed in NextI.
+        if (getRegIfKilled(MONext, RegNext) && RegNext == Reg)
+          return true;
----------------
bjope wrote:
> Isn't it still weird to use Reg here.  The getRegIfKilled call on line 439 can return false without setting Reg (due to the operand not being a use, or not even being a register).
> The getRegIfKilled call on line 439 can return false without setting Reg (due to the operand not being a use, or not even being a register).

Yes, Reg can be undefined in that case. Perhaps it should be set to 0 in the lambda when it's not a use or a register.



https://reviews.llvm.org/D41226





More information about the llvm-commits mailing list