@@ -32,13 +32,13 @@ using namespace llvm;
3232
3333namespace {
3434
35- class TailDuplicateBase : public MachineFunctionPass {
35+ class TailDuplicateBaseLegacy : public MachineFunctionPass {
3636 TailDuplicator Duplicator;
3737 std::unique_ptr<MBFIWrapper> MBFIW;
3838 bool PreRegAlloc;
3939public:
40- TailDuplicateBase (char &PassID, bool PreRegAlloc)
41- : MachineFunctionPass(PassID), PreRegAlloc(PreRegAlloc) {}
40+ TailDuplicateBaseLegacy (char &PassID, bool PreRegAlloc)
41+ : MachineFunctionPass(PassID), PreRegAlloc(PreRegAlloc) {}
4242
4343 bool runOnMachineFunction (MachineFunction &MF) override ;
4444
@@ -50,18 +50,18 @@ class TailDuplicateBase : public MachineFunctionPass {
5050 }
5151};
5252
53- class TailDuplicateLegacy : public TailDuplicateBase {
53+ class TailDuplicateLegacy : public TailDuplicateBaseLegacy {
5454public:
5555 static char ID;
56- TailDuplicateLegacy () : TailDuplicateBase (ID, false ) {
56+ TailDuplicateLegacy () : TailDuplicateBaseLegacy (ID, false ) {
5757 initializeTailDuplicateLegacyPass (*PassRegistry::getPassRegistry ());
5858 }
5959};
6060
61- class EarlyTailDuplicateLegacy : public TailDuplicateBase {
61+ class EarlyTailDuplicateLegacy : public TailDuplicateBaseLegacy {
6262public:
6363 static char ID;
64- EarlyTailDuplicateLegacy () : TailDuplicateBase (ID, true ) {
64+ EarlyTailDuplicateLegacy () : TailDuplicateBaseLegacy (ID, true ) {
6565 initializeEarlyTailDuplicateLegacyPass (*PassRegistry::getPassRegistry ());
6666 }
6767
@@ -84,7 +84,7 @@ INITIALIZE_PASS(TailDuplicateLegacy, DEBUG_TYPE, "Tail Duplication", false,
8484INITIALIZE_PASS(EarlyTailDuplicateLegacy, " early-tailduplication" ,
8585 " Early Tail Duplication" , false , false )
8686
87- bool TailDuplicateBase ::runOnMachineFunction(MachineFunction &MF) {
87+ bool TailDuplicateBaseLegacy ::runOnMachineFunction(MachineFunction &MF) {
8888 if (skipFunction (MF.getFunction ()))
8989 return false ;
9090
@@ -108,7 +108,10 @@ bool TailDuplicateBase::runOnMachineFunction(MachineFunction &MF) {
108108template <typename DerivedT, bool PreRegAlloc>
109109PreservedAnalyses TailDuplicatePassBase<DerivedT, PreRegAlloc>::run(
110110 MachineFunction &MF, MachineFunctionAnalysisManager &MFAM) {
111- MFPropsModifier<DerivedT> _ (static_cast <DerivedT &>(*this ), MF);
111+ MFPropsModifier _ (static_cast <DerivedT &>(*this ), MF);
112+
113+ if (MF.getFunction ().hasOptNone ())
114+ return PreservedAnalyses::all ();
112115
113116 auto *MBPI = &MFAM.getResult <MachineBranchProbabilityAnalysis>(MF);
114117 auto *PSI = MFAM.getResult <ModuleAnalysisManagerMachineFunctionProxy>(MF)
0 commit comments