prepare for adjustment to getOrInsertFunction method
authorChris Lattner <sabre@nondot.org>
Sun, 7 Jan 2007 07:54:34 +0000 (07:54 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 7 Jan 2007 07:54:34 +0000 (07:54 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32985 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Utils/InlineFunction.cpp

index c49cc75ffbaa9dc2d19664ff60f668432d87632c..83cdfb80c12c9c1c29c4984a1883f6cdb688b84a 100644 (file)
@@ -274,19 +274,21 @@ bool llvm::InlineFunction(CallSite CS, CallGraph *CG) {
   // code with llvm.stacksave/llvm.stackrestore intrinsics.
   if (InlinedFunctionInfo.ContainsDynamicAllocas) {
     Module *M = Caller->getParent();
-    const Type *SBytePtr = PointerType::get(Type::Int8Ty);
+    const Type *BytePtr = PointerType::get(Type::Int8Ty);
     // Get the two intrinsics we care about.
-    Function *StackSave, *StackRestore;
-    StackSave    = M->getOrInsertFunction("llvm.stacksave", SBytePtr, NULL);
+    Constant *StackSave, *StackRestore;
+    StackSave    = M->getOrInsertFunction("llvm.stacksave", BytePtr, NULL);
     StackRestore = M->getOrInsertFunction("llvm.stackrestore", Type::VoidTy,
-                                          SBytePtr, NULL);
+                                          BytePtr, NULL);
 
     // If we are preserving the callgraph, add edges to the stacksave/restore
     // functions for the calls we insert.
     CallGraphNode *StackSaveCGN = 0, *StackRestoreCGN = 0, *CallerNode = 0;
     if (CG) {
-      StackSaveCGN    = CG->getOrInsertFunction(StackSave);
-      StackRestoreCGN = CG->getOrInsertFunction(StackRestore);
+      // We know that StackSave/StackRestore are Function*'s, because they are
+      // intrinsics which must have the right types.
+      StackSaveCGN    = CG->getOrInsertFunction(cast<Function>(StackSave));
+      StackRestoreCGN = CG->getOrInsertFunction(cast<Function>(StackRestore));
       CallerNode = (*CG)[Caller];
     }