diff options
author | Mon P Wang <wangmp@apple.com> | 2008-05-05 19:05:59 +0000 |
---|---|---|
committer | Mon P Wang <wangmp@apple.com> | 2008-05-05 19:05:59 +0000 |
commit | 63307c335aa08b0d6a75f81d64d79af7e90eb78b (patch) | |
tree | da7531194465dc141c0d26ff68d1989c462b2c89 /include/llvm/CodeGen | |
parent | 94bbdc8c254e259eff22eb5d6a1012fc1438fb45 (diff) |
Added addition atomic instrinsics and, or, xor, min, and max.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50663 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen')
-rw-r--r-- | include/llvm/CodeGen/MachineBasicBlock.h | 5 | ||||
-rw-r--r-- | include/llvm/CodeGen/SelectionDAGNodes.h | 18 |
2 files changed, 23 insertions, 0 deletions
diff --git a/include/llvm/CodeGen/MachineBasicBlock.h b/include/llvm/CodeGen/MachineBasicBlock.h index 0b3173c5b1..6fbe17005c 100644 --- a/include/llvm/CodeGen/MachineBasicBlock.h +++ b/include/llvm/CodeGen/MachineBasicBlock.h @@ -236,6 +236,11 @@ public: /// succ_iterator removeSuccessor(succ_iterator I); + /// transferSuccessors - Transfers all the successors from MBB to this + /// machine basic block (i.e., copies all the successors fromMBB and + /// remove all the successors fromBB). + void transferSuccessors(MachineBasicBlock *fromMBB); + /// isSuccessor - Return true if the specified MBB is a successor of this /// block. bool isSuccessor(MachineBasicBlock *MBB) const; diff --git a/include/llvm/CodeGen/SelectionDAGNodes.h b/include/llvm/CodeGen/SelectionDAGNodes.h index c9872cf19f..a02f7b96f0 100644 --- a/include/llvm/CodeGen/SelectionDAGNodes.h +++ b/include/llvm/CodeGen/SelectionDAGNodes.h @@ -594,6 +594,24 @@ namespace ISD { // the return is always the original value in *ptr ATOMIC_SWAP, + // Val, OUTCHAIN = ATOMIC_LSS(INCHAIN, ptr, amt) + // this corresponds to the atomic.lss intrinsic. + // *ptr - amt is stored to *ptr atomically. + // the return is always the original value in *ptr + ATOMIC_LSS, + + // Val, OUTCHAIN = ATOMIC_L[OpName]S(INCHAIN, ptr, amt) + // this corresponds to the atomic.[OpName] intrinsic. + // op(*ptr, amt) is stored to *ptr atomically. + // the return is always the original value in *ptr + ATOMIC_LOAD_AND, + ATOMIC_LOAD_OR, + ATOMIC_LOAD_XOR, + ATOMIC_LOAD_MIN, + ATOMIC_LOAD_MAX, + ATOMIC_LOAD_UMIN, + ATOMIC_LOAD_UMAX, + // BUILTIN_OP_END - This must be the last enum value in this list. BUILTIN_OP_END }; |