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

Matthias Braun via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 14 09:37:09 PDT 2017


MatzeB added a comment.

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

> In https://reviews.llvm.org/D37611#870742, @JesperAntonsson wrote:
>
> > I found and fixed the reason our randomized tests didn't run cleanly. It was essentially that stepBackwards removed defined regs from the set even if the instruction was predicated.
>
>
> It's supposed to do that.  This is exactly the reason why we add implicit uses to predicated instructions if there is a live def reaching it.


Indeed, generic codegen in llvm has no notion of predication. That's why we do the ifconversion pass really late and then "fake" liveness with those extra operands to make sure everything that needs to be appears live even when the code has no notion of predication (conservatively correct). We should not need any tweaks for predication outside the ifconversion pass.


Repository:
  rL LLVM

https://reviews.llvm.org/D37611





More information about the llvm-commits mailing list