LLVM  8.0.1
Macros | Typedefs | Functions | Variables
HotColdSplitting.cpp File Reference
#include "llvm/ADT/PostOrderIterator.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Analysis/AliasAnalysis.h"
#include "llvm/Analysis/BlockFrequencyInfo.h"
#include "llvm/Analysis/BranchProbabilityInfo.h"
#include "llvm/Analysis/CFG.h"
#include "llvm/Analysis/OptimizationRemarkEmitter.h"
#include "llvm/Analysis/PostDominators.h"
#include "llvm/Analysis/ProfileSummaryInfo.h"
#include "llvm/Analysis/TargetTransformInfo.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/CFG.h"
#include "llvm/IR/CallSite.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/DiagnosticInfo.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/Metadata.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/PassManager.h"
#include "llvm/IR/Type.h"
#include "llvm/IR/Use.h"
#include "llvm/IR/User.h"
#include "llvm/IR/Value.h"
#include "llvm/Pass.h"
#include "llvm/Support/BlockFrequency.h"
#include "llvm/Support/BranchProbability.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Transforms/IPO.h"
#include "llvm/Transforms/IPO/HotColdSplitting.h"
#include "llvm/Transforms/Scalar.h"
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
#include "llvm/Transforms/Utils/Cloning.h"
#include "llvm/Transforms/Utils/CodeExtractor.h"
#include "llvm/Transforms/Utils/Local.h"
#include "llvm/Transforms/Utils/SSAUpdater.h"
#include "llvm/Transforms/Utils/ValueMapper.h"
#include <algorithm>
#include <cassert>
Include dependency graph for HotColdSplitting.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "hotcoldsplit"
 

Typedefs

using BlockTy = std::pair< BasicBlock *, unsigned >
 A pair of (basic block, score). More...
 

Functions

 STATISTIC (NumColdRegionsFound, "Number of cold regions found.")
 
 STATISTIC (NumColdRegionsOutlined, "Number of cold regions outlined.")
 
 INITIALIZE_PASS_BEGIN (HotColdSplittingLegacyPass, "hotcoldsplit", "Hot Cold Splitting", false, false) INITIALIZE_PASS_END(HotColdSplittingLegacyPass
 

Variables

static cl::opt< boolEnableStaticAnalyis ("hot-cold-static-analysis", cl::init(true), cl::Hidden)
 
static cl::opt< int > MinOutliningThreshold ("min-outlining-thresh", cl::init(3), cl::Hidden, cl::desc("Code size threshold for outlining within a " "single BB (as a multiple of TCC_Basic)"))
 
 hotcoldsplit
 
Hot Cold Splitting
 
Hot Cold false
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "hotcoldsplit"

Definition at line 61 of file HotColdSplitting.cpp.

Typedef Documentation

◆ BlockTy

using BlockTy = std::pair<BasicBlock *, unsigned>

A pair of (basic block, score).

Definition at line 296 of file HotColdSplitting.cpp.

Function Documentation

◆ INITIALIZE_PASS_BEGIN()

INITIALIZE_PASS_BEGIN ( HotColdSplittingLegacyPass  ,
"hotcoldsplit"  ,
"Hot Cold Splitting ,
false  ,
false   
)

◆ STATISTIC() [1/2]

STATISTIC ( NumColdRegionsFound  ,
"Number of cold regions found."   
)

◆ STATISTIC() [2/2]

STATISTIC ( NumColdRegionsOutlined  ,
"Number of cold regions outlined."   
)

Variable Documentation

◆ EnableStaticAnalyis

cl::opt<bool> EnableStaticAnalyis("hot-cold-static-analysis", cl::init(true), cl::Hidden)
static

◆ false

Hot Cold false

Definition at line 638 of file HotColdSplitting.cpp.

◆ hotcoldsplit

hotcoldsplit

Definition at line 638 of file HotColdSplitting.cpp.

◆ MinOutliningThreshold

cl::opt<int> MinOutliningThreshold("min-outlining-thresh", cl::init(3), cl::Hidden, cl::desc("Code size threshold for outlining within a " "single BB (as a multiple of TCC_Basic)"))
static

◆ Splitting

Hot Cold Splitting

Definition at line 638 of file HotColdSplitting.cpp.