Add MEMSET/MEMCPY/MEMMOVE operations. Fix a really bad bug in the vector
authorChris Lattner <sabre@nondot.org>
Tue, 11 Jan 2005 05:56:17 +0000 (05:56 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 11 Jan 2005 05:56:17 +0000 (05:56 +0000)
SDNode ctor.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19462 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/CodeGen/SelectionDAGNodes.h

index d79adc36ad5fa1aeb477db278176370cb59d0e0d..24d941db52d5911e2a57270bc2e3e8c20161f2a4 100644 (file)
@@ -154,6 +154,14 @@ namespace ISD {
     // call).  Arguments have already been lowered to explicit DAGs according to
     // the calling convention in effect here.
     CALL,
+
+    // MEMSET/MEMCPY/MEMMOVE - The first operand is the chain, and the rest
+    // correspond to the operands of the LLVM intrinsic functions.  The only
+    // result is a token chain.  The alignment argument is guaranteed to be a
+    // Constant node.
+    MEMSET,
+    MEMMOVE,
+    MEMCPY,
     
     // ADJCALLSTACKDOWN/ADJCALLSTACKUP - These operators mark the beginning and
     // end of a call sequence and indicate how much the stack pointer needs to
@@ -405,8 +413,8 @@ protected:
   }
   SDNode(unsigned NT, std::vector<SDOperand> &Nodes) : NodeType(NT) {
     Operands.swap(Nodes);
-    for (unsigned i = 0, e = Nodes.size(); i != e; ++i)
-      Nodes[i].Val->Uses.push_back(this);
+    for (unsigned i = 0, e = Operands.size(); i != e; ++i)
+      Operands[i].Val->Uses.push_back(this);
   }
 
   virtual ~SDNode() {