IntrReadWriteArgMem simply becomes IntrArgMemOnly.
So there are fewer intrinsic properties that express their orthogonality
better, and correspond more closely to the corresponding IR attributes.
Suggested by: Philip Reames
Paths
| Differential D19291
Split IntrReadArgMem into IntrReadMem and IntrArgMemOnly ClosedPublic Authored by nhaehnle on Apr 19 2016, 3:34 PM.
Details Summary IntrReadWriteArgMem simply becomes IntrArgMemOnly. So there are fewer intrinsic properties that express their orthogonality Suggested by: Philip Reames
Diff Detail Event Timelinenhaehnle updated this object. Comment Actions
Not totally sure but I thought we don't store intrinsic attributes in the bitcode and instead apply the one defined in table-gen any time you create a function for which the name matches the intrinsic? Comment Actions This change should be totally unrelated to IR bitcode. The Intr* properties are only ever seen by TableGen. TableGen maps the Intr* properties to IR attributes in IntrinsicEmitter::EmitAttributes, but that mapping is unaffected by the change at hand. The attribute emission code could be cleaned up as well, but I'd rather do that separately, see also D18714. reames edited edge metadata. Comment ActionsLGTM. I have tried to review all the changes, but it's possible I missed something in the mechanical parts. I'm assuming author did this via find/replace or other tooling so that chances of typos are low. The naming and style comments would be best addressed in a separate commit.
This revision is now accepted and ready to land.Apr 20 2016, 5:40 PM Comment Actions Yes, the bulk of changes was done by a simple sed script after skimming a grep result to look for outliers. I'm going to commit with your other suggestions except the ReadWriteAllMem (perhaps AnyMem?), because that seems a bit much in one change. Closed by commit rL267021: Split IntrReadArgMem into IntrReadMem and IntrArgMemOnly (authored by nha). · Explain WhyApr 21 2016, 10:53 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 54282 include/llvm/Analysis/AliasAnalysis.h
include/llvm/IR/Intrinsics.td
include/llvm/IR/IntrinsicsAArch64.td
include/llvm/IR/IntrinsicsAMDGPU.td
include/llvm/IR/IntrinsicsARM.td
include/llvm/IR/IntrinsicsHexagon.td
include/llvm/IR/IntrinsicsMips.td
include/llvm/IR/IntrinsicsNVVM.td
include/llvm/IR/IntrinsicsPowerPC.td
include/llvm/IR/IntrinsicsSystemZ.td
include/llvm/IR/IntrinsicsX86.td
lib/Target/AMDGPU/SIIntrinsics.td
utils/TableGen/CodeGenIntrinsics.h
utils/TableGen/CodeGenTarget.cpp
|
The (unless also...) part is confusing. Possibly, "it cannot be moved across aliasing potentially stores"?