}
bool CodePreparation::runOnFunction(Function &F) {
- if (PollyModelPHINodes)
- return false;
-
LI = &getAnalysis<LoopInfoWrapperPass>().getLoopInfo();
SE = &getAnalysis<ScalarEvolution>();
splitEntryBlockForAlloca(&F.getEntryBlock(), this);
- eliminatePHINodes(F);
+ if (!PollyModelPHINodes)
+ eliminatePHINodes(F);
return false;
}
}
bool IndependentBlocks::runOnFunction(llvm::Function &F) {
- if (DisableIntraScopScalarToArray && PollyModelPHINodes)
- return false;
bool Changed = false;
Changed |= createIndependentBlocks(R);
Changed |= eliminateDeadCode(R);
// This may change the RegionTree.
- Changed |= splitExitBlock(const_cast<Region *>(R));
+ if (!DisableIntraScopScalarToArray || !PollyModelPHINodes)
+ Changed |= splitExitBlock(const_cast<Region *>(R));
}
DEBUG(dbgs() << "Before Scalar to Array------->\n");
DEBUG(F.dump());
- for (const Region *R : *SD)
- Changed |= translateScalarToArray(R);
+ if (!DisableIntraScopScalarToArray || !PollyModelPHINodes)
+ for (const Region *R : *SD)
+ Changed |= translateScalarToArray(R);
DEBUG(dbgs() << "After Independent Blocks------------->\n");
DEBUG(F.dump());