diff --git a/bolt/lib/Rewrite/RewriteInstance.cpp b/bolt/lib/Rewrite/RewriteInstance.cpp --- a/bolt/lib/Rewrite/RewriteInstance.cpp +++ b/bolt/lib/Rewrite/RewriteInstance.cpp @@ -2898,11 +2898,8 @@ for (auto &BFI : BC->getBinaryFunctions()) { BinaryFunction &Function = BFI.second; - if (!shouldDisassemble(Function)) continue; - - Function.postProcessEntryPoints(); Function.postProcessJumpTables(); } @@ -2939,6 +2936,15 @@ !BC->getFragmentsToSkip().count(&Function)) Function.parseLSDA(getLSDAData(), getLSDAAddress()); } + + // Split jump table, split landing pad register secondary entry points + // postProcessEntryPoints needs to be invoked in the end + for (auto &BFI : BC->getBinaryFunctions()) { + BinaryFunction &Function = BFI.second; + if (!shouldDisassemble(Function)) + continue; + Function.postProcessEntryPoints(); + } } void RewriteInstance::buildFunctionsCFG() {