Eliminate x86.sse2.punpckh.qdq and x86.sse2.punpckl.qdq.
[oota-llvm.git] / include / llvm / User.h
index 44beac2ff89e69820f07b851830b0266ce2fa94f..23967c7420b81d09dc7f87ef6311b2187cccb631 100644 (file)
@@ -228,8 +228,8 @@ protected:
   unsigned NumOperands;
 
   void *operator new(size_t s, unsigned Us);
-  User(const Type *Ty, unsigned vty, Use *OpList, unsigned NumOps)
-    : Value(Ty, vty), OperandList(OpList), NumOperands(NumOps) {}
+  User(const Type *ty, unsigned vty, Use *OpList, unsigned NumOps)
+    : Value(ty, vty), OperandList(OpList), NumOperands(NumOps) {}
   Use *allocHungoffUses(unsigned) const;
   void dropHungoffUses(Use *U) {
     if (OperandList == U) {
@@ -242,7 +242,12 @@ public:
   ~User() {
     Use::zap(OperandList, OperandList + NumOperands);
   }
+  /// operator delete - free memory allocated for User and Use objects
   void operator delete(void *Usr);
+  /// placement delete - required by std, but never called.
+  void operator delete(void*, unsigned) {
+    assert(0 && "Constructor throws?");
+  }
   template <unsigned Idx> Use &Op() {
     return OperandTraits<User>::op_begin(this)[Idx];
   }