mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-19 18:24:00 +00:00
Fix bug: LICM/2003-02-27-PreheaderExitNodeUpdate.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5667 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -28,6 +28,7 @@
|
||||
#include "llvm/Support/CFG.h"
|
||||
#include "Support/SetOperations.h"
|
||||
#include "Support/Statistic.h"
|
||||
#include "Support/DepthFirstIterator.h"
|
||||
|
||||
namespace {
|
||||
Statistic<> NumInserted("preheaders", "Number of pre-header nodes inserted");
|
||||
@ -303,7 +304,10 @@ void Preheaders::RewriteLoopExitBlock(Loop *L, BasicBlock *Exit) {
|
||||
// loop of L.
|
||||
if (Loop *Parent = L->getParentLoop())
|
||||
Parent->addBasicBlockToLoop(NewBB, getAnalysis<LoopInfo>());
|
||||
L->changeExitBlock(Exit, NewBB); // Update exit block information
|
||||
|
||||
// Replace any instances of Exit with NewBB in this and any nested loops...
|
||||
for (df_iterator<Loop*> I = df_begin(L), E = df_end(L); I != E; ++I)
|
||||
I->changeExitBlock(Exit, NewBB); // Update exit block information
|
||||
|
||||
// Update dominator information... The blocks that dominate NewBB are the
|
||||
// intersection of the dominators of predecessors, plus the block itself.
|
||||
|
Reference in New Issue
Block a user