LLVM API Documentation
#include "llvm/Transforms/Scalar.h"
#include "llvm/Constant.h"
#include "llvm/Instructions.h"
#include "llvm/Function.h"
#include "llvm/Type.h"
#include "llvm/Analysis/AliasAnalysis.h"
#include "llvm/Analysis/Dominators.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/Support/CFG.h"
#include "llvm/Support/Visibility.h"
#include "llvm/ADT/SetOperations.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/ADT/DepthFirstIterator.h"
Include dependency graph for LoopSimplify.cpp:
Go to the source code of this file.
Functions | |
FunctionPass * | llvm::createLoopSimplifyPass () |
static void | AddBlockAndPredsToSet (BasicBlock *BB, BasicBlock *StopBlock, std::set< BasicBlock * > &Blocks) |
static PHINode * | FindPHIToPartitionLoops (Loop *L, DominatorSet &DS, AliasAnalysis *AA) |
Variables | |
Statistic | NumInserted ("loopsimplify","Number of pre-header or exit blocks inserted") |
Statistic | NumNested ("loopsimplify","Number of nested loops split out") |
RegisterOpt< LoopSimplify > | X ("loopsimplify","Canonicalize natural loops", true) |
static void AddBlockAndPredsToSet | ( | BasicBlock * | BB, | |
BasicBlock * | StopBlock, | |||
std::set< BasicBlock * > & | Blocks | |||
) | [static] |
AddBlockAndPredsToSet - Add the specified block, and all of its predecessors, to the specified set, if it's not already in there. Stop predecessor traversal when we reach StopBlock.
Definition at line 446 of file LoopSimplify.cpp.
References BB, E, llvm::pred_begin(), and llvm::pred_end().
static PHINode* FindPHIToPartitionLoops | ( | Loop * | L, | |
DominatorSet & | DS, | |||
AliasAnalysis * | AA | |||
) | [static] |
FindPHIToPartitionLoops - The first part of loop-nestification is to find a PHI node that tells us how to partition the loops.
Definition at line 457 of file LoopSimplify.cpp.
References AA, llvm::BasicBlock::begin(), llvm::Loop::contains(), llvm::AliasAnalysis::deleteValue(), llvm::DominatorSetBase::dominates(), DS, llvm::Loop::getHeader(), and llvm::Value::replaceAllUsesWith().
Definition at line 60 of file LoopSimplify.cpp.
Definition at line 61 of file LoopSimplify.cpp.
Statistic NumInserted("loopsimplify","Number of pre-header or exit blocks inserted") [static] |
RegisterOpt<LoopSimplify> X("loopsimplify","Canonicalize natural loops", true) [static] |