[PATCH] D26485: Add IntrInaccessibleMemOnly property for intrinsics
    Hal Finkel via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Wed Nov  9 17:04:59 PST 2016
    
    
  
hfinkel added a comment.
> I considered adding this attribute to the @llvm.assume() intrinsic as Hal suggested in the comments on https://reviews.llvm.org/D26382, but that would have resulted in changes to aliasing behavior which is specifically tested for in test/Analysis/BasicAA/assume.ll and I am not familiar enough with that intrinsic to be comfortable judging whether or not that is acceptable. Consequently, I have no direct test for this change set. I am, of course, open to guidance.
I don't see why they should be different. Please feel free to update the test case and I'll review it -- or explain why the semantics are different.
> This code will not set the 'hasSideEffects' flag for intrinsics that use the IntrInaccessibleMemOnly property, but it currently does not set that flag for intrinsics that use the IntrArgMemOnly property. This seems wrong to me in both cases, but I decided to defer to the existing logic over my own judgment pending review.
hasSideEffects is somewhat misnamed. It really means "has otherwise-unmodeled side effects", so not setting it seems correct.
================
Comment at: include/llvm/IR/Intrinsics.td:48
+// accessible by the module being compiled. This is a weaker form of IntrNoMem.
+def IntrInaccessibleMemOnly : IntrinsicProperty;
+
----------------
We should go ahead and add InaccessibleMemOrArgMemOnly too while we're here.
Repository:
  rL LLVM
https://reviews.llvm.org/D26485
    
    
More information about the llvm-commits
mailing list