#include "llvm/Analysis/ProfileSummaryInfo.h"
#include "llvm/CodeGen/LazyMachineBlockFrequencyInfo.h"
#include "llvm/CodeGen/MBFIWrapper.h"
#include "llvm/CodeGen/MachineBranchProbabilityInfo.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/TailDuplicator.h"
#include "llvm/InitializePasses.h"
#include "llvm/Pass.h"
#include "llvm/PassRegistry.h"
usingnamespacellvm;
#define DEBUG_TYPE …
namespace {
class TailDuplicateBase : public MachineFunctionPass { … };
class TailDuplicate : public TailDuplicateBase { … };
class EarlyTailDuplicate : public TailDuplicateBase { … };
}
char TailDuplicate::ID;
char EarlyTailDuplicate::ID;
char &llvm::TailDuplicateID = …;
char &llvm::EarlyTailDuplicateID = …;
INITIALIZE_PASS(…)
INITIALIZE_PASS(…)
bool TailDuplicateBase::runOnMachineFunction(MachineFunction &MF) { … }