mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-01 02:33:44 +00:00
Fix PR116
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10032 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
d39dbcc743
commit
faa45ce300
@ -209,6 +209,18 @@ bool ADCE::doADCE() {
|
|||||||
return MadeChanges;
|
return MadeChanges;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Scan the function marking blocks without post-dominance information as
|
||||||
|
// live. Blocks without post-dominance information occur when there is an
|
||||||
|
// infinite loop in the program. Because the infinite loop could contain a
|
||||||
|
// function which unwinds, exits or has side-effects, we don't want to delete
|
||||||
|
// the infinite loop or those blocks leading up to it.
|
||||||
|
for (Function::iterator I = Func->begin(), E = Func->end(); I != E; ++I)
|
||||||
|
if (DT[I] == 0)
|
||||||
|
for (pred_iterator PI = pred_begin(I), E = pred_end(I); PI != E; ++PI)
|
||||||
|
markInstructionLive((*PI)->getTerminator());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
DEBUG(std::cerr << "Processing work list\n");
|
DEBUG(std::cerr << "Processing work list\n");
|
||||||
|
|
||||||
// AliveBlocks - Set of basic blocks that we know have instructions that are
|
// AliveBlocks - Set of basic blocks that we know have instructions that are
|
||||||
|
Loading…
x
Reference in New Issue
Block a user