Add a bunch more X86 AVX2 instructions and their corresponding intrinsics.
[oota-llvm.git] / include / llvm / Support / DebugLoc.h
index 764591cfeded5b722d75d6ac9ec08a4a3a5e0a13..2ee9f876c366d81973dcf8c5fb869eafbcdde069 100644 (file)
@@ -27,11 +27,19 @@ namespace llvm {
   class DebugLoc {
     friend struct DenseMapInfo<DebugLoc>;
 
+    /// getEmptyKey() - A private constructor that returns an unknown that is
+    /// not equal to the tombstone key or DebugLoc().
+    static DebugLoc getEmptyKey() {
+      DebugLoc DL;
+      DL.LineCol = 1;
+      return DL;
+    }
+
     /// getTombstoneKey() - A private constructor that returns an unknown that
-    /// is distinguishable from the usual one.
+    /// is not equal to the empty key or DebugLoc().
     static DebugLoc getTombstoneKey() {
       DebugLoc DL;
-      DL.LineCol = -1;
+      DL.LineCol = 2;
       return DL;
     }
 
@@ -53,7 +61,10 @@ namespace llvm {
     
     /// getFromDILocation - Translate the DILocation quad into a DebugLoc.
     static DebugLoc getFromDILocation(MDNode *N);
-    
+
+    /// getFromDILexicalBlock - Translate the DILexicalBlock into a DebugLoc.
+    static DebugLoc getFromDILexicalBlock(MDNode *N);
+
     /// isUnknown - Return true if this is an unknown location.
     bool isUnknown() const { return ScopeIdx == 0; }
     
@@ -86,6 +97,8 @@ namespace llvm {
       return LineCol == DL.LineCol && ScopeIdx == DL.ScopeIdx;
     }
     bool operator!=(const DebugLoc &DL) const { return !(*this == DL); }
+
+    void dump(const LLVMContext &Ctx) const;
   };
 
   template <>