git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126826
91177308-0d34-0410-b5e6-
96231b3b80d8
/// update it.
BasicBlock::iterator CurInstIterator;
/// update it.
BasicBlock::iterator CurInstIterator;
- /// BackEdges - Keep a set of all the loop back edges.
- ///
- SmallSet<std::pair<const BasicBlock*, const BasicBlock*>, 8> BackEdges;
-
// Keeps track of non-local addresses that have been sunk into a block. This
// allows us to avoid inserting duplicate code for blocks with multiple
// load/stores of the same address.
// Keeps track of non-local addresses that have been sunk into a block. This
// allows us to avoid inserting duplicate code for blocks with multiple
// load/stores of the same address.
AU.addPreserved<ProfileInfo>();
}
AU.addPreserved<ProfileInfo>();
}
- virtual void releaseMemory() {
- BackEdges.clear();
- }
-
private:
bool EliminateMostlyEmptyBlocks(Function &F);
bool CanMergeBlocks(const BasicBlock *BB, const BasicBlock *DestBB) const;
private:
bool EliminateMostlyEmptyBlocks(Function &F);
bool CanMergeBlocks(const BasicBlock *BB, const BasicBlock *DestBB) const;
bool OptimizeCallInst(CallInst *CI);
bool MoveExtToFormExtLoad(Instruction *I);
bool OptimizeExtUses(Instruction *I);
bool OptimizeCallInst(CallInst *CI);
bool MoveExtToFormExtLoad(Instruction *I);
bool OptimizeExtUses(Instruction *I);
- void findLoopBackEdges(const Function &F);
return new CodeGenPrepare(TLI);
}
return new CodeGenPrepare(TLI);
}
-/// findLoopBackEdges - Do a DFS walk to find loop back edges.
-///
-void CodeGenPrepare::findLoopBackEdges(const Function &F) {
- SmallVector<std::pair<const BasicBlock*,const BasicBlock*>, 32> Edges;
- FindFunctionBackedges(F, Edges);
-
- BackEdges.insert(Edges.begin(), Edges.end());
-}
-
-
bool CodeGenPrepare::runOnFunction(Function &F) {
bool EverMadeChange = false;
bool CodeGenPrepare::runOnFunction(Function &F) {
bool EverMadeChange = false;