Reverting dtor devirtualization patch.
_sabre_: it has a major problem: by the time ~Value is run, all of the "parts" of the derived classes have been destroyed
_sabre_: the vtable lives to fight another day

llvm-svn: 44760
diff --git a/llvm/lib/VMCore/Function.cpp b/llvm/lib/VMCore/Function.cpp
index b1405e5..04db3aa 100644
--- a/llvm/lib/VMCore/Function.cpp
+++ b/llvm/lib/VMCore/Function.cpp
@@ -287,17 +287,16 @@
     ParentModule->getFunctionList().push_back(this);
 }
 
-void Function::destroyThis(Function*v) {
-  v->dropAllReferences();    // After this it is safe to delete instructions.
+Function::~Function() {
+  dropAllReferences();    // After this it is safe to delete instructions.
 
   // Delete all of the method arguments and unlink from symbol table...
-  v->ArgumentList.clear();
-  delete v->SymTab;
+  ArgumentList.clear();
+  delete SymTab;
 
   // Drop our reference to the parameter attributes, if any.
-  if (v->ParamAttrs)
-    v->ParamAttrs->dropRef();
-  GlobalValue::destroyThis(v);
+  if (ParamAttrs)
+    ParamAttrs->dropRef();
 }
 
 void Function::BuildLazyArguments() const {