From 63307c335aa08b0d6a75f81d64d79af7e90eb78b Mon Sep 17 00:00:00 2001 From: Mon P Wang Date: Mon, 5 May 2008 19:05:59 +0000 Subject: 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 --- include/llvm/CodeGen/MachineBasicBlock.h | 5 +++++ include/llvm/CodeGen/SelectionDAGNodes.h | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+) (limited to 'include/llvm/CodeGen') 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 }; -- cgit v1.2.3