From 5cfd773ec9f3d666fa0a7cfaf29e13507f3ae39e Mon Sep 17 00:00:00 2001 From: Dmitry Babokin Date: Wed, 20 Mar 2013 12:34:08 +0400 Subject: [PATCH] Adding Alias Analysis phases --- opt.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/opt.cpp b/opt.cpp index ff7ee410..3b51e5fb 100644 --- a/opt.cpp +++ b/opt.cpp @@ -514,6 +514,18 @@ Optimize(llvm::Module *module, int optLevel) { llvm::initializeInstrumentation(*registry); llvm::initializeTarget(*registry); + // Setup to use LLVM default AliasAnalysis + // Ideally, we want call: + // llvm::PassManagerBuilder pm_Builder; + // pm_Builder.OptLevel = optLevel; + // pm_Builder.addInitialAliasAnalysisPasses(optPM); + // but the addInitialAliasAnalysisPasses() is a private function + // so we explicitly enable them here. + // Need to keep sync with future LLVM change + // An alternative is to call populateFunctionPassManager() + optPM.add(llvm::createTypeBasedAliasAnalysisPass(), 190); + optPM.add(llvm::createBasicAliasAnalysisPass()); + optPM.add(llvm::createGlobalDCEPass(), 200); // Early optimizations to try to reduce the total amount of code to