[SCCP] Use range-based for loops. NFC.

llvm-svn: 269578
This commit is contained in:
Davide Italiano 2016-05-14 20:59:09 +00:00
parent c048b6c4cd
commit e7c56c5c4f
1 changed files with 10 additions and 10 deletions

View File

@ -1702,32 +1702,32 @@ static bool runIPSCCP(Module &M, const DataLayout &DL,
// 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) {
if (F->isDeclaration())
for (Function &F : M) {
if (F.isDeclaration())
continue;
// If this is an exact definition of this function, then we can propagate
// information about its result into callsites of it.
if (F->hasExactDefinition())
Solver.AddTrackedFunction(&*F);
if (F.hasExactDefinition())
Solver.AddTrackedFunction(&F);
// If this function only has direct calls that we can see, we can track its
// arguments and return value aggressively, and can assume it is not called
// unless we see evidence to the contrary.
if (F->hasLocalLinkage()) {
if (AddressIsTaken(&*F))
AddressTakenFunctions.insert(&*F);
if (F.hasLocalLinkage()) {
if (AddressIsTaken(&F))
AddressTakenFunctions.insert(&F);
else {
Solver.AddArgumentTrackedFunction(&*F);
Solver.AddArgumentTrackedFunction(&F);
continue;
}
}
// Assume the function is called.
Solver.MarkBlockExecutable(&F->front());
Solver.MarkBlockExecutable(&F.front());
// Assume nothing about the incoming arguments.
for (Argument &AI : F->args())
for (Argument &AI : F.args())
Solver.markAnythingOverdefined(&AI);
}