Revert "[opaque pointer types] Add a FunctionCallee wrapper type, and use it."

This reverts commit f47d6b38c7a61d50db4566b02719de05492dcef1 (r352791).

Seems to run into compilation failures with GCC (but not clang, where
I tested it). Reverting while I investigate.

llvm-svn: 352800
diff --git a/llvm/tools/bugpoint/Miscompilation.cpp b/llvm/tools/bugpoint/Miscompilation.cpp
index c67d38f..2ac4fe7 100644
--- a/llvm/tools/bugpoint/Miscompilation.cpp
+++ b/llvm/tools/bugpoint/Miscompilation.cpp
@@ -826,14 +826,13 @@
 
   // Add the resolver to the Safe module.
   // Prototype: void *getPointerToNamedFunction(const char* Name)
-  FunctionCallee resolverFunc = Safe->getOrInsertFunction(
+  Constant *resolverFunc = Safe->getOrInsertFunction(
       "getPointerToNamedFunction", Type::getInt8PtrTy(Safe->getContext()),
       Type::getInt8PtrTy(Safe->getContext()));
 
   // Use the function we just added to get addresses of functions we need.
   for (Module::iterator F = Safe->begin(), E = Safe->end(); F != E; ++F) {
-    if (F->isDeclaration() && !F->use_empty() &&
-        &*F != resolverFunc.getCallee() &&
+    if (F->isDeclaration() && !F->use_empty() && &*F != resolverFunc &&
         !F->isIntrinsic() /* ignore intrinsics */) {
       Function *TestFn = Test->getFunction(F->getName());
 
diff --git a/llvm/tools/lli/lli.cpp b/llvm/tools/lli/lli.cpp
index 36d7d98..d7b9368 100644
--- a/llvm/tools/lli/lli.cpp
+++ b/llvm/tools/lli/lli.cpp
@@ -595,8 +595,8 @@
   if (!RemoteMCJIT) {
     // If the program doesn't explicitly call exit, we will need the Exit
     // function later on to make an explicit call, so get the function now.
-    FunctionCallee Exit = Mod->getOrInsertFunction(
-        "exit", Type::getVoidTy(Context), Type::getInt32Ty(Context));
+    Constant *Exit = Mod->getOrInsertFunction("exit", Type::getVoidTy(Context),
+                                                      Type::getInt32Ty(Context));
 
     // Run static constructors.
     if (!ForceInterpreter) {
@@ -620,21 +620,19 @@
 
     // If the program didn't call exit explicitly, we should call it now.
     // This ensures that any atexit handlers get called correctly.
-    if (Function *ExitF =
-            dyn_cast<Function>(Exit.getCallee()->stripPointerCasts())) {
-      if (ExitF->getFunctionType() == Exit.getFunctionType()) {
-        std::vector<GenericValue> Args;
-        GenericValue ResultGV;
-        ResultGV.IntVal = APInt(32, Result);
-        Args.push_back(ResultGV);
-        EE->runFunction(ExitF, Args);
-        WithColor::error(errs(), argv[0])
-            << "exit(" << Result << ") returned!\n";
-        abort();
-      }
+    if (Function *ExitF = dyn_cast<Function>(Exit)) {
+      std::vector<GenericValue> Args;
+      GenericValue ResultGV;
+      ResultGV.IntVal = APInt(32, Result);
+      Args.push_back(ResultGV);
+      EE->runFunction(ExitF, Args);
+      WithColor::error(errs(), argv[0]) << "exit(" << Result << ") returned!\n";
+      abort();
+    } else {
+      WithColor::error(errs(), argv[0])
+          << "exit defined with wrong prototype!\n";
+      abort();
     }
-    WithColor::error(errs(), argv[0]) << "exit defined with wrong prototype!\n";
-    abort();
   } else {
     // else == "if (RemoteMCJIT)"