forked from OSchip/llvm-project
Fix pass dependency for LICM
Expected to address buildbot failure http://lab.llvm.org:8011/builders/clang-x86_64-debian-fast/builds/16285 caused by D65060. llvm-svn: 368542
This commit is contained in:
parent
cf9fa0b382
commit
cb5a90fd31
|
@ -313,6 +313,7 @@ char LegacyLICMPass::ID = 0;
|
|||
INITIALIZE_PASS_BEGIN(LegacyLICMPass, "licm", "Loop Invariant Code Motion",
|
||||
false, false)
|
||||
INITIALIZE_PASS_DEPENDENCY(LoopPass)
|
||||
INITIALIZE_PASS_DEPENDENCY(BlockFrequencyInfoWrapperPass)
|
||||
INITIALIZE_PASS_DEPENDENCY(TargetLibraryInfoWrapperPass)
|
||||
INITIALIZE_PASS_DEPENDENCY(TargetTransformInfoWrapperPass)
|
||||
INITIALIZE_PASS_DEPENDENCY(MemorySSAWrapperPass)
|
||||
|
@ -333,8 +334,8 @@ Pass *llvm::createLICMPass(unsigned LicmMssaOptCap,
|
|||
///
|
||||
bool LoopInvariantCodeMotion::runOnLoop(
|
||||
Loop *L, AliasAnalysis *AA, LoopInfo *LI, DominatorTree *DT,
|
||||
BlockFrequencyInfo *BFI, TargetLibraryInfo *TLI, TargetTransformInfo *TTI,
|
||||
ScalarEvolution *SE, MemorySSA *MSSA, OptimizationRemarkEmitter *ORE,
|
||||
BlockFrequencyInfo *BFI, TargetLibraryInfo *TLI, TargetTransformInfo *TTI,
|
||||
ScalarEvolution *SE, MemorySSA *MSSA, OptimizationRemarkEmitter *ORE,
|
||||
bool DeleteAST) {
|
||||
bool Changed = false;
|
||||
|
||||
|
@ -502,8 +503,8 @@ bool LoopInvariantCodeMotion::runOnLoop(
|
|||
///
|
||||
bool llvm::sinkRegion(DomTreeNode *N, AliasAnalysis *AA, LoopInfo *LI,
|
||||
DominatorTree *DT, BlockFrequencyInfo *BFI,
|
||||
TargetLibraryInfo *TLI, TargetTransformInfo *TTI,
|
||||
Loop *CurLoop, AliasSetTracker *CurAST,
|
||||
TargetLibraryInfo *TLI, TargetTransformInfo *TTI,
|
||||
Loop *CurLoop, AliasSetTracker *CurAST,
|
||||
MemorySSAUpdater *MSSAU,
|
||||
ICFLoopSafetyInfo *SafetyInfo,
|
||||
SinkAndHoistLICMFlags &Flags,
|
||||
|
@ -1593,7 +1594,7 @@ static void splitPredecessorsOfLoopExit(PHINode *PN, DominatorTree *DT,
|
|||
/// position, and may either delete it or move it to outside of the loop.
|
||||
///
|
||||
static bool sink(Instruction &I, LoopInfo *LI, DominatorTree *DT,
|
||||
BlockFrequencyInfo *BFI, const Loop *CurLoop,
|
||||
BlockFrequencyInfo *BFI, const Loop *CurLoop,
|
||||
ICFLoopSafetyInfo *SafetyInfo, MemorySSAUpdater *MSSAU,
|
||||
OptimizationRemarkEmitter *ORE) {
|
||||
LLVM_DEBUG(dbgs() << "LICM sinking instruction: " << I << "\n");
|
||||
|
@ -2026,7 +2027,7 @@ bool llvm::promoteLoopAccessesToScalars(
|
|||
// Note that proving a load safe to speculate requires proving
|
||||
// sufficient alignment at the target location. Proving it guaranteed
|
||||
// to execute does as well. Thus we can increase our guaranteed
|
||||
// alignment as well.
|
||||
// alignment as well.
|
||||
if (!DereferenceableInPH || (InstAlignment > Alignment))
|
||||
if (isSafeToExecuteUnconditionally(*Load, DT, CurLoop, SafetyInfo,
|
||||
ORE, Preheader->getTerminator())) {
|
||||
|
|
Loading…
Reference in New Issue