LLVM  8.0.1
Classes | Namespaces | Typedefs | Functions | Variables
LoopAnalysisManager.h File Reference

This header provides classes for managing per-loop analyses. More...

#include "llvm/ADT/PostOrderIterator.h"
#include "llvm/ADT/PriorityWorklist.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/Analysis/AliasAnalysis.h"
#include "llvm/Analysis/BasicAliasAnalysis.h"
#include "llvm/Analysis/GlobalsModRef.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/Analysis/MemorySSA.h"
#include "llvm/Analysis/ScalarEvolution.h"
#include "llvm/Analysis/ScalarEvolutionAliasAnalysis.h"
#include "llvm/Analysis/TargetLibraryInfo.h"
#include "llvm/Analysis/TargetTransformInfo.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/PassManager.h"
Include dependency graph for LoopAnalysisManager.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  llvm::LoopStandardAnalysisResults
 The adaptor from a function pass to a loop pass computes these analyses and makes them available to the loop passes "for free". More...
 
class  llvm::LoopAnalysisManagerFunctionProxy::Result<>
 A specialized result for the LoopAnalysisManagerFunctionProxy which retains a LoopInfo reference. More...
 

Namespaces

 llvm
 This class represents lattice values for constants.
 

Typedefs

typedef AnalysisManager< Loop, LoopStandardAnalysisResults & > llvm::LoopAnalysisManager
 The loop analysis manager. More...
 
typedef InnerAnalysisManagerProxy< LoopAnalysisManager, Function > llvm::LoopAnalysisManagerFunctionProxy
 A proxy from a LoopAnalysisManager to a Function. More...
 
typedef OuterAnalysisManagerProxy< FunctionAnalysisManager, Loop, LoopStandardAnalysisResults & > llvm::FunctionAnalysisManagerLoopProxy
 A proxy from a FunctionAnalysisManager to a Loop. More...
 

Functions

PreservedAnalyses llvm::getLoopPassPreservedAnalyses ()
 Returns the minimum set of Analyses that all loop passes must preserve. More...
 

Variables

cl::opt< boolllvm::EnableMSSALoopDependency
 Enables memory ssa as a dependency for loop passes. More...
 

Detailed Description

This header provides classes for managing per-loop analyses.

These are typically used as part of a loop pass pipeline over the loop nests of a function.

Loop analyses are allowed to make some simplifying assumptions: 1) Loops are, where possible, in simplified form. 2) Loops are always in LCSSA form. 3) A collection of analysis results are available:

The primary mechanism to provide these invariants is the loop pass manager, but they can also be manually provided in order to reason about a loop from outside of a dedicated pass manager.

Definition in file LoopAnalysisManager.h.