diff options
| author | Nicolai Haehnle <nhaehnle@gmail.com> | 2016-04-21 17:48:02 +0000 |
|---|---|---|
| committer | Nicolai Haehnle <nhaehnle@gmail.com> | 2016-04-21 17:48:02 +0000 |
| commit | 97788020c59f9c2c8a9ac99d3fc87f5f5a7cda80 (patch) | |
| tree | a1825ff2562f5d788cb3a30e08c656dcece520cf /llvm/utils/TableGen | |
| parent | 5abcb3cc5be4d3618d3156a662453b27fd590b2b (diff) | |
| download | bcm5719-llvm-97788020c59f9c2c8a9ac99d3fc87f5f5a7cda80.tar.gz bcm5719-llvm-97788020c59f9c2c8a9ac99d3fc87f5f5a7cda80.zip | |
Split IntrReadArgMem into IntrReadMem and IntrArgMemOnly
Summary:
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
Reviewers: joker.eph, reames, tstellarAMD
Subscribers: jholewinski, arsenm, llvm-commits
Differential Revision: http://reviews.llvm.org/D19291
llvm-svn: 267021
Diffstat (limited to 'llvm/utils/TableGen')
| -rw-r--r-- | llvm/utils/TableGen/CodeGenIntrinsics.h | 2 | ||||
| -rw-r--r-- | llvm/utils/TableGen/CodeGenTarget.cpp | 12 |
2 files changed, 5 insertions, 9 deletions
diff --git a/llvm/utils/TableGen/CodeGenIntrinsics.h b/llvm/utils/TableGen/CodeGenIntrinsics.h index fe1fd7fdc3f..2b479537dfe 100644 --- a/llvm/utils/TableGen/CodeGenIntrinsics.h +++ b/llvm/utils/TableGen/CodeGenIntrinsics.h @@ -78,7 +78,7 @@ namespace llvm { }; /// Memory mod/ref behavior of this intrinsic, corresponding to - /// intrinsic properties (IntrReadMem, IntrReadArgMem, etc.). + /// intrinsic properties (IntrReadMem, IntrArgMemOnly, etc.). enum ModRefBehavior { NoMem = 0, ReadArgMem = MR_Ref, diff --git a/llvm/utils/TableGen/CodeGenTarget.cpp b/llvm/utils/TableGen/CodeGenTarget.cpp index d89793fd240..db98feaa247 100644 --- a/llvm/utils/TableGen/CodeGenTarget.cpp +++ b/llvm/utils/TableGen/CodeGenTarget.cpp @@ -573,16 +573,12 @@ CodeGenIntrinsic::CodeGenIntrinsic(Record *R) { if (Property->getName() == "IntrNoMem") ModRef = NoMem; - else if (Property->getName() == "IntrReadArgMem") - ModRef = ReadArgMem; else if (Property->getName() == "IntrReadMem") - ModRef = ReadMem; + ModRef = ModRefBehavior(ModRef & ~MR_Mod); else if (Property->getName() == "IntrWriteMem") - ModRef = WriteMem; - else if (Property->getName() == "IntrWriteArgMem") - ModRef = WriteArgMem; - else if (Property->getName() == "IntrReadWriteArgMem") - ModRef = ReadWriteArgMem; + ModRef = ModRefBehavior(ModRef & ~MR_Ref); + else if (Property->getName() == "IntrArgMemOnly") + ModRef = ModRefBehavior(ModRef & ~MR_Anywhere); else if (Property->getName() == "Commutative") isCommutative = true; else if (Property->getName() == "Throws") |

