Rather than just infinite looping, or abort compilation on would-be iloops (bug 803470, r=dvander)

This commit is contained in:
Marty Rosenberg 2012-11-16 09:12:49 -05:00
Родитель 257d6fbf68
Коммит f4938f9319
1 изменённых файлов: 4 добавлений и 0 удалений

Просмотреть файл

@ -495,7 +495,9 @@ PopFromWorklist(MDefinitionVector &worklist)
bool
RangeAnalysis::analyze()
{
int numBlocks = 0;
for (PostorderIterator i(graph_.poBegin()); i != graph_.poEnd(); i++) {
numBlocks++;
MBasicBlock *curBlock = *i;
if (!curBlock->isLoopHeader())
continue;
@ -531,6 +533,8 @@ RangeAnalysis::analyze()
}
}
iters++;
if (iters >= numBlocks * 100)
return false;
}
// Cleanup (in case we stopped due to MAX_ITERS)
for(size_t i = 0; i < worklist.length(); i++)