[PATCH] D37611: [IfConversion] More simple, correct dead/kill liveness handling

Matthias Braun via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 13 10:27:50 PDT 2017


MatzeB added a comment.

In https://reviews.llvm.org/D37611#869543, @kparzysz wrote:

> I just started a test run on a Hexagon suite, but I wonder if the anti-dependence breaker could be a problem.  This is regarding the question of whether the implicit uses on predicated instructions should be killed or not.  BTW, the same argument applies to tied uses.  Even though the live ranges seem to end/start at that instruction, the register cannot be renamed in only one of them.  This differentiates those instructions from a case of unrelated use/def coincidentally using the same register (as was in the example: r0 = add r0, r1).


For instruction that def/use the same vreg (tied or not) it shouldn't matter whether we add a kill flag. That is either way it is obvious that the def will overwrite the register. But given that it doesn't matter we can just as well do it.
While it feels slightly off for tied operands I don't think it matters there either as the no-partially-renaming semantics stems from the fact that the tied bit is set not from present or missing kill flags.


https://reviews.llvm.org/D37611





More information about the llvm-commits mailing list