mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 04:30:23 +00:00
Avoid using Loop::getSubLoopsVector.
Passes should never modify it, just use the const version. While there reduce copying in LoopInterchange. No functional change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242041 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
af8cf90e2f
commit
ed5546e50b
@ -282,21 +282,21 @@ static void populateWorklist(Loop &L, SmallVector<LoopVector, 8> &V) {
|
||||
DEBUG(dbgs() << "Calling populateWorklist called\n");
|
||||
LoopVector LoopList;
|
||||
Loop *CurrentLoop = &L;
|
||||
std::vector<Loop *> vec = CurrentLoop->getSubLoopsVector();
|
||||
while (vec.size() != 0) {
|
||||
const std::vector<Loop *> *Vec = &CurrentLoop->getSubLoops();
|
||||
while (!Vec->empty()) {
|
||||
// The current loop has multiple subloops in it hence it is not tightly
|
||||
// nested.
|
||||
// Discard all loops above it added into Worklist.
|
||||
if (vec.size() != 1) {
|
||||
if (Vec->size() != 1) {
|
||||
LoopList.clear();
|
||||
return;
|
||||
}
|
||||
LoopList.push_back(CurrentLoop);
|
||||
CurrentLoop = *(vec.begin());
|
||||
vec = CurrentLoop->getSubLoopsVector();
|
||||
CurrentLoop = Vec->front();
|
||||
Vec = &CurrentLoop->getSubLoops();
|
||||
}
|
||||
LoopList.push_back(CurrentLoop);
|
||||
V.push_back(LoopList);
|
||||
V.push_back(std::move(LoopList));
|
||||
}
|
||||
|
||||
static PHINode *getInductionVariable(Loop *L, ScalarEvolution *SE) {
|
||||
|
@ -3807,7 +3807,7 @@ bool LoopVectorizationLegality::canVectorize() {
|
||||
}
|
||||
|
||||
// We can only vectorize innermost loops.
|
||||
if (!TheLoop->getSubLoopsVector().empty()) {
|
||||
if (!TheLoop->empty()) {
|
||||
emitAnalysis(VectorizationReport() << "loop is not the innermost loop");
|
||||
return false;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user