[PATCH] D8313: Refactor commoning of target specific load/store intrinsics in EarlyCSE

Hal Finkel via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 2 15:38:59 PST 2016

hfinkel added inline comments.

Comment at: include/llvm/Analysis/TargetTransformInfo.h:501
@@ +500,3 @@
+  /// purposes.
+  bool areInlineCompatible(const Function *Caller,
+                           const Function *Callee) const;
> From what I understand, IntrReadArgMem results in an intrinsic being annotated with the readonly attribute. However, the readonly attribute doesn't imply that the intrinsic has only one pointer argument.

Not exactly. Such an intrinsic is read-only, but BasicAA also (automatically) learns the "arg mem" part of the property so that AA->getModRefBehavior can return FMRB_OnlyReadsArgumentPointees. Also, argmemonly is now a generic IR attribute that can be applied to any function.

Comment at: include/llvm/Analysis/TargetTransformInfo.h:518
@@ +517,3 @@
+  /// access.
+  bool isTargetIntrinsicAtomic(const IntrinsicInst *II) const;
If this is important, why not add function attributes for these?


More information about the llvm-commits mailing list