LLVM API Documentation
#include "llvm/Transforms/Scalar.h"
#include "llvm/ADT/DepthFirstIterator.h"
#include "llvm/ADT/SetOperations.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Analysis/AliasAnalysis.h"
#include "llvm/Analysis/DependenceAnalysis.h"
#include "llvm/Analysis/Dominators.h"
#include "llvm/Analysis/InstructionSimplify.h"
#include "llvm/Analysis/LoopPass.h"
#include "llvm/Analysis/ScalarEvolution.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Type.h"
#include "llvm/Support/CFG.h"
#include "llvm/Support/Debug.h"
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
#include "llvm/Transforms/Utils/Local.h"
#include "llvm/Transforms/Utils/LoopUtils.h"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "loop-simplify" |
Functions | |
STATISTIC (NumInserted,"Number of pre-header or exit blocks inserted") | |
STATISTIC (NumNested,"Number of nested loops split out") | |
static void | PlaceSplitBlockCarefully (BasicBlock *NewBB, SmallVectorImpl< BasicBlock * > &SplitPreds, Loop *L) |
INITIALIZE_PASS_BEGIN (LoopSimplify,"loop-simplify","Canonicalize natural loops", true, false) INITIALIZE_PASS_END(LoopSimplify | |
static void | AddBlockAndPredsToSet (BasicBlock *InputBB, BasicBlock *StopBlock, std::set< BasicBlock * > &Blocks) |
static PHINode * | FindPHIToPartitionLoops (Loop *L, DominatorTree *DT, AliasAnalysis *AA, LoopInfo *LI) |
Variables | |
loop | simplify |
loop Canonicalize natural | loops |
loop Canonicalize natural | true |
#define DEBUG_TYPE "loop-simplify" |
Definition at line 40 of file LoopSimplify.cpp.
|
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 451 of file LoopSimplify.cpp.
References llvm::BasicBlock::back(), I, llvm::pred_begin(), and llvm::pred_end().
|
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 469 of file LoopSimplify.cpp.
References llvm::LoopBase< N, M >::contains(), llvm::AliasAnalysis::deleteValue(), llvm::Instruction::eraseFromParent(), llvm::LoopBase< N, M >::getHeader(), llvm::PHINode::getIncomingBlock(), llvm::PHINode::getIncomingValue(), llvm::PHINode::getNumIncomingValues(), I, llvm::Value::replaceAllUsesWith(), and llvm::SimplifyInstruction().
INITIALIZE_PASS_BEGIN | ( | LoopSimplify | , |
"loop-simplify" | , | ||
"Canonicalize natural loops" | , | ||
true | , | ||
false | |||
) |
|
static |
Definition at line 495 of file LoopSimplify.cpp.
References llvm::LoopBase< N, M >::contains(), llvm::Function::end(), llvm::BasicBlock::getParent(), llvm::BasicBlock::moveAfter(), and llvm::SmallVectorTemplateCommon< T >::size().
Referenced by llvm::InsertPreheaderForLoop().
STATISTIC | ( | NumInserted | , |
"Number of pre-header or exit blocks inserted" | |||
) |
loop Canonicalize natural loops |
Definition at line 119 of file LoopSimplify.cpp.
loop simplify |
Definition at line 119 of file LoopSimplify.cpp.
loop Canonicalize natural true |
Definition at line 119 of file LoopSimplify.cpp.