mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 20:51:52 +01:00
[NFC] Add missing 'const' notion to LCSSA-related functions
These functions don't really do any changes to loop info or dominator tree. We should state this explicitly using 'const'.
This commit is contained in:
parent
2e7316dbb2
commit
2ce06eb86a
@ -780,10 +780,11 @@ public:
|
||||
bool isCanonical(ScalarEvolution &SE) const;
|
||||
|
||||
/// Return true if the Loop is in LCSSA form.
|
||||
bool isLCSSAForm(DominatorTree &DT) const;
|
||||
bool isLCSSAForm(const DominatorTree &DT) const;
|
||||
|
||||
/// Return true if this Loop and all inner subloops are in LCSSA form.
|
||||
bool isRecursivelyLCSSAForm(DominatorTree &DT, const LoopInfo &LI) const;
|
||||
bool isRecursivelyLCSSAForm(const DominatorTree &DT,
|
||||
const LoopInfo &LI) const;
|
||||
|
||||
/// Return true if the Loop is in the form that the LoopSimplify form
|
||||
/// transforms loops to, which is sometimes called normal form.
|
||||
|
@ -77,7 +77,7 @@ bool formDedicatedExitBlocks(Loop *L, DominatorTree *DT, LoopInfo *LI,
|
||||
///
|
||||
/// Returns true if any modifications are made.
|
||||
bool formLCSSAForInstructions(SmallVectorImpl<Instruction *> &Worklist,
|
||||
DominatorTree &DT, LoopInfo &LI,
|
||||
const DominatorTree &DT, const LoopInfo &LI,
|
||||
ScalarEvolution *SE);
|
||||
|
||||
/// Put loop into LCSSA form.
|
||||
@ -92,7 +92,8 @@ bool formLCSSAForInstructions(SmallVectorImpl<Instruction *> &Worklist,
|
||||
/// If ScalarEvolution is passed in, it will be preserved.
|
||||
///
|
||||
/// Returns true if any modifications are made to the loop.
|
||||
bool formLCSSA(Loop &L, DominatorTree &DT, LoopInfo *LI, ScalarEvolution *SE);
|
||||
bool formLCSSA(Loop &L, const DominatorTree &DT, const LoopInfo *LI,
|
||||
ScalarEvolution *SE);
|
||||
|
||||
/// Put a loop nest into LCSSA form.
|
||||
///
|
||||
@ -103,7 +104,7 @@ bool formLCSSA(Loop &L, DominatorTree &DT, LoopInfo *LI, ScalarEvolution *SE);
|
||||
/// If ScalarEvolution is passed in, it will be preserved.
|
||||
///
|
||||
/// Returns true if any modifications are made to the loop.
|
||||
bool formLCSSARecursively(Loop &L, DominatorTree &DT, LoopInfo *LI,
|
||||
bool formLCSSARecursively(Loop &L, const DominatorTree &DT, const LoopInfo *LI,
|
||||
ScalarEvolution *SE);
|
||||
|
||||
struct SinkAndHoistLICMFlags {
|
||||
|
@ -420,7 +420,7 @@ bool Loop::isCanonical(ScalarEvolution &SE) const {
|
||||
|
||||
// Check that 'BB' doesn't have any uses outside of the 'L'
|
||||
static bool isBlockInLCSSAForm(const Loop &L, const BasicBlock &BB,
|
||||
DominatorTree &DT) {
|
||||
const DominatorTree &DT) {
|
||||
for (const Instruction &I : BB) {
|
||||
// Tokens can't be used in PHI nodes and live-out tokens prevent loop
|
||||
// optimizations, so for the purposes of considered LCSSA form, we
|
||||
@ -446,14 +446,15 @@ static bool isBlockInLCSSAForm(const Loop &L, const BasicBlock &BB,
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Loop::isLCSSAForm(DominatorTree &DT) const {
|
||||
bool Loop::isLCSSAForm(const DominatorTree &DT) const {
|
||||
// For each block we check that it doesn't have any uses outside of this loop.
|
||||
return all_of(this->blocks(), [&](const BasicBlock *BB) {
|
||||
return isBlockInLCSSAForm(*this, *BB, DT);
|
||||
});
|
||||
}
|
||||
|
||||
bool Loop::isRecursivelyLCSSAForm(DominatorTree &DT, const LoopInfo &LI) const {
|
||||
bool Loop::isRecursivelyLCSSAForm(const DominatorTree &DT,
|
||||
const LoopInfo &LI) const {
|
||||
// For each block we check that it doesn't have any uses outside of its
|
||||
// innermost loop. This process will transitively guarantee that the current
|
||||
// loop and all of the nested loops are in LCSSA form.
|
||||
|
@ -76,7 +76,7 @@ static bool isExitBlock(BasicBlock *BB,
|
||||
/// that are outside the current loop. If so, insert LCSSA PHI nodes and
|
||||
/// rewrite the uses.
|
||||
bool llvm::formLCSSAForInstructions(SmallVectorImpl<Instruction *> &Worklist,
|
||||
DominatorTree &DT, LoopInfo &LI,
|
||||
const DominatorTree &DT, const LoopInfo &LI,
|
||||
ScalarEvolution *SE) {
|
||||
SmallVector<Use *, 16> UsesToRewrite;
|
||||
SmallSetVector<PHINode *, 16> PHIsToRemove;
|
||||
@ -128,7 +128,7 @@ bool llvm::formLCSSAForInstructions(SmallVectorImpl<Instruction *> &Worklist,
|
||||
if (auto *Inv = dyn_cast<InvokeInst>(I))
|
||||
DomBB = Inv->getNormalDest();
|
||||
|
||||
DomTreeNode *DomNode = DT.getNode(DomBB);
|
||||
const DomTreeNode *DomNode = DT.getNode(DomBB);
|
||||
|
||||
SmallVector<PHINode *, 16> AddedPHIs;
|
||||
SmallVector<PHINode *, 8> PostProcessPHIs;
|
||||
@ -274,7 +274,7 @@ bool llvm::formLCSSAForInstructions(SmallVectorImpl<Instruction *> &Worklist,
|
||||
|
||||
// Compute the set of BasicBlocks in the loop `L` dominating at least one exit.
|
||||
static void computeBlocksDominatingExits(
|
||||
Loop &L, DominatorTree &DT, SmallVector<BasicBlock *, 8> &ExitBlocks,
|
||||
Loop &L, const DominatorTree &DT, SmallVector<BasicBlock *, 8> &ExitBlocks,
|
||||
SmallSetVector<BasicBlock *, 8> &BlocksDominatingExits) {
|
||||
SmallVector<BasicBlock *, 8> BBWorklist;
|
||||
|
||||
@ -318,7 +318,7 @@ static void computeBlocksDominatingExits(
|
||||
}
|
||||
}
|
||||
|
||||
bool llvm::formLCSSA(Loop &L, DominatorTree &DT, LoopInfo *LI,
|
||||
bool llvm::formLCSSA(Loop &L, const DominatorTree &DT, const LoopInfo *LI,
|
||||
ScalarEvolution *SE) {
|
||||
bool Changed = false;
|
||||
|
||||
@ -383,8 +383,8 @@ bool llvm::formLCSSA(Loop &L, DominatorTree &DT, LoopInfo *LI,
|
||||
}
|
||||
|
||||
/// Process a loop nest depth first.
|
||||
bool llvm::formLCSSARecursively(Loop &L, DominatorTree &DT, LoopInfo *LI,
|
||||
ScalarEvolution *SE) {
|
||||
bool llvm::formLCSSARecursively(Loop &L, const DominatorTree &DT,
|
||||
const LoopInfo *LI, ScalarEvolution *SE) {
|
||||
bool Changed = false;
|
||||
|
||||
// Recurse depth-first through inner loops.
|
||||
@ -396,7 +396,7 @@ bool llvm::formLCSSARecursively(Loop &L, DominatorTree &DT, LoopInfo *LI,
|
||||
}
|
||||
|
||||
/// Process all loops in the function, inner-most out.
|
||||
static bool formLCSSAOnAllLoops(LoopInfo *LI, DominatorTree &DT,
|
||||
static bool formLCSSAOnAllLoops(const LoopInfo *LI, const DominatorTree &DT,
|
||||
ScalarEvolution *SE) {
|
||||
bool Changed = false;
|
||||
for (auto &L : *LI)
|
||||
|
Loading…
x
Reference in New Issue
Block a user