@@ -377,11 +377,6 @@ static void addSymbolRewriterPass(const CodeGenOptions &Opts,
377377 MPM ->add (createRewriteSymbolsPass (DL ));
378378}
379379
380- static void addCMSimdCFLoweringPass (const PassManagerBuilder &Builder,
381- legacy::PassManagerBase &PM ) {
382- PM .add (createCMSimdCFLoweringPass ());
383- }
384-
385380static CodeGenOpt::Level getCGOptLevel (const CodeGenOptions &CodeGenOpts) {
386381 switch (CodeGenOpts.OptimizationLevel ) {
387382 default :
@@ -584,10 +579,6 @@ void EmitAssemblyHelper::CreatePasses(legacy::PassManager &MPM,
584579 PMBuilder.addExtension (PassManagerBuilder::EP_EarlyAsPossible,
585580 addAddDiscriminatorsPass);
586581
587- if (LangOpts.MdfCM )
588- PMBuilder.addExtension (PassManagerBuilder::EP_EarlyAsPossible,
589- addCMSimdCFLoweringPass);
590-
591582 // In ObjC ARC mode, add the main ARC optimization passes.
592583 if (LangOpts.ObjCAutoRefCount ) {
593584 PMBuilder.addExtension (PassManagerBuilder::EP_EarlyAsPossible,
@@ -808,6 +799,12 @@ void EmitAssemblyHelper::EmitAssembly(BackendAction Action,
808799 if (TM )
809800 TheModule->setDataLayout (TM ->createDataLayout ());
810801
802+ // TODO: This is a temporary change, these passes will have
803+ // to be taken out in the CMFE library
804+ legacy::PassManager CMFEModulePasses;
805+ if (LangOpts.MdfCM )
806+ CMFEModulePasses.add (createCMSimdCFLoweringPass ());
807+
811808 legacy::PassManager PerModulePasses;
812809 PerModulePasses.add (
813810 createTargetTransformInfoWrapperPass (getTargetIRAnalysis ()));
@@ -898,6 +895,11 @@ void EmitAssemblyHelper::EmitAssembly(BackendAction Action,
898895 // Run passes. For now we do all passes at once, but eventually we
899896 // would like to have the option of streaming code generation.
900897
898+ {
899+ PrettyStackTraceString CrashInfo (" CMFE passes" );
900+ CMFEModulePasses.run (*TheModule);
901+ }
902+
901903 {
902904 PrettyStackTraceString CrashInfo (" Per-function optimization" );
903905
0 commit comments