[PATCH] D52785: [PseudoSourceValue] New category to represent floating-point status

Hal Finkel via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 8 16:08:20 PDT 2018


hfinkel added a comment.

In https://reviews.llvm.org/D52785#1258222, @MatzeB wrote:

> As far as I understand MachineMemoryOperands:
>
> - You are allowed to drop them


I'm trying to understand the difference between the world where we're allowed to drop these and the world in which we're not. It's not clear what benefit we get from allowing dropping these. There also might be an advantage to dropping the Value*s used for AA (e.g., to better decouple the MI from the IR) which doesn't extend to MMOs in general.

> - An operation without MachineMemoryOperand needs to be handled conservatively (i.e. potentially aliases with everything)

This is certainly true, at least as far as aliasing goes. Regarding volatile semantics it doesn't work.

As I see it, we don't currently drop MMOs in practice (with the exception, now, of the MI outliner?). Doing so breaks, at least, volatile semantics. I think that we should simply document that MMOs can't be dropped in general (although we might drop parts of them, such as AA Value*). Thoughts?

> 
> 
> - Matthias




Repository:
  rL LLVM

https://reviews.llvm.org/D52785





More information about the llvm-commits mailing list