[PATCH] D32006: Mark invariant.group.barrier as inaccessiblememonly

Richard Smith - zygoloid via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 30 13:57:03 PDT 2018


rsmith added a comment.
Herald added a subscriber: george.burgess.iv.

LGTM

Based on your document, I think it's correct for this to additionally be marked `writeonly`. I think the key question here is: is the side-channel information in the notional "fat pointer" established at the point where the barrier is executed, or at the first `!invariant.group` load //through// the pointer after the barrier? If it's at the point of the barrier, then the barrier notionally performs a read through its argument and shouldn't be `writeonly`, but your document says that the intrinsic merely establishes a new invariant group, and that only future `!invariant.group` loads in that group actually determine the invariant value. As well as being more optimizable, this also seems like a nicer model for frontend code generation.


Repository:
  rL LLVM

https://reviews.llvm.org/D32006





More information about the llvm-commits mailing list