diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2018-10-02 23:44:11 +0000 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2018-10-02 23:44:11 +0000 |
commit | b02ba99e91ed89124401d2b9113a1cfa54fa76d9 (patch) | |
tree | 626ac2ad26ec0acc214de40eecf31f64e05b284f /llvm/lib/IR/Instructions.cpp | |
parent | abcacf9753e3ae0bd5aa6a7fb476ef1f3328fe50 (diff) | |
download | bcm5719-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.cpp | 31 |
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 //===----------------------------------------------------------------------===// |