LLVM: lib/CodeGen/TailDuplicator.cpp File Reference (original) (raw)

Go to the source code of this file.

Macros
#define DEBUG_TYPE "tailduplication"
Functions
STATISTIC (NumTails, "Number of tails duplicated")
STATISTIC (NumTailDups, "Number of tail duplicated blocks")
STATISTIC (NumTailDupAdded, "Number of instructions added due to tail duplication")
STATISTIC (NumTailDupRemoved, "Number of instructions removed due to tail duplication")
STATISTIC (NumDeadBlocks, "Number of dead blocks removed")
STATISTIC (NumAddedPHIs, "Number of phis added")
static void VerifyPHIs (MachineFunction &MF, bool CheckExtra)
static bool isDefLiveOut (Register Reg, MachineBasicBlock *BB, const MachineRegisterInfo *MRI)
static unsigned getPHISrcRegOpIdx (MachineInstr *MI, MachineBasicBlock *SrcBB)
static void getRegsUsedByPHIs (const MachineBasicBlock &BB, DenseSet< Register > *UsedByPhi)
static bool bothUsedInPHI (const MachineBasicBlock &A, const SmallPtrSet< MachineBasicBlock *, 8 > &SuccsB)
Variables
static cl::opt< unsigned > TailDuplicateSize ("tail-dup-size", cl::desc("Maximum instructions to consider tail duplicating"), cl::init(2), cl::Hidden)
static cl::opt< unsigned > TailDupIndirectBranchSize ("tail-dup-indirect-size", cl::desc("Maximum instructions to consider tail duplicating blocks that " "end with indirect branches."), cl::init(20), cl::Hidden)
static cl::opt< unsigned > TailDupPredSize ("tail-dup-pred-size", cl::desc("Maximum predecessors (maximum successors at the " "same time) to consider tail duplicating blocks."), cl::init(16), cl::Hidden)
static cl::opt< unsigned > TailDupSuccSize ("tail-dup-succ-size", cl::desc("Maximum successors (maximum predecessors at the " "same time) to consider tail duplicating blocks."), cl::init(16), cl::Hidden)
static cl::opt< bool > TailDupVerify ("tail-dup-verify", cl::desc("Verify sanity of PHI instructions during taildup"), cl::init(false), cl::Hidden)
static cl::opt< unsigned > TailDupLimit ("tail-dup-limit", cl::init(~0U), cl::Hidden)

DEBUG_TYPE

#define DEBUG_TYPE "tailduplication"

bothUsedInPHI()

getPHISrcRegOpIdx()

getRegsUsedByPHIs()

isDefLiveOut()

STATISTIC() [1/6]

STATISTIC ( NumAddedPHIs ,
"Number of phis added" )

STATISTIC() [2/6]

STATISTIC ( NumDeadBlocks ,
"Number of dead blocks removed" )

STATISTIC() [3/6]

STATISTIC ( NumTailDupAdded ,
"Number of instructions added due to tail duplication" )

STATISTIC() [4/6]

STATISTIC ( NumTailDupRemoved ,
"Number of instructions removed due to tail duplication" )

STATISTIC() [5/6]

STATISTIC ( NumTailDups ,
"Number of tail duplicated blocks" )

STATISTIC() [6/6]

STATISTIC ( NumTails ,
"Number of tails duplicated" )

VerifyPHIs()

TailDupIndirectBranchSize

cl::opt< unsigned > TailDupIndirectBranchSize("tail-dup-indirect-size", cl::desc("Maximum instructions to consider tail duplicating blocks that " "end with indirect branches."), cl::init(20), cl::Hidden) ( "tail-dup-indirect-size" , cl::desc("Maximum instructions to consider tail duplicating blocks that " "end with indirect branches.") , cl::init(20) , cl::Hidden ) static

TailDuplicateSize

TailDupLimit

cl::opt< unsigned > TailDupLimit("tail-dup-limit", cl::init(~0U), cl::Hidden) ( "tail-dup-limit" , cl::init(~0U) , cl::Hidden ) static

TailDupPredSize

cl::opt< unsigned > TailDupPredSize("tail-dup-pred-size", cl::desc("Maximum predecessors (maximum successors at the " "same time) to consider tail duplicating blocks."), cl::init(16), cl::Hidden) ( "tail-dup-pred-size" , cl::desc("Maximum predecessors (maximum successors at the " "same time) to consider tail duplicating blocks.") , cl::init(16) , cl::Hidden ) static

TailDupSuccSize

cl::opt< unsigned > TailDupSuccSize("tail-dup-succ-size", cl::desc("Maximum successors (maximum predecessors at the " "same time) to consider tail duplicating blocks."), cl::init(16), cl::Hidden) ( "tail-dup-succ-size" , cl::desc("Maximum successors (maximum predecessors at the " "same time) to consider tail duplicating blocks.") , cl::init(16) , cl::Hidden ) static

TailDupVerify