LLVM  3.7.0
Macros | Functions | Variables
MachineBlockPlacement.cpp File Reference
#include "llvm/CodeGen/Passes.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/CodeGen/MachineBasicBlock.h"
#include "llvm/CodeGen/MachineBlockFrequencyInfo.h"
#include "llvm/CodeGen/MachineBranchProbabilityInfo.h"
#include "llvm/CodeGen/MachineDominators.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineLoopInfo.h"
#include "llvm/CodeGen/MachineModuleInfo.h"
#include "llvm/Support/Allocator.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Target/TargetInstrInfo.h"
#include "llvm/Target/TargetLowering.h"
#include "llvm/Target/TargetSubtargetInfo.h"
#include <algorithm>
Include dependency graph for MachineBlockPlacement.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "block-placement"
 

Functions

 STATISTIC (NumCondBranches,"Number of conditional branches")
 
 STATISTIC (NumUncondBranches,"Number of uncondittional branches")
 
 STATISTIC (CondBranchTakenFreq,"Potential frequency of taking conditional branches")
 
 STATISTIC (UncondBranchTakenFreq,"Potential frequency of taking unconditional branches")
 
 INITIALIZE_PASS_BEGIN (MachineBlockPlacement,"block-placement","Branch Probability Basic Block Placement", false, false) INITIALIZE_PASS_END(MachineBlockPlacement
 
block Branch Probability Basic
Block static false std::string 
getBlockName (MachineBasicBlock *BB)
 Helper to print the name of a MBB. More...
 
static std::string getBlockNum (MachineBasicBlock *BB)
 Helper to print the number of a MBB. More...
 
 INITIALIZE_PASS_BEGIN (MachineBlockPlacementStats,"block-placement-stats","Basic Block Placement Stats", false, false) INITIALIZE_PASS_END(MachineBlockPlacementStats
 

Variables

static cl::opt< unsignedAlignAllBlock ("align-all-blocks", cl::desc("Force the alignment of all ""blocks in the function."), cl::init(0), cl::Hidden)
 
static cl::opt< unsignedExitBlockBias ("block-placement-exit-block-bias", cl::desc("Block frequency percentage a loop exit block needs ""over the original exit to be considered the new exit."), cl::init(0), cl::Hidden)
 
static cl::opt< boolOutlineOptionalBranches ("outline-optional-branches", cl::desc("Put completely optional branches, i.e. branches with a common ""post dominator, out of line."), cl::init(false), cl::Hidden)
 
static cl::opt< unsignedOutlineOptionalThreshold ("outline-optional-threshold", cl::desc("Don't outline optional branches that are a single block with an ""instruction count below this threshold"), cl::init(4), cl::Hidden)
 
block placement
 
block Branch Probability Basic
Block 
Placement
 
block Branch Probability Basic
Block 
false
 
block placement stats
 
block placement Basic Block
Placement 
Stats
 

Macro Definition Documentation

#define DEBUG_TYPE   "block-placement"

Definition at line 51 of file MachineBlockPlacement.cpp.

Function Documentation

block Branch Probability Basic Block static false std::string getBlockName ( MachineBasicBlock BB)
static

Helper to print the name of a MBB.

Only used by debug logging.

Definition at line 287 of file MachineBlockPlacement.cpp.

References llvm::raw_ostream::flush(), llvm::MachineBasicBlock::getName(), and llvm::MachineBasicBlock::getNumber().

static std::string getBlockNum ( MachineBasicBlock BB)
static
INITIALIZE_PASS_BEGIN ( MachineBlockPlacement  ,
"block-placement ,
"Branch Probability Basic Block Placement ,
false  ,
false   
)
INITIALIZE_PASS_BEGIN ( MachineBlockPlacementStats  ,
"block-placement-stats ,
"Basic Block Placement Stats ,
false  ,
false   
)
STATISTIC ( NumCondBranches  ,
"Number of conditional branches"   
)
STATISTIC ( NumUncondBranches  ,
"Number of uncondittional branches"   
)
STATISTIC ( CondBranchTakenFreq  ,
"Potential frequency of taking conditional branches"   
)
STATISTIC ( UncondBranchTakenFreq  ,
"Potential frequency of taking unconditional branches"   
)

Variable Documentation

cl::opt<unsigned> AlignAllBlock("align-all-blocks", cl::desc("Force the alignment of all ""blocks in the function."), cl::init(0), cl::Hidden)
static
cl::opt<unsigned> ExitBlockBias("block-placement-exit-block-bias", cl::desc("Block frequency percentage a loop exit block needs ""over the original exit to be considered the new exit."), cl::init(0), cl::Hidden)
static
block placement Basic Block Placement false

Definition at line 280 of file MachineBlockPlacement.cpp.

cl::opt<bool> OutlineOptionalBranches("outline-optional-branches", cl::desc("Put completely optional branches, i.e. branches with a common ""post dominator, out of line."), cl::init(false), cl::Hidden)
static
cl::opt<unsigned> OutlineOptionalThreshold("outline-optional-threshold", cl::desc("Don't outline optional branches that are a single block with an ""instruction count below this threshold"), cl::init(4), cl::Hidden)
static
block placement

Definition at line 280 of file MachineBlockPlacement.cpp.

block Branch Probability Basic Block Placement

Definition at line 280 of file MachineBlockPlacement.cpp.

void IFOrdering::stats

Definition at line 1196 of file MachineBlockPlacement.cpp.

block placement Basic Block Placement Stats

Definition at line 1196 of file MachineBlockPlacement.cpp.

Referenced by llvm::PrintStatistics().