if (MaxDevirtIterations == 0)
MPM.addPass(createModuleToPostOrderCGSCCPassAdaptor(std::move(PM)));
else
MPM.addPass(createModuleToPostOrderCGSCCPassAdaptor(
createDevirtSCCRepeatedPass(std::move(PM), MaxDevirtIterations)));
In ModuleInlinerWrapperPass constructor, I found PM only add InlinerPass. So in DevirtSCCRepeatedPass::run function,during each interation, we first run inline pass, then do devirtualization? The code location is below:
Do we need some alias analysis or other pass between inline and devirtualization which can help us do devirtualization better?
Thank you very much!
ZXL