mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-05-27 08:38:48 +00:00
For PR411:
Adjust to changes in Module interface: getMainFunction() -> getFunction("main") getNamedFunction(X) -> getFunction(X) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33922 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
cdedc3b336
commit
688b0490e2
@ -54,7 +54,7 @@ ExecutionEngine::~ExecutionEngine() {
|
|||||||
/// general code.
|
/// general code.
|
||||||
Function *ExecutionEngine::FindFunctionNamed(const char *FnName) {
|
Function *ExecutionEngine::FindFunctionNamed(const char *FnName) {
|
||||||
for (unsigned i = 0, e = Modules.size(); i != e; ++i) {
|
for (unsigned i = 0, e = Modules.size(); i != e; ++i) {
|
||||||
if (Function *F = Modules[i]->getModule()->getNamedFunction(FnName))
|
if (Function *F = Modules[i]->getModule()->getFunction(FnName))
|
||||||
return F;
|
return F;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -43,7 +43,7 @@ GetAllUndefinedSymbols(Module *M, std::set<std::string> &UndefinedSymbols) {
|
|||||||
// If the program doesn't define a main, try pulling one in from a .a file.
|
// If the program doesn't define a main, try pulling one in from a .a file.
|
||||||
// This is needed for programs where the main function is defined in an
|
// This is needed for programs where the main function is defined in an
|
||||||
// archive, such f2c'd programs.
|
// archive, such f2c'd programs.
|
||||||
Function *Main = M->getMainFunction();
|
Function *Main = M->getFunction("main");
|
||||||
if (Main == 0 || Main->isDeclaration())
|
if (Main == 0 || Main->isDeclaration())
|
||||||
UndefinedSymbols.insert("main");
|
UndefinedSymbols.insert("main");
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ namespace {
|
|||||||
|
|
||||||
bool runOnModule(Module &M) {
|
bool runOnModule(Module &M) {
|
||||||
if (Named == 0) {
|
if (Named == 0) {
|
||||||
Named = M.getMainFunction();
|
Named = M.getFunction("main");
|
||||||
if (Named == 0) return false; // No function to extract
|
if (Named == 0) return false; // No function to extract
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -44,7 +44,7 @@ bool IndMemRemPass::runOnModule(Module &M) {
|
|||||||
//functions, ensuring that all malloc and free that might happen
|
//functions, ensuring that all malloc and free that might happen
|
||||||
//happen through intrinsics.
|
//happen through intrinsics.
|
||||||
bool changed = false;
|
bool changed = false;
|
||||||
if (Function* F = M.getNamedFunction("free")) {
|
if (Function* F = M.getFunction("free")) {
|
||||||
assert(F->isDeclaration() && "free not external?");
|
assert(F->isDeclaration() && "free not external?");
|
||||||
if (!F->use_empty()) {
|
if (!F->use_empty()) {
|
||||||
Function* FN = new Function(F->getFunctionType(),
|
Function* FN = new Function(F->getFunctionType(),
|
||||||
@ -59,7 +59,7 @@ bool IndMemRemPass::runOnModule(Module &M) {
|
|||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (Function* F = M.getNamedFunction("malloc")) {
|
if (Function* F = M.getFunction("malloc")) {
|
||||||
assert(F->isDeclaration() && "malloc not external?");
|
assert(F->isDeclaration() && "malloc not external?");
|
||||||
if (!F->use_empty()) {
|
if (!F->use_empty()) {
|
||||||
Function* FN = new Function(F->getFunctionType(),
|
Function* FN = new Function(F->getFunctionType(),
|
||||||
|
@ -95,7 +95,7 @@ bool InternalizePass::runOnModule(Module &M) {
|
|||||||
// internalize the module, it must be a library or something.
|
// internalize the module, it must be a library or something.
|
||||||
//
|
//
|
||||||
if (ExternalNames.empty()) {
|
if (ExternalNames.empty()) {
|
||||||
Function *MainFunc = M.getMainFunction();
|
Function *MainFunc = M.getFunction("main");
|
||||||
if (MainFunc == 0 || MainFunc->isDeclaration())
|
if (MainFunc == 0 || MainFunc->isDeclaration())
|
||||||
return false; // No main found, must be a library...
|
return false; // No main found, must be a library...
|
||||||
|
|
||||||
|
@ -127,8 +127,8 @@ bool LowerSetJmp::runOnModule(Module& M) {
|
|||||||
bool Changed = false;
|
bool Changed = false;
|
||||||
|
|
||||||
// These are what the functions are called.
|
// These are what the functions are called.
|
||||||
Function* SetJmp = M.getNamedFunction("llvm.setjmp");
|
Function* SetJmp = M.getFunction("llvm.setjmp");
|
||||||
Function* LongJmp = M.getNamedFunction("llvm.longjmp");
|
Function* LongJmp = M.getFunction("llvm.longjmp");
|
||||||
|
|
||||||
// This program doesn't have longjmp and setjmp calls.
|
// This program doesn't have longjmp and setjmp calls.
|
||||||
if ((!LongJmp || LongJmp->use_empty()) &&
|
if ((!LongJmp || LongJmp->use_empty()) &&
|
||||||
|
@ -94,11 +94,11 @@ bool StripSymbols::runOnModule(Module &M) {
|
|||||||
// Strip debug info in the module if it exists. To do this, we remove
|
// Strip debug info in the module if it exists. To do this, we remove
|
||||||
// llvm.dbg.func.start, llvm.dbg.stoppoint, and llvm.dbg.region.end calls, and
|
// llvm.dbg.func.start, llvm.dbg.stoppoint, and llvm.dbg.region.end calls, and
|
||||||
// any globals they point to if now dead.
|
// any globals they point to if now dead.
|
||||||
Function *FuncStart = M.getNamedFunction("llvm.dbg.func.start");
|
Function *FuncStart = M.getFunction("llvm.dbg.func.start");
|
||||||
Function *StopPoint = M.getNamedFunction("llvm.dbg.stoppoint");
|
Function *StopPoint = M.getFunction("llvm.dbg.stoppoint");
|
||||||
Function *RegionStart = M.getNamedFunction("llvm.dbg.region.start");
|
Function *RegionStart = M.getFunction("llvm.dbg.region.start");
|
||||||
Function *RegionEnd = M.getNamedFunction("llvm.dbg.region.end");
|
Function *RegionEnd = M.getFunction("llvm.dbg.region.end");
|
||||||
Function *Declare = M.getNamedFunction("llvm.dbg.declare");
|
Function *Declare = M.getFunction("llvm.dbg.declare");
|
||||||
if (!FuncStart && !StopPoint && !RegionStart && !RegionEnd && !Declare)
|
if (!FuncStart && !StopPoint && !RegionStart && !RegionEnd && !Declare)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@ ModulePass *llvm::createFunctionProfilerPass() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool FunctionProfiler::runOnModule(Module &M) {
|
bool FunctionProfiler::runOnModule(Module &M) {
|
||||||
Function *Main = M.getMainFunction();
|
Function *Main = M.getFunction("main");
|
||||||
if (Main == 0) {
|
if (Main == 0) {
|
||||||
cerr << "WARNING: cannot insert function profiling into a module"
|
cerr << "WARNING: cannot insert function profiling into a module"
|
||||||
<< " with no main function!\n";
|
<< " with no main function!\n";
|
||||||
@ -88,7 +88,7 @@ namespace {
|
|||||||
ModulePass *llvm::createBlockProfilerPass() { return new BlockProfiler(); }
|
ModulePass *llvm::createBlockProfilerPass() { return new BlockProfiler(); }
|
||||||
|
|
||||||
bool BlockProfiler::runOnModule(Module &M) {
|
bool BlockProfiler::runOnModule(Module &M) {
|
||||||
Function *Main = M.getMainFunction();
|
Function *Main = M.getFunction("main");
|
||||||
if (Main == 0) {
|
if (Main == 0) {
|
||||||
cerr << "WARNING: cannot insert block profiling into a module"
|
cerr << "WARNING: cannot insert block profiling into a module"
|
||||||
<< " with no main function!\n";
|
<< " with no main function!\n";
|
||||||
|
@ -40,7 +40,7 @@ namespace {
|
|||||||
ModulePass *llvm::createEdgeProfilerPass() { return new EdgeProfiler(); }
|
ModulePass *llvm::createEdgeProfilerPass() { return new EdgeProfiler(); }
|
||||||
|
|
||||||
bool EdgeProfiler::runOnModule(Module &M) {
|
bool EdgeProfiler::runOnModule(Module &M) {
|
||||||
Function *Main = M.getMainFunction();
|
Function *Main = M.getFunction("main");
|
||||||
if (Main == 0) {
|
if (Main == 0) {
|
||||||
cerr << "WARNING: cannot insert edge profiling into a module"
|
cerr << "WARNING: cannot insert edge profiling into a module"
|
||||||
<< " with no main function!\n";
|
<< " with no main function!\n";
|
||||||
|
@ -58,7 +58,7 @@ static void InsertInstrumentationCall (BasicBlock *BB,
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool TraceBasicBlocks::runOnModule(Module &M) {
|
bool TraceBasicBlocks::runOnModule(Module &M) {
|
||||||
Function *Main = M.getMainFunction();
|
Function *Main = M.getFunction("main");
|
||||||
if (Main == 0) {
|
if (Main == 0) {
|
||||||
cerr << "WARNING: cannot insert basic-block trace instrumentation"
|
cerr << "WARNING: cannot insert basic-block trace instrumentation"
|
||||||
<< " into a module with no main function!\n";
|
<< " into a module with no main function!\n";
|
||||||
|
@ -98,9 +98,9 @@ const StructType *LowerGC::getRootRecordType(unsigned NumRoots) {
|
|||||||
/// doInitialization - If this module uses the GC intrinsics, find them now. If
|
/// doInitialization - If this module uses the GC intrinsics, find them now. If
|
||||||
/// not, this pass does not do anything.
|
/// not, this pass does not do anything.
|
||||||
bool LowerGC::doInitialization(Module &M) {
|
bool LowerGC::doInitialization(Module &M) {
|
||||||
GCRootInt = M.getNamedFunction("llvm.gcroot");
|
GCRootInt = M.getFunction("llvm.gcroot");
|
||||||
GCReadInt = M.getNamedFunction("llvm.gcread");
|
GCReadInt = M.getFunction("llvm.gcread");
|
||||||
GCWriteInt = M.getNamedFunction("llvm.gcwrite");
|
GCWriteInt = M.getFunction("llvm.gcwrite");
|
||||||
if (!GCRootInt && !GCReadInt && !GCWriteInt) return false;
|
if (!GCRootInt && !GCReadInt && !GCWriteInt) return false;
|
||||||
|
|
||||||
PointerType *VoidPtr = PointerType::get(Type::Int8Ty);
|
PointerType *VoidPtr = PointerType::get(Type::Int8Ty);
|
||||||
|
@ -142,7 +142,7 @@ Constant *Module::getOrInsertFunction(const std::string &Name,
|
|||||||
ValueSymbolTable &SymTab = getValueSymbolTable();
|
ValueSymbolTable &SymTab = getValueSymbolTable();
|
||||||
|
|
||||||
// See if we have a definition for the specified function already.
|
// See if we have a definition for the specified function already.
|
||||||
Function *F = dyn_cast_or_null<Function>(SymTab.lookup(Name));
|
GlobalValue *F = dyn_cast_or_null<GlobalValue>(SymTab.lookup(Name));
|
||||||
if (F == 0) {
|
if (F == 0) {
|
||||||
// Nope, add it
|
// Nope, add it
|
||||||
Function *New = new Function(Ty, GlobalVariable::ExternalLinkage, Name);
|
Function *New = new Function(Ty, GlobalVariable::ExternalLinkage, Name);
|
||||||
@ -160,7 +160,7 @@ Constant *Module::getOrInsertFunction(const std::string &Name,
|
|||||||
|
|
||||||
// If the function exists but has the wrong type, return a bitcast to the
|
// If the function exists but has the wrong type, return a bitcast to the
|
||||||
// right type.
|
// right type.
|
||||||
if (F->getFunctionType() != Ty)
|
if (F->getType() != PointerType::get(Ty))
|
||||||
return ConstantExpr::getBitCast(F, PointerType::get(Ty));
|
return ConstantExpr::getBitCast(F, PointerType::get(Ty));
|
||||||
|
|
||||||
// Otherwise, we just found the existing function or a prototype.
|
// Otherwise, we just found the existing function or a prototype.
|
||||||
|
@ -194,7 +194,7 @@ bool ReduceCrashingFunctions::TestFuncs(std::vector<Function*> &Funcs) {
|
|||||||
|
|
||||||
//if main isn't present, claim there is no problem
|
//if main isn't present, claim there is no problem
|
||||||
if (KeepMain && find(Funcs.begin(), Funcs.end(),
|
if (KeepMain && find(Funcs.begin(), Funcs.end(),
|
||||||
BD.getProgram()->getMainFunction()) == Funcs.end())
|
BD.getProgram()->getFunction("main")) == Funcs.end())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// Clone the program to try hacking it apart...
|
// Clone the program to try hacking it apart...
|
||||||
|
@ -639,7 +639,7 @@ static void CleanupAndPrepareModules(BugDriver &BD, Module *&Test,
|
|||||||
// First, if the main function is in the Safe module, we must add a stub to
|
// First, if the main function is in the Safe module, we must add a stub to
|
||||||
// the Test module to call into it. Thus, we create a new function `main'
|
// the Test module to call into it. Thus, we create a new function `main'
|
||||||
// which just calls the old one.
|
// which just calls the old one.
|
||||||
if (Function *oldMain = Safe->getNamedFunction("main"))
|
if (Function *oldMain = Safe->getFunction("main"))
|
||||||
if (!oldMain->isDeclaration()) {
|
if (!oldMain->isDeclaration()) {
|
||||||
// Rename it
|
// Rename it
|
||||||
oldMain->setName("llvm_bugpoint_old_main");
|
oldMain->setName("llvm_bugpoint_old_main");
|
||||||
@ -685,7 +685,7 @@ static void CleanupAndPrepareModules(BugDriver &BD, Module *&Test,
|
|||||||
for (Module::iterator F = Safe->begin(), E = Safe->end(); F != E; ++F) {
|
for (Module::iterator F = Safe->begin(), E = Safe->end(); F != E; ++F) {
|
||||||
if (F->isDeclaration() && !F->use_empty() && &*F != resolverFunc &&
|
if (F->isDeclaration() && !F->use_empty() && &*F != resolverFunc &&
|
||||||
F->getIntrinsicID() == 0 /* ignore intrinsics */) {
|
F->getIntrinsicID() == 0 /* ignore intrinsics */) {
|
||||||
Function *TestFn = Test->getNamedFunction(F->getName());
|
Function *TestFn = Test->getFunction(F->getName());
|
||||||
|
|
||||||
// Don't forward functions which are external in the test module too.
|
// Don't forward functions which are external in the test module too.
|
||||||
if (TestFn && !TestFn->isDeclaration()) {
|
if (TestFn && !TestFn->isDeclaration()) {
|
||||||
|
@ -103,7 +103,7 @@ int main(int argc, char **argv, char * const *envp) {
|
|||||||
// using the contents of Args to determine argc & argv, and the contents of
|
// using the contents of Args to determine argc & argv, and the contents of
|
||||||
// EnvVars to determine envp.
|
// EnvVars to determine envp.
|
||||||
//
|
//
|
||||||
Function *Fn = MP->getModule()->getMainFunction();
|
Function *Fn = MP->getModule()->getFunction("main");
|
||||||
if (!Fn) {
|
if (!Fn) {
|
||||||
std::cerr << "'main' function not found in module.\n";
|
std::cerr << "'main' function not found in module.\n";
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -929,7 +929,7 @@ ResolveDefinitions(std::map<const Type*,ValueList> &LateResolvers,
|
|||||||
if (const FunctionType *FTy =
|
if (const FunctionType *FTy =
|
||||||
dyn_cast<FunctionType>(PTy->getElementType()))
|
dyn_cast<FunctionType>(PTy->getElementType()))
|
||||||
if (Function *OtherF =
|
if (Function *OtherF =
|
||||||
CurModule.CurrentModule->getNamedFunction(DID.getName()))
|
CurModule.CurrentModule->getFunction(DID.getName()))
|
||||||
if (FuncTysDifferOnlyBySRet(FTy,OtherF->getFunctionType())) {
|
if (FuncTysDifferOnlyBySRet(FTy,OtherF->getFunctionType())) {
|
||||||
V->replaceAllUsesWith(ConstantExpr::getBitCast(OtherF, PTy));
|
V->replaceAllUsesWith(ConstantExpr::getBitCast(OtherF, PTy));
|
||||||
fixed = true;
|
fixed = true;
|
||||||
@ -1677,10 +1677,10 @@ Module* UpgradeAssembly(const std::string &infile, std::istream& in,
|
|||||||
//Not all functions use vaarg, so make a second check for ObsoleteVarArgs
|
//Not all functions use vaarg, so make a second check for ObsoleteVarArgs
|
||||||
{
|
{
|
||||||
Function* F;
|
Function* F;
|
||||||
if ((F = Result->getNamedFunction("llvm.va_start"))
|
if ((F = Result->getFunction("llvm.va_start"))
|
||||||
&& F->getFunctionType()->getNumParams() == 0)
|
&& F->getFunctionType()->getNumParams() == 0)
|
||||||
ObsoleteVarArgs = true;
|
ObsoleteVarArgs = true;
|
||||||
if((F = Result->getNamedFunction("llvm.va_copy"))
|
if((F = Result->getFunction("llvm.va_copy"))
|
||||||
&& F->getFunctionType()->getNumParams() == 1)
|
&& F->getFunctionType()->getNumParams() == 1)
|
||||||
ObsoleteVarArgs = true;
|
ObsoleteVarArgs = true;
|
||||||
}
|
}
|
||||||
@ -1691,7 +1691,7 @@ Module* UpgradeAssembly(const std::string &infile, std::istream& in,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(ObsoleteVarArgs) {
|
if(ObsoleteVarArgs) {
|
||||||
if(Function* F = Result->getNamedFunction("llvm.va_start")) {
|
if(Function* F = Result->getFunction("llvm.va_start")) {
|
||||||
if (F->arg_size() != 0) {
|
if (F->arg_size() != 0) {
|
||||||
error("Obsolete va_start takes 0 argument");
|
error("Obsolete va_start takes 0 argument");
|
||||||
return 0;
|
return 0;
|
||||||
@ -1720,7 +1720,7 @@ Module* UpgradeAssembly(const std::string &infile, std::istream& in,
|
|||||||
Result->getFunctionList().erase(F);
|
Result->getFunctionList().erase(F);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(Function* F = Result->getNamedFunction("llvm.va_end")) {
|
if(Function* F = Result->getFunction("llvm.va_end")) {
|
||||||
if(F->arg_size() != 1) {
|
if(F->arg_size() != 1) {
|
||||||
error("Obsolete va_end takes 1 argument");
|
error("Obsolete va_end takes 1 argument");
|
||||||
return 0;
|
return 0;
|
||||||
@ -1746,7 +1746,7 @@ Module* UpgradeAssembly(const std::string &infile, std::istream& in,
|
|||||||
Result->getFunctionList().erase(F);
|
Result->getFunctionList().erase(F);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(Function* F = Result->getNamedFunction("llvm.va_copy")) {
|
if(Function* F = Result->getFunction("llvm.va_copy")) {
|
||||||
if(F->arg_size() != 1) {
|
if(F->arg_size() != 1) {
|
||||||
error("Obsolete va_copy takes 1 argument");
|
error("Obsolete va_copy takes 1 argument");
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -569,7 +569,7 @@ ResolveDefinitions(std::map<const Type*,ValueList> &LateResolvers,
|
|||||||
if (const FunctionType *FTy =
|
if (const FunctionType *FTy =
|
||||||
dyn_cast<FunctionType>(PTy->getElementType()))
|
dyn_cast<FunctionType>(PTy->getElementType()))
|
||||||
if (Function *OtherF =
|
if (Function *OtherF =
|
||||||
CurModule.CurrentModule->getNamedFunction(DID.getName()))
|
CurModule.CurrentModule->getFunction(DID.getName()))
|
||||||
if (FuncTysDifferOnlyBySRet(FTy,OtherF->getFunctionType())) {
|
if (FuncTysDifferOnlyBySRet(FTy,OtherF->getFunctionType())) {
|
||||||
V->replaceAllUsesWith(ConstantExpr::getBitCast(OtherF, PTy));
|
V->replaceAllUsesWith(ConstantExpr::getBitCast(OtherF, PTy));
|
||||||
fixed = true;
|
fixed = true;
|
||||||
@ -1317,10 +1317,10 @@ Module* UpgradeAssembly(const std::string &infile, std::istream& in,
|
|||||||
//Not all functions use vaarg, so make a second check for ObsoleteVarArgs
|
//Not all functions use vaarg, so make a second check for ObsoleteVarArgs
|
||||||
{
|
{
|
||||||
Function* F;
|
Function* F;
|
||||||
if ((F = Result->getNamedFunction("llvm.va_start"))
|
if ((F = Result->getFunction("llvm.va_start"))
|
||||||
&& F->getFunctionType()->getNumParams() == 0)
|
&& F->getFunctionType()->getNumParams() == 0)
|
||||||
ObsoleteVarArgs = true;
|
ObsoleteVarArgs = true;
|
||||||
if((F = Result->getNamedFunction("llvm.va_copy"))
|
if((F = Result->getFunction("llvm.va_copy"))
|
||||||
&& F->getFunctionType()->getNumParams() == 1)
|
&& F->getFunctionType()->getNumParams() == 1)
|
||||||
ObsoleteVarArgs = true;
|
ObsoleteVarArgs = true;
|
||||||
}
|
}
|
||||||
@ -1331,7 +1331,7 @@ Module* UpgradeAssembly(const std::string &infile, std::istream& in,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(ObsoleteVarArgs) {
|
if(ObsoleteVarArgs) {
|
||||||
if(Function* F = Result->getNamedFunction("llvm.va_start")) {
|
if(Function* F = Result->getFunction("llvm.va_start")) {
|
||||||
if (F->arg_size() != 0) {
|
if (F->arg_size() != 0) {
|
||||||
error("Obsolete va_start takes 0 argument");
|
error("Obsolete va_start takes 0 argument");
|
||||||
return 0;
|
return 0;
|
||||||
@ -1360,7 +1360,7 @@ Module* UpgradeAssembly(const std::string &infile, std::istream& in,
|
|||||||
Result->getFunctionList().erase(F);
|
Result->getFunctionList().erase(F);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(Function* F = Result->getNamedFunction("llvm.va_end")) {
|
if(Function* F = Result->getFunction("llvm.va_end")) {
|
||||||
if(F->arg_size() != 1) {
|
if(F->arg_size() != 1) {
|
||||||
error("Obsolete va_end takes 1 argument");
|
error("Obsolete va_end takes 1 argument");
|
||||||
return 0;
|
return 0;
|
||||||
@ -1386,7 +1386,7 @@ Module* UpgradeAssembly(const std::string &infile, std::istream& in,
|
|||||||
Result->getFunctionList().erase(F);
|
Result->getFunctionList().erase(F);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(Function* F = Result->getNamedFunction("llvm.va_copy")) {
|
if(Function* F = Result->getFunction("llvm.va_copy")) {
|
||||||
if(F->arg_size() != 1) {
|
if(F->arg_size() != 1) {
|
||||||
error("Obsolete va_copy takes 1 argument");
|
error("Obsolete va_copy takes 1 argument");
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -569,7 +569,7 @@ ResolveDefinitions(std::map<const Type*,ValueList> &LateResolvers,
|
|||||||
if (const FunctionType *FTy =
|
if (const FunctionType *FTy =
|
||||||
dyn_cast<FunctionType>(PTy->getElementType()))
|
dyn_cast<FunctionType>(PTy->getElementType()))
|
||||||
if (Function *OtherF =
|
if (Function *OtherF =
|
||||||
CurModule.CurrentModule->getNamedFunction(DID.getName()))
|
CurModule.CurrentModule->getFunction(DID.getName()))
|
||||||
if (FuncTysDifferOnlyBySRet(FTy,OtherF->getFunctionType())) {
|
if (FuncTysDifferOnlyBySRet(FTy,OtherF->getFunctionType())) {
|
||||||
V->replaceAllUsesWith(ConstantExpr::getBitCast(OtherF, PTy));
|
V->replaceAllUsesWith(ConstantExpr::getBitCast(OtherF, PTy));
|
||||||
fixed = true;
|
fixed = true;
|
||||||
@ -1317,10 +1317,10 @@ Module* UpgradeAssembly(const std::string &infile, std::istream& in,
|
|||||||
//Not all functions use vaarg, so make a second check for ObsoleteVarArgs
|
//Not all functions use vaarg, so make a second check for ObsoleteVarArgs
|
||||||
{
|
{
|
||||||
Function* F;
|
Function* F;
|
||||||
if ((F = Result->getNamedFunction("llvm.va_start"))
|
if ((F = Result->getFunction("llvm.va_start"))
|
||||||
&& F->getFunctionType()->getNumParams() == 0)
|
&& F->getFunctionType()->getNumParams() == 0)
|
||||||
ObsoleteVarArgs = true;
|
ObsoleteVarArgs = true;
|
||||||
if((F = Result->getNamedFunction("llvm.va_copy"))
|
if((F = Result->getFunction("llvm.va_copy"))
|
||||||
&& F->getFunctionType()->getNumParams() == 1)
|
&& F->getFunctionType()->getNumParams() == 1)
|
||||||
ObsoleteVarArgs = true;
|
ObsoleteVarArgs = true;
|
||||||
}
|
}
|
||||||
@ -1331,7 +1331,7 @@ Module* UpgradeAssembly(const std::string &infile, std::istream& in,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(ObsoleteVarArgs) {
|
if(ObsoleteVarArgs) {
|
||||||
if(Function* F = Result->getNamedFunction("llvm.va_start")) {
|
if(Function* F = Result->getFunction("llvm.va_start")) {
|
||||||
if (F->arg_size() != 0) {
|
if (F->arg_size() != 0) {
|
||||||
error("Obsolete va_start takes 0 argument");
|
error("Obsolete va_start takes 0 argument");
|
||||||
return 0;
|
return 0;
|
||||||
@ -1360,7 +1360,7 @@ Module* UpgradeAssembly(const std::string &infile, std::istream& in,
|
|||||||
Result->getFunctionList().erase(F);
|
Result->getFunctionList().erase(F);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(Function* F = Result->getNamedFunction("llvm.va_end")) {
|
if(Function* F = Result->getFunction("llvm.va_end")) {
|
||||||
if(F->arg_size() != 1) {
|
if(F->arg_size() != 1) {
|
||||||
error("Obsolete va_end takes 1 argument");
|
error("Obsolete va_end takes 1 argument");
|
||||||
return 0;
|
return 0;
|
||||||
@ -1386,7 +1386,7 @@ Module* UpgradeAssembly(const std::string &infile, std::istream& in,
|
|||||||
Result->getFunctionList().erase(F);
|
Result->getFunctionList().erase(F);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(Function* F = Result->getNamedFunction("llvm.va_copy")) {
|
if(Function* F = Result->getFunction("llvm.va_copy")) {
|
||||||
if(F->arg_size() != 1) {
|
if(F->arg_size() != 1) {
|
||||||
error("Obsolete va_copy takes 1 argument");
|
error("Obsolete va_copy takes 1 argument");
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -1544,7 +1544,7 @@ void CppWriter::printFunctionBody(const Function *F) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void CppWriter::printInline(const std::string& fname, const std::string& func) {
|
void CppWriter::printInline(const std::string& fname, const std::string& func) {
|
||||||
const Function* F = TheModule->getNamedFunction(func);
|
const Function* F = TheModule->getFunction(func);
|
||||||
if (!F) {
|
if (!F) {
|
||||||
error(std::string("Function '") + func + "' not found in input module");
|
error(std::string("Function '") + func + "' not found in input module");
|
||||||
return;
|
return;
|
||||||
@ -1719,7 +1719,7 @@ void CppWriter::printFunction(
|
|||||||
const std::string& fname, // Name of generated function
|
const std::string& fname, // Name of generated function
|
||||||
const std::string& funcName // Name of function to generate
|
const std::string& funcName // Name of function to generate
|
||||||
) {
|
) {
|
||||||
const Function* F = TheModule->getNamedFunction(funcName);
|
const Function* F = TheModule->getFunction(funcName);
|
||||||
if (!F) {
|
if (!F) {
|
||||||
error(std::string("Function '") + funcName + "' not found in input module");
|
error(std::string("Function '") + funcName + "' not found in input module");
|
||||||
return;
|
return;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user