summaryrefslogtreecommitdiffstats
path: root/llvm/utils/TableGen
diff options
context:
space:
mode:
authorNicolai Haehnle <nhaehnle@gmail.com>2016-04-21 17:48:02 +0000
committerNicolai Haehnle <nhaehnle@gmail.com>2016-04-21 17:48:02 +0000
commit97788020c59f9c2c8a9ac99d3fc87f5f5a7cda80 (patch)
treea1825ff2562f5d788cb3a30e08c656dcece520cf /llvm/utils/TableGen
parent5abcb3cc5be4d3618d3156a662453b27fd590b2b (diff)
downloadbcm5719-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.h2
-rw-r--r--llvm/utils/TableGen/CodeGenTarget.cpp12
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")
OpenPOWER on IntegriCloud