LLVM 24.0.0git
PartialInlining.cpp File Reference
#include "llvm/Transforms/IPO/PartialInlining.h"
#include "IPOOptions.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/DepthFirstIterator.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Analysis/BlockFrequencyInfo.h"
#include "llvm/Analysis/BranchProbabilityInfo.h"
#include "llvm/Analysis/InlineCost.h"
#include "llvm/Analysis/OptimizationRemarkEmitter.h"
#include "llvm/Analysis/ProfileSummaryInfo.h"
#include "llvm/Analysis/TargetLibraryInfo.h"
#include "llvm/Analysis/TargetTransformInfo.h"
#include "llvm/IR/Attributes.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/CFG.h"
#include "llvm/IR/CycleInfo.h"
#include "llvm/IR/DebugLoc.h"
#include "llvm/IR/DiagnosticInfo.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/InstrTypes.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/Operator.h"
#include "llvm/IR/ProfDataUtils.h"
#include "llvm/IR/User.h"
#include "llvm/Support/BlockFrequency.h"
#include "llvm/Support/BranchProbability.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Transforms/IPO.h"
#include "llvm/Transforms/Utils/Cloning.h"
#include "llvm/Transforms/Utils/CodeExtractor.h"
#include "llvm/Transforms/Utils/ValueMapper.h"
#include <algorithm>
#include <cassert>
#include <cstdint>
#include <memory>
#include <tuple>
#include <vector>

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "partial-inlining"

Functions

 STATISTIC (NumPartialInlined, "Number of callsites functions partially inlined into.")
 STATISTIC (NumColdOutlinePartialInlined, "Number of times functions with " "cold outlined regions were partially " "inlined into its caller(s).")
 STATISTIC (NumColdRegionsFound, "Number of cold single entry/exit regions found.")
 STATISTIC (NumColdRegionsOutlined, "Number of cold single entry/exit regions outlined.")
static bool hasProfileData (const Function &F, const FunctionOutliningInfo &OI)

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "partial-inlining"

Definition at line 63 of file PartialInlining.cpp.

Function Documentation

◆ hasProfileData()

bool hasProfileData ( const Function & F,
const FunctionOutliningInfo & OI )
static

Definition at line 592 of file PartialInlining.cpp.

References llvm::dyn_cast(), E(), F, and llvm::hasBranchWeightMD().

◆ STATISTIC() [1/4]

STATISTIC ( NumColdOutlinePartialInlined ,
"Number of times functions with " "cold outlined regions were partially " "inlined into its caller(s)."  )

◆ STATISTIC() [2/4]

STATISTIC ( NumColdRegionsFound ,
"Number of cold single entry/exit regions found."  )

◆ STATISTIC() [3/4]

STATISTIC ( NumColdRegionsOutlined ,
"Number of cold single entry/exit regions outlined."  )

◆ STATISTIC() [4/4]

STATISTIC ( NumPartialInlined ,
"Number of callsites functions partially inlined into."  )