mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-02 04:24:22 +00:00
Reimplement isPotentiallyReachable to make nocapture deduction much stronger.
Adds unit tests for it too. Split BasicBlockUtils into an analysis-half and a transforms-half, and put the analysis bits into a new Analysis/CFG.{h,cpp}. Promote isPotentiallyReachable into llvm::isPotentiallyReachable and move it into Analysis/CFG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187283 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -70,28 +70,6 @@ void ReplaceInstWithInst(BasicBlock::InstListType &BIL,
|
||||
//
|
||||
void ReplaceInstWithInst(Instruction *From, Instruction *To);
|
||||
|
||||
/// FindFunctionBackedges - Analyze the specified function to find all of the
|
||||
/// loop backedges in the function and return them. This is a relatively cheap
|
||||
/// (compared to computing dominators and loop info) analysis.
|
||||
///
|
||||
/// The output is added to Result, as pairs of <from,to> edge info.
|
||||
void FindFunctionBackedges(const Function &F,
|
||||
SmallVectorImpl<std::pair<const BasicBlock*,const BasicBlock*> > &Result);
|
||||
|
||||
|
||||
/// GetSuccessorNumber - Search for the specified successor of basic block BB
|
||||
/// and return its position in the terminator instruction's list of
|
||||
/// successors. It is an error to call this with a block that is not a
|
||||
/// successor.
|
||||
unsigned GetSuccessorNumber(BasicBlock *BB, BasicBlock *Succ);
|
||||
|
||||
/// isCriticalEdge - Return true if the specified edge is a critical edge.
|
||||
/// Critical edges are edges from a block with multiple successors to a block
|
||||
/// with multiple predecessors.
|
||||
///
|
||||
bool isCriticalEdge(const TerminatorInst *TI, unsigned SuccNum,
|
||||
bool AllowIdenticalEdges = false);
|
||||
|
||||
/// SplitCriticalEdge - If this edge is a critical edge, insert a new node to
|
||||
/// split the critical edge. This will update DominatorTree and
|
||||
/// DominatorFrontier information if it is available, thus calling this pass
|
||||
|
Reference in New Issue
Block a user