[PATCH] D80911: AArch64+ARM: make LLVM consider system registers volatile to prevent unsound optimizations.

Johannes Doerfert via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Jul 2 07:31:20 PDT 2020


jdoerfert added a comment.

As an alternative, and necessary regardless, we need to teach AA that "no-`nosync`" operations can experience the effects of external things. As long as `llvm.read_register` is not marked `nosync` that should prevent hoisting. Should, because AA doesn't know this yet. (https://bugs.llvm.org/show_bug.cgi?id=46210).

I do however see the potential for two intrinsics here, one that is a synchronizing read and one that is not. From that perspective this seems reasonable.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D80911/new/

https://reviews.llvm.org/D80911





More information about the cfe-commits mailing list