Add a major missing piece to the new SROA pass: aggressive splitting of
[oota-llvm.git] / lib / Transforms / IPO / PassManagerBuilder.cpp
index 66d979cf2a7e9df5669d23595a64ae54473708cb..105b2886d92ace0d006242345380f6efb1f7e622 100644 (file)
@@ -154,7 +154,10 @@ void PassManagerBuilder::populateModulePassManager(PassManagerBase &MPM) {
 
   // Start of function pass.
   // Break up aggregate allocas, using SSAUpdater.
-  MPM.add(createScalarReplAggregatesPass(-1, false));
+  if (UseNewSROA)
+    MPM.add(createSROAPass(/*RequiresDomTree*/ false));
+  else
+    MPM.add(createScalarReplAggregatesPass(-1, false));
   MPM.add(createEarlyCSEPass());              // Catch trivial redundancies
   if (!DisableSimplifyLibCalls)
     MPM.add(createSimplifyLibCallsPass());    // Library Call Optimizations