LLVM API Documentation

LICM.cpp File Reference

#include "llvm/Transforms/Scalar.h"
#include "llvm/DerivedTypes.h"
#include "llvm/Instructions.h"
#include "llvm/Target/TargetData.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/Analysis/AliasAnalysis.h"
#include "llvm/Analysis/AliasSetTracker.h"
#include "llvm/Analysis/Dominators.h"
#include "llvm/Support/CFG.h"
#include "llvm/Transforms/Utils/PromoteMemToReg.h"
#include "llvm/Transforms/Utils/Local.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#include "llvm/ADT/Statistic.h"
#include <algorithm>
#include <iostream>

Include dependency graph for LICM.cpp:

Go to the source code of this file.

Defines

#define DEBUG_TYPE   "licm"

Functions

FunctionPassllvm::createLICMPass ()

Variables

cl::opt< bool > DisablePromotion ("disable-licm-promotion", cl::Hidden, cl::desc("Disable memory promotion in LICM pass"))
Statistic NumSunk ("licm","Number of instructions sunk out of loop")
Statistic NumHoisted ("licm","Number of instructions hoisted out of loop")
Statistic NumMovedLoads ("licm","Number of load insts hoisted or sunk")
Statistic NumMovedCalls ("licm","Number of call insts hoisted or sunk")
Statistic NumPromoted ("licm","Number of memory locations promoted to registers")
AliasAnalysisAA
LoopInfoLI
DominatorTreeDT
DominanceFrontierDF
bool Changed
BasicBlockPreheader
LoopCurLoop
AliasSetTrackerCurAST
RegisterOpt< LICM > X ("licm","Loop Invariant Code Motion")


Define Documentation

#define DEBUG_TYPE   "licm"

Definition at line 34 of file LICM.cpp.


Variable Documentation

AliasAnalysis* AA

Definition at line 82 of file LICM.cpp.

Referenced by FindPHIToPartitionLoops(), isPathTransparentTo(), and llvm::AliasSet::mergeSetIn().

bool Changed

Definition at line 88 of file LICM.cpp.

AliasSetTracker* CurAST

Definition at line 91 of file LICM.cpp.

Loop* CurLoop

Definition at line 90 of file LICM.cpp.

Referenced by llvm::Loop::getLoopDepth().

DominanceFrontier* DF

Definition at line 85 of file LICM.cpp.

cl::opt<bool> DisablePromotion("disable-licm-promotion", cl::Hidden, cl::desc("Disable memory promotion in LICM pass")) [static]

DominatorTree* DT

Definition at line 84 of file LICM.cpp.

LoopInfo* LI

Definition at line 83 of file LICM.cpp.

Statistic NumHoisted("licm","Number of instructions hoisted out of loop") [static]

Statistic NumMovedCalls("licm","Number of call insts hoisted or sunk") [static]

Statistic NumMovedLoads("licm","Number of load insts hoisted or sunk") [static]

Statistic NumPromoted("licm","Number of memory locations promoted to registers") [static]

Statistic NumSunk("licm","Number of instructions sunk out of loop") [static]

BasicBlock* Preheader

Definition at line 89 of file LICM.cpp.

RegisterOpt<LICM> X("licm","Loop Invariant Code Motion") [static]