Improve support for type-generic vector intrinsics by teaching TableGen how
[oota-llvm.git] / include / llvm / InlineAsm.h
index bb046c2a3cb5327389e55c91e281da15a234e968..879b2e847f9a4845147c59814f6ee98a5bcb19fb 100644 (file)
@@ -21,7 +21,6 @@
 
 namespace llvm {
 
-struct AssemblyAnnotationWriter;
 class PointerType;
 class FunctionType;
 class Module;
@@ -58,10 +57,6 @@ public:
   const std::string &getAsmString() const { return AsmString; }
   const std::string &getConstraintString() const { return Constraints; }
 
-  virtual void print(std::ostream &O) const { print(O, 0); }
-  void print(std::ostream *O) const { if (O) print(*O); }
-  void print(std::ostream &OS, AssemblyAnnotationWriter *AAW) const;
-
   /// Verify - This static method can be used by the parser to check to see if
   /// the specified constraint string is legal for the type.  This returns true
   /// if legal, false if not.
@@ -84,9 +79,15 @@ public:
     /// read.  This is only ever set for an output operand.
     bool isEarlyClobber; 
     
-    /// hasMatchingInput - This is set to true for an output constraint iff
-    /// there is an input constraint that is required to match it (e.g. "0").
-    bool hasMatchingInput;
+    /// MatchingInput - If this is not -1, this is an output constraint where an
+    /// input constraint is required to match it (e.g. "0").  The value is the
+    /// constraint number that matches this one (for example, if this is
+    /// constraint #0 and constraint #4 has the value "0", this will be 4).
+    signed char MatchingInput;
+    
+    /// hasMatchingInput - Return true if this is an output constraint that has
+    /// a matching input constraint.
+    bool hasMatchingInput() const { return MatchingInput != -1; }
     
     /// isCommutative - This is set to true for a constraint that is commutative
     /// with the next operand.