LLVM: lib/Transforms/Utils/CodeMoverUtils.cpp File Reference (original) (raw)

Go to the source code of this file.

Macros
#define DEBUG_TYPE "codemover-utils"
Functions
STATISTIC (HasDependences, "Cannot move across instructions that has memory dependences")
STATISTIC (MayThrowException, "Cannot move across instructions that may throw")
STATISTIC (NotControlFlowEquivalent, "Instructions are not control flow equivalent")
STATISTIC (NotMovedPHINode, "Movement of PHINodes are not supported")
STATISTIC (NotMovedTerminator, "Movement of Terminator are not supported")
static bool domTreeLevelBefore (DominatorTree *DT, const Instruction *InstA, const Instruction *InstB)
static bool reportInvalidCandidate (const Instruction &I, llvm::Statistic &Stat)
static void collectInstructionsInBetween (Instruction &StartInst, const Instruction &EndInst, SmallPtrSetImpl< Instruction * > &InBetweenInsts)
Collect all instructions in between StartInst and EndInst, and store them in InBetweenInsts.

DEBUG_TYPE

#define DEBUG_TYPE "codemover-utils"

collectInstructionsInBetween()

domTreeLevelBefore()

reportInvalidCandidate()

STATISTIC() [1/5]

STATISTIC ( HasDependences ,
"Cannot move across instructions that has memory dependences" )

STATISTIC() [2/5]

STATISTIC ( MayThrowException ,
"Cannot move across instructions that may throw" )

STATISTIC() [3/5]

STATISTIC ( NotControlFlowEquivalent ,
"Instructions are not control flow equivalent" )

STATISTIC() [4/5]

STATISTIC ( NotMovedPHINode ,
"Movement of PHINodes are not supported" )

STATISTIC() [5/5]

STATISTIC ( NotMovedTerminator ,
"Movement of Terminator are not supported" )