[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:30:58 PDT 2017


MatzeB added a comment.

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

> To add to my previous comment---there is a plan to eliminate kill flags in the future (as I was told), so passes the rely on those will eventually need to be modified.  If it's the presence of kill flags on predicated instructions (and tied uses) that is causing problems, maybe it would be a good thing to address that in the passes that are exploiting that to generate wrong code.  It would imply more work, so I guess the answer depends on how much more work it would be.


Yes we are in the process of eliminating kill flags. Ideally you should be able to remove all kill flags from a machine function and still generate exactly the same code. I think we are already there for aarch64 and x86 (though I didn't do in-depth validation yet). However I think we should work towards that goal delibarately: When writing new code make sure it does not read/depend on kill flags, at the same time when changing existing code I'd avoid removing kill flags to avoid unexpected performance swings on targets that still read kill flags.


https://reviews.llvm.org/D37611





More information about the llvm-commits mailing list