summaryrefslogtreecommitdiffstats
path: root/llvm/lib/IR/Instructions.cpp
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2018-10-02 23:44:11 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2018-10-02 23:44:11 +0000
commitb02ba99e91ed89124401d2b9113a1cfa54fa76d9 (patch)
tree626ac2ad26ec0acc214de40eecf31f64e05b284f /llvm/lib/IR/Instructions.cpp
parentabcacf9753e3ae0bd5aa6a7fb476ef1f3328fe50 (diff)
downloadbcm5719-llvm-b02ba99e91ed89124401d2b9113a1cfa54fa76d9.tar.gz
bcm5719-llvm-b02ba99e91ed89124401d2b9113a1cfa54fa76d9.zip
IR: Move AtomicRMW string names into class
This will be used to improve error messages in a future commit. llvm-svn: 343647
Diffstat (limited to 'llvm/lib/IR/Instructions.cpp')
-rw-r--r--llvm/lib/IR/Instructions.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/llvm/lib/IR/Instructions.cpp b/llvm/lib/IR/Instructions.cpp
index 8ade6f508a3..126a96635ee 100644
--- a/llvm/lib/IR/Instructions.cpp
+++ b/llvm/lib/IR/Instructions.cpp
@@ -1336,6 +1336,37 @@ AtomicRMWInst::AtomicRMWInst(BinOp Operation, Value *Ptr, Value *Val,
Init(Operation, Ptr, Val, Ordering, SSID);
}
+StringRef AtomicRMWInst::getOperationName(BinOp Op) {
+ switch (Op) {
+ case AtomicRMWInst::Xchg:
+ return "xchg";
+ case AtomicRMWInst::Add:
+ return "add";
+ case AtomicRMWInst::Sub:
+ return "sub";
+ case AtomicRMWInst::And:
+ return "and";
+ case AtomicRMWInst::Nand:
+ return "nand";
+ case AtomicRMWInst::Or:
+ return "or";
+ case AtomicRMWInst::Xor:
+ return "xor";
+ case AtomicRMWInst::Max:
+ return "max";
+ case AtomicRMWInst::Min:
+ return "min";
+ case AtomicRMWInst::UMax:
+ return "umax";
+ case AtomicRMWInst::UMin:
+ return "umin";
+ case AtomicRMWInst::BAD_BINOP:
+ return "<invalid operation>";
+ }
+
+ llvm_unreachable("invalid atomicrmw operation");
+}
+
//===----------------------------------------------------------------------===//
// FenceInst Implementation
//===----------------------------------------------------------------------===//
OpenPOWER on IntegriCloud