the new FunctionPassManager

Hi all,

I try to keep my code in sync with recent changes made to trunk (coming from 3.6).

I see the FunctionPassManager has changed and I see there's a legacy version, but I try to keep up with the mainstream and prefer to use non-legacy stuff.

I also see that the examples were not updated.

Before I could do

llvm::FunctionPassManager *functionPassManager = new llvm::FunctionPassManager(Mod);

Now, the createBasicAliasAnalysisPass() is no longer there.

But I see there's a void PassManagerBuilder::addInitialAliasAnalysisPasses.

Is this what I should use now?

Also, I couldn't figure out equivalent code for this:

functionPassManager->add(new llvm::TargetLibraryInfo(llvm::Triple(Mod->getTargetTriple())));
functionPassManager->add(new llvm::DataLayoutPass());


FWIW the new PassManager probably isn’t quite ready yet, as I understand it, so you may be best off sticking with the legacy stuff for now. The naming’s perhaps a bit unfortunate, but was chosen this way to reduce some of the renaming churn, if I recall correctly (though I can’t quite recall exactly why/how).

Just started playing catchup to trunk myself. It seems that createBasicAliasAnalysisPass() is now createBasicAAWrapperPass().