TableGen: allow use of uint64_t for available features mask.
[oota-llvm.git] / lib / IR / Use.cpp
index 5f01e238e04f711e74ac6db6cf9a275dbed5ef21..047861c2586fa178656158d643a5145a55b51ce2 100644 (file)
@@ -8,6 +8,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "llvm/IR/Use.h"
+#include "llvm/IR/User.h"
 #include "llvm/IR/Value.h"
 #include <new>
 
@@ -26,14 +27,14 @@ void Use::swap(Use &RHS) {
     Val = RHS.Val;
     Val->addUse(*this);
   } else {
-    Val = 0;
+    Val = nullptr;
   }
 
   if (OldVal) {
     RHS.Val = OldVal;
     RHS.Val->addUse(RHS);
   } else {
-    RHS.Val = 0;
+    RHS.Val = nullptr;
   }
 }
 
@@ -44,7 +45,11 @@ User *Use::getUser() const {
                        : reinterpret_cast<User *>(const_cast<Use *>(End));
 }
 
-// Sets up the waymarking algoritm's tags for a series of Uses. See the
+unsigned Use::getOperandNo() const {
+  return this - getUser()->op_begin();
+}
+
+// Sets up the waymarking algorithm's tags for a series of Uses. See the
 // algorithm details here:
 //
 //   http://www.llvm.org/docs/ProgrammersManual.html#UserLayout