Tblgen doesn't like multiple SDNode<> definitions that map to the same
authorChris Lattner <sabre@nondot.org>
Tue, 28 Mar 2006 00:39:06 +0000 (00:39 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 28 Mar 2006 00:39:06 +0000 (00:39 +0000)
enum value.  Split them into separate enums.

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

include/llvm/CodeGen/SelectionDAGNodes.h

index ceb4ff752a6cd66999ba3394c9667bdf83d24758..8e81b9f7c49f5ed9b765835f786ae80c38ac38f2 100644 (file)
@@ -80,14 +80,28 @@ namespace ISD {
     TargetConstantPool,
     TargetExternalSymbol,
     
-    /// RESULT{,OUTCHAIN} = INTRINSIC({INCHAIN,} INTRINSICID, arg1, arg2, ...)
-    /// This node represents a target intrinsic function.  If the intrinsic
-    /// has side effects, the first operand is a chain pointer and the result
-    /// includes an output chain.  After this input is the ID number of the 
-    /// intrinsic, from the llvm::intrinsic namespace.  The operands to the 
-    /// intrinsic follow.
-    INTRINSIC,
-
+    /// RESULT = INTRINSIC_WO_CHAIN(INTRINSICID, arg1, arg2, ...)
+    /// This node represents a target intrinsic function with no side effects.
+    /// The first operand is the ID number of the intrinsic from the
+    /// llvm::Intrinsic namespace.  The operands to the intrinsic follow.  The
+    /// node has returns the result of the intrinsic.
+    INTRINSIC_WO_CHAIN,
+    
+    /// RESULT,OUTCHAIN = INTRINSIC_W_CHAIN(INCHAIN, INTRINSICID, arg1, ...)
+    /// This node represents a target intrinsic function with side effects that
+    /// returns a result.  The first operand is a chain pointer.  The second is
+    /// the ID number of the intrinsic from the llvm::Intrinsic namespace.  The
+    /// operands to the intrinsic follow.  The node has two results, the result
+    /// of the intrinsic and an output chain.
+    INTRINSIC_W_CHAIN,
+
+    /// OUTCHAIN = INTRINSIC_VOID(INCHAIN, INTRINSICID, arg1, arg2, ...)
+    /// This node represents a target intrinsic function with side effects that
+    /// does not return a result.  The first operand is a chain pointer.  The
+    /// second is the ID number of the intrinsic from the llvm::Intrinsic
+    /// namespace.  The operands to the intrinsic follow.
+    INTRINSIC_VOID,
+    
     // CopyToReg - This node has three operands: a chain, a register number to
     // set to this value, and a value.  
     CopyToReg,