Simplify code a bit by using Module::getOrInsertFunction
authorChris Lattner <sabre@nondot.org>
Fri, 29 Mar 2002 03:43:24 +0000 (03:43 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 29 Mar 2002 03:43:24 +0000 (03:43 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2032 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Instrumentation/TraceValues.cpp

index 9bbf7e580eac39e8bb046477768d52c3b9a96aaa..e064caa8176f6164488567a3ec8b32db8814bad0 100644 (file)
@@ -14,7 +14,6 @@
 #include "llvm/iOther.h"
 #include "llvm/Function.h"
 #include "llvm/Module.h"
-#include "llvm/SymbolTable.h"
 #include "llvm/Pass.h"
 #include "llvm/Assembly/Writer.h"
 #include "Support/StringExtras.h"
@@ -67,20 +66,12 @@ Pass *createTraceValuesPassForBasicBlocks() {  // Trace BB's and methods
 // Add a prototype for printf if it is not already in the program.
 //
 bool InsertTraceCode::doInitialization(Module *M) {
-  SymbolTable *ST = M->getSymbolTable();
   const Type *SBP = PointerType::get(Type::SByteTy);
   const MethodType *MTy =
     MethodType::get(Type::IntTy, vector<const Type*>(1, SBP), true);
 
-  if (Value *Func = ST->lookup(PointerType::get(MTy), "printf")) {
-    PrintfFunc = cast<Function>(Func);
-    return false;
-  }
-
-  // Create a new method and add it to the module
-  PrintfFunc = new Function(MTy, false, "printf");
-  M->getFunctionList().push_back(PrintfFunc);
-  return true;
+  PrintfFunc = M->getOrInsertFunction("printf", MTy);
+  return false;
 }