don't mark the arguments of prototype overdefined, they will never be queried.
llvm-svn: 85793
This commit is contained in:
parent
5503328332
commit
47837c5182
|
@ -1646,9 +1646,11 @@ bool IPSCCP::runOnModule(Module &M) {
|
|||
// Loop over all functions, marking arguments to those with their addresses
|
||||
// taken or that are external as overdefined.
|
||||
//
|
||||
for (Module::iterator F = M.begin(), E = M.end(); F != E; ++F)
|
||||
for (Module::iterator F = M.begin(), E = M.end(); F != E; ++F) {
|
||||
if (F->isDeclaration())
|
||||
continue;
|
||||
|
||||
if (!F->hasLocalLinkage() || AddressIsTaken(F)) {
|
||||
if (!F->isDeclaration())
|
||||
Solver.MarkBlockExecutable(F->begin());
|
||||
for (Function::arg_iterator AI = F->arg_begin(), E = F->arg_end();
|
||||
AI != E; ++AI)
|
||||
|
@ -1656,6 +1658,7 @@ bool IPSCCP::runOnModule(Module &M) {
|
|||
} else {
|
||||
Solver.AddTrackedFunction(F);
|
||||
}
|
||||
}
|
||||
|
||||
// Loop over global variables. We inform the solver about any internal global
|
||||
// variables that do not have their 'addresses taken'. If they don't have
|
||||
|
|
Loading…
Reference in New Issue