mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-19 20:34:38 +00:00
whitespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136843 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
79513ed859
commit
882bcc662d
@ -55,12 +55,12 @@ bool Loop::isLoopInvariant(Value *V) const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// hasLoopInvariantOperands - Return true if all the operands of the
|
/// hasLoopInvariantOperands - Return true if all the operands of the
|
||||||
/// specified instruction are loop invariant.
|
/// specified instruction are loop invariant.
|
||||||
bool Loop::hasLoopInvariantOperands(Instruction *I) const {
|
bool Loop::hasLoopInvariantOperands(Instruction *I) const {
|
||||||
for (unsigned i = 0, e = I->getNumOperands(); i != e; ++i)
|
for (unsigned i = 0, e = I->getNumOperands(); i != e; ++i)
|
||||||
if (!isLoopInvariant(I->getOperand(i)))
|
if (!isLoopInvariant(I->getOperand(i)))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -110,7 +110,7 @@ bool Loop::makeLoopInvariant(Instruction *I, bool &Changed,
|
|||||||
for (unsigned i = 0, e = I->getNumOperands(); i != e; ++i)
|
for (unsigned i = 0, e = I->getNumOperands(); i != e; ++i)
|
||||||
if (!makeLoopInvariant(I->getOperand(i), Changed, InsertPt))
|
if (!makeLoopInvariant(I->getOperand(i), Changed, InsertPt))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// Hoist.
|
// Hoist.
|
||||||
I->moveBefore(InsertPt);
|
I->moveBefore(InsertPt);
|
||||||
Changed = true;
|
Changed = true;
|
||||||
|
@ -59,9 +59,9 @@ char PrintLoopPass::ID = 0;
|
|||||||
static DebugInfoProbeInfo *TheDebugProbe;
|
static DebugInfoProbeInfo *TheDebugProbe;
|
||||||
static void createDebugInfoProbe() {
|
static void createDebugInfoProbe() {
|
||||||
if (TheDebugProbe) return;
|
if (TheDebugProbe) return;
|
||||||
|
|
||||||
// Constructed the first time this is called. This guarantees that the
|
// Constructed the first time this is called. This guarantees that the
|
||||||
// object will be constructed, if -enable-debug-info-probe is set,
|
// object will be constructed, if -enable-debug-info-probe is set,
|
||||||
// before static globals, thus it will be destroyed before them.
|
// before static globals, thus it will be destroyed before them.
|
||||||
static ManagedStatic<DebugInfoProbeInfo> DIP;
|
static ManagedStatic<DebugInfoProbeInfo> DIP;
|
||||||
TheDebugProbe = &*DIP;
|
TheDebugProbe = &*DIP;
|
||||||
@ -73,25 +73,25 @@ static void createDebugInfoProbe() {
|
|||||||
|
|
||||||
char LPPassManager::ID = 0;
|
char LPPassManager::ID = 0;
|
||||||
|
|
||||||
LPPassManager::LPPassManager(int Depth)
|
LPPassManager::LPPassManager(int Depth)
|
||||||
: FunctionPass(ID), PMDataManager(Depth) {
|
: FunctionPass(ID), PMDataManager(Depth) {
|
||||||
skipThisLoop = false;
|
skipThisLoop = false;
|
||||||
redoThisLoop = false;
|
redoThisLoop = false;
|
||||||
LI = NULL;
|
LI = NULL;
|
||||||
CurrentLoop = NULL;
|
CurrentLoop = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Delete loop from the loop queue and loop hierarchy (LoopInfo).
|
/// Delete loop from the loop queue and loop hierarchy (LoopInfo).
|
||||||
void LPPassManager::deleteLoopFromQueue(Loop *L) {
|
void LPPassManager::deleteLoopFromQueue(Loop *L) {
|
||||||
|
|
||||||
if (Loop *ParentLoop = L->getParentLoop()) { // Not a top-level loop.
|
if (Loop *ParentLoop = L->getParentLoop()) { // Not a top-level loop.
|
||||||
// Reparent all of the blocks in this loop. Since BBLoop had a parent,
|
// Reparent all of the blocks in this loop. Since BBLoop had a parent,
|
||||||
// they are now all in it.
|
// they are now all in it.
|
||||||
for (Loop::block_iterator I = L->block_begin(), E = L->block_end();
|
for (Loop::block_iterator I = L->block_begin(), E = L->block_end();
|
||||||
I != E; ++I)
|
I != E; ++I)
|
||||||
if (LI->getLoopFor(*I) == L) // Don't change blocks in subloops.
|
if (LI->getLoopFor(*I) == L) // Don't change blocks in subloops.
|
||||||
LI->changeLoopFor(*I, ParentLoop);
|
LI->changeLoopFor(*I, ParentLoop);
|
||||||
|
|
||||||
// Remove the loop from its parent loop.
|
// Remove the loop from its parent loop.
|
||||||
for (Loop::iterator I = ParentLoop->begin(), E = ParentLoop->end();;
|
for (Loop::iterator I = ParentLoop->begin(), E = ParentLoop->end();;
|
||||||
++I) {
|
++I) {
|
||||||
@ -101,14 +101,14 @@ void LPPassManager::deleteLoopFromQueue(Loop *L) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Move all subloops into the parent loop.
|
// Move all subloops into the parent loop.
|
||||||
while (!L->empty())
|
while (!L->empty())
|
||||||
ParentLoop->addChildLoop(L->removeChildLoop(L->end()-1));
|
ParentLoop->addChildLoop(L->removeChildLoop(L->end()-1));
|
||||||
} else {
|
} else {
|
||||||
// Reparent all of the blocks in this loop. Since BBLoop had no parent,
|
// Reparent all of the blocks in this loop. Since BBLoop had no parent,
|
||||||
// they no longer in a loop at all.
|
// they no longer in a loop at all.
|
||||||
|
|
||||||
for (unsigned i = 0; i != L->getBlocks().size(); ++i) {
|
for (unsigned i = 0; i != L->getBlocks().size(); ++i) {
|
||||||
// Don't change blocks in subloops.
|
// Don't change blocks in subloops.
|
||||||
if (LI->getLoopFor(L->getBlocks()[i]) == L) {
|
if (LI->getLoopFor(L->getBlocks()[i]) == L) {
|
||||||
@ -166,10 +166,10 @@ void LPPassManager::insertLoop(Loop *L, Loop *ParentLoop) {
|
|||||||
|
|
||||||
void LPPassManager::insertLoopIntoQueue(Loop *L) {
|
void LPPassManager::insertLoopIntoQueue(Loop *L) {
|
||||||
// Insert L into loop queue
|
// Insert L into loop queue
|
||||||
if (L == CurrentLoop)
|
if (L == CurrentLoop)
|
||||||
redoLoop(L);
|
redoLoop(L);
|
||||||
else if (!L->getParentLoop())
|
else if (!L->getParentLoop())
|
||||||
// This is top level loop.
|
// This is top level loop.
|
||||||
LQ.push_front(L);
|
LQ.push_front(L);
|
||||||
else {
|
else {
|
||||||
// Insert L after the parent loop.
|
// Insert L after the parent loop.
|
||||||
@ -195,9 +195,9 @@ void LPPassManager::redoLoop(Loop *L) {
|
|||||||
|
|
||||||
/// cloneBasicBlockSimpleAnalysis - Invoke cloneBasicBlockAnalysis hook for
|
/// cloneBasicBlockSimpleAnalysis - Invoke cloneBasicBlockAnalysis hook for
|
||||||
/// all loop passes.
|
/// all loop passes.
|
||||||
void LPPassManager::cloneBasicBlockSimpleAnalysis(BasicBlock *From,
|
void LPPassManager::cloneBasicBlockSimpleAnalysis(BasicBlock *From,
|
||||||
BasicBlock *To, Loop *L) {
|
BasicBlock *To, Loop *L) {
|
||||||
for (unsigned Index = 0; Index < getNumContainedPasses(); ++Index) {
|
for (unsigned Index = 0; Index < getNumContainedPasses(); ++Index) {
|
||||||
LoopPass *LP = getContainedPass(Index);
|
LoopPass *LP = getContainedPass(Index);
|
||||||
LP->cloneBasicBlockAnalysis(From, To, L);
|
LP->cloneBasicBlockAnalysis(From, To, L);
|
||||||
}
|
}
|
||||||
@ -206,13 +206,13 @@ void LPPassManager::cloneBasicBlockSimpleAnalysis(BasicBlock *From,
|
|||||||
/// deleteSimpleAnalysisValue - Invoke deleteAnalysisValue hook for all passes.
|
/// deleteSimpleAnalysisValue - Invoke deleteAnalysisValue hook for all passes.
|
||||||
void LPPassManager::deleteSimpleAnalysisValue(Value *V, Loop *L) {
|
void LPPassManager::deleteSimpleAnalysisValue(Value *V, Loop *L) {
|
||||||
if (BasicBlock *BB = dyn_cast<BasicBlock>(V)) {
|
if (BasicBlock *BB = dyn_cast<BasicBlock>(V)) {
|
||||||
for (BasicBlock::iterator BI = BB->begin(), BE = BB->end(); BI != BE;
|
for (BasicBlock::iterator BI = BB->begin(), BE = BB->end(); BI != BE;
|
||||||
++BI) {
|
++BI) {
|
||||||
Instruction &I = *BI;
|
Instruction &I = *BI;
|
||||||
deleteSimpleAnalysisValue(&I, L);
|
deleteSimpleAnalysisValue(&I, L);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (unsigned Index = 0; Index < getNumContainedPasses(); ++Index) {
|
for (unsigned Index = 0; Index < getNumContainedPasses(); ++Index) {
|
||||||
LoopPass *LP = getContainedPass(Index);
|
LoopPass *LP = getContainedPass(Index);
|
||||||
LP->deleteAnalysisValue(V, L);
|
LP->deleteAnalysisValue(V, L);
|
||||||
}
|
}
|
||||||
@ -228,7 +228,7 @@ static void addLoopIntoQueue(Loop *L, std::deque<Loop *> &LQ) {
|
|||||||
|
|
||||||
/// Pass Manager itself does not invalidate any analysis info.
|
/// Pass Manager itself does not invalidate any analysis info.
|
||||||
void LPPassManager::getAnalysisUsage(AnalysisUsage &Info) const {
|
void LPPassManager::getAnalysisUsage(AnalysisUsage &Info) const {
|
||||||
// LPPassManager needs LoopInfo. In the long term LoopInfo class will
|
// LPPassManager needs LoopInfo. In the long term LoopInfo class will
|
||||||
// become part of LPPassManager.
|
// become part of LPPassManager.
|
||||||
Info.addRequired<LoopInfo>();
|
Info.addRequired<LoopInfo>();
|
||||||
Info.setPreservesAll();
|
Info.setPreservesAll();
|
||||||
@ -255,7 +255,7 @@ bool LPPassManager::runOnFunction(Function &F) {
|
|||||||
for (std::deque<Loop *>::const_iterator I = LQ.begin(), E = LQ.end();
|
for (std::deque<Loop *>::const_iterator I = LQ.begin(), E = LQ.end();
|
||||||
I != E; ++I) {
|
I != E; ++I) {
|
||||||
Loop *L = *I;
|
Loop *L = *I;
|
||||||
for (unsigned Index = 0; Index < getNumContainedPasses(); ++Index) {
|
for (unsigned Index = 0; Index < getNumContainedPasses(); ++Index) {
|
||||||
LoopPass *P = getContainedPass(Index);
|
LoopPass *P = getContainedPass(Index);
|
||||||
Changed |= P->doInitialization(L, *this);
|
Changed |= P->doInitialization(L, *this);
|
||||||
}
|
}
|
||||||
@ -263,13 +263,13 @@ bool LPPassManager::runOnFunction(Function &F) {
|
|||||||
|
|
||||||
// Walk Loops
|
// Walk Loops
|
||||||
while (!LQ.empty()) {
|
while (!LQ.empty()) {
|
||||||
|
|
||||||
CurrentLoop = LQ.back();
|
CurrentLoop = LQ.back();
|
||||||
skipThisLoop = false;
|
skipThisLoop = false;
|
||||||
redoThisLoop = false;
|
redoThisLoop = false;
|
||||||
|
|
||||||
// Run all passes on the current Loop.
|
// Run all passes on the current Loop.
|
||||||
for (unsigned Index = 0; Index < getNumContainedPasses(); ++Index) {
|
for (unsigned Index = 0; Index < getNumContainedPasses(); ++Index) {
|
||||||
LoopPass *P = getContainedPass(Index);
|
LoopPass *P = getContainedPass(Index);
|
||||||
dumpPassInfo(P, EXECUTION_MSG, ON_LOOP_MSG,
|
dumpPassInfo(P, EXECUTION_MSG, ON_LOOP_MSG,
|
||||||
CurrentLoop->getHeader()->getName());
|
CurrentLoop->getHeader()->getName());
|
||||||
@ -319,23 +319,23 @@ bool LPPassManager::runOnFunction(Function &F) {
|
|||||||
// Do not run other passes on this loop.
|
// Do not run other passes on this loop.
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the loop was deleted, release all the loop passes. This frees up
|
// If the loop was deleted, release all the loop passes. This frees up
|
||||||
// some memory, and avoids trouble with the pass manager trying to call
|
// some memory, and avoids trouble with the pass manager trying to call
|
||||||
// verifyAnalysis on them.
|
// verifyAnalysis on them.
|
||||||
if (skipThisLoop)
|
if (skipThisLoop)
|
||||||
for (unsigned Index = 0; Index < getNumContainedPasses(); ++Index) {
|
for (unsigned Index = 0; Index < getNumContainedPasses(); ++Index) {
|
||||||
Pass *P = getContainedPass(Index);
|
Pass *P = getContainedPass(Index);
|
||||||
freePass(P, "<deleted>", ON_LOOP_MSG);
|
freePass(P, "<deleted>", ON_LOOP_MSG);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Pop the loop from queue after running all passes.
|
// Pop the loop from queue after running all passes.
|
||||||
LQ.pop_back();
|
LQ.pop_back();
|
||||||
|
|
||||||
if (redoThisLoop)
|
if (redoThisLoop)
|
||||||
LQ.push_back(CurrentLoop);
|
LQ.push_back(CurrentLoop);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Finalization
|
// Finalization
|
||||||
for (unsigned Index = 0; Index < getNumContainedPasses(); ++Index) {
|
for (unsigned Index = 0; Index < getNumContainedPasses(); ++Index) {
|
||||||
LoopPass *P = getContainedPass(Index);
|
LoopPass *P = getContainedPass(Index);
|
||||||
@ -372,7 +372,7 @@ Pass *LoopPass::createPrinterPass(raw_ostream &O,
|
|||||||
// LPPassManger as expected.
|
// LPPassManger as expected.
|
||||||
void LoopPass::preparePassManager(PMStack &PMS) {
|
void LoopPass::preparePassManager(PMStack &PMS) {
|
||||||
|
|
||||||
// Find LPPassManager
|
// Find LPPassManager
|
||||||
while (!PMS.empty() &&
|
while (!PMS.empty() &&
|
||||||
PMS.top()->getPassManagerType() > PMT_LoopPassManager)
|
PMS.top()->getPassManagerType() > PMT_LoopPassManager)
|
||||||
PMS.pop();
|
PMS.pop();
|
||||||
@ -381,14 +381,14 @@ void LoopPass::preparePassManager(PMStack &PMS) {
|
|||||||
// by other passes that are managed by LPM then do not insert
|
// by other passes that are managed by LPM then do not insert
|
||||||
// this pass in current LPM. Use new LPPassManager.
|
// this pass in current LPM. Use new LPPassManager.
|
||||||
if (PMS.top()->getPassManagerType() == PMT_LoopPassManager &&
|
if (PMS.top()->getPassManagerType() == PMT_LoopPassManager &&
|
||||||
!PMS.top()->preserveHigherLevelAnalysis(this))
|
!PMS.top()->preserveHigherLevelAnalysis(this))
|
||||||
PMS.pop();
|
PMS.pop();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Assign pass manager to manage this pass.
|
/// Assign pass manager to manage this pass.
|
||||||
void LoopPass::assignPassManager(PMStack &PMS,
|
void LoopPass::assignPassManager(PMStack &PMS,
|
||||||
PassManagerType PreferredType) {
|
PassManagerType PreferredType) {
|
||||||
// Find LPPassManager
|
// Find LPPassManager
|
||||||
while (!PMS.empty() &&
|
while (!PMS.empty() &&
|
||||||
PMS.top()->getPassManagerType() > PMT_LoopPassManager)
|
PMS.top()->getPassManagerType() > PMT_LoopPassManager)
|
||||||
PMS.pop();
|
PMS.pop();
|
||||||
@ -397,7 +397,7 @@ void LoopPass::assignPassManager(PMStack &PMS,
|
|||||||
if (PMS.top()->getPassManagerType() == PMT_LoopPassManager)
|
if (PMS.top()->getPassManagerType() == PMT_LoopPassManager)
|
||||||
LPPM = (LPPassManager*)PMS.top();
|
LPPM = (LPPassManager*)PMS.top();
|
||||||
else {
|
else {
|
||||||
// Create new Loop Pass Manager if it does not exist.
|
// Create new Loop Pass Manager if it does not exist.
|
||||||
assert (!PMS.empty() && "Unable to create Loop Pass Manager");
|
assert (!PMS.empty() && "Unable to create Loop Pass Manager");
|
||||||
PMDataManager *PMD = PMS.top();
|
PMDataManager *PMD = PMS.top();
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user