15 #ifndef LLVM_TRANSFORMS_UTILS_CODEEXTRACTOR_H
16 #define LLVM_TRANSFORMS_UTILS_CODEEXTRACTOR_H
21 template <
typename T>
class ArrayRef;
24 class BlockFrequencyInfo;
25 class BranchProbabilityInfo;
52 const bool AggregateArgs;
58 unsigned NumExitBlocks;
126 void splitReturnBlocks();
128 Function *constructFunction(
const ValueSet &inputs,
129 const ValueSet &outputs,
134 void moveCodeToFunction(
Function *newFunction);
136 void calculateNewCallTerminatorWeights(
141 void emitCallAndSwitchStatement(
Function *newFunction,
A Module instance is used to store all the information related to an LLVM module. ...
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory)...
Concrete subclass of DominatorTreeBase that is used to compute a normal dominator tree...
BlockFrequencyInfo pass uses BlockFrequencyInfoImpl implementation to estimate IR basic block frequen...
LLVM Basic Block Representation.
The instances of the Type class are immutable: once they are created, they are never changed...
Analysis providing branch probability information.
Represents a single loop in the control flow graph.