@@ -185,10 +185,6 @@ class PassManagerBuilderWrapper : public PassManagerBuilder {
185
185
};
186
186
}
187
187
188
- static void addOmpSsPass (const PassManagerBuilder &Builder, PassManagerBase &PM) {
189
- PM.add (createOmpSsPass ());
190
- }
191
-
192
188
static void addObjCARCAPElimPass (const PassManagerBuilder &Builder, PassManagerBase &PM) {
193
189
if (Builder.OptLevel > 0 )
194
190
PM.add (createObjCARCAPElimPass ());
@@ -619,13 +615,6 @@ void EmitAssemblyHelper::CreatePasses(legacy::PassManager &MPM,
619
615
if (TM)
620
616
TM->adjustPassManager (PMBuilder);
621
617
622
- if (LangOpts.OmpSs ) {
623
- PMBuilder.addExtension (PassManagerBuilder::EP_ModuleOptimizerEarly,
624
- addOmpSsPass);
625
- PMBuilder.addExtension (PassManagerBuilder::EP_EnabledOnOptLevel0,
626
- addOmpSsPass);
627
- }
628
-
629
618
if (CodeGenOpts.DebugInfoForProfiling ||
630
619
!CodeGenOpts.SampleProfileFile .empty ())
631
620
PMBuilder.addExtension (PassManagerBuilder::EP_EarlyAsPossible,
@@ -863,6 +852,16 @@ void EmitAssemblyHelper::EmitAssembly(BackendAction Action,
863
852
if (TM)
864
853
TheModule->setDataLayout (TM->createDataLayout ());
865
854
855
+ legacy::PassManager EarlyPerModulePasses;
856
+ // TODO: Do we need this?
857
+ EarlyPerModulePasses.add (
858
+ createTargetTransformInfoWrapperPass (getTargetIRAnalysis ()));
859
+
860
+ if (LangOpts.OmpSs ) {
861
+ if (!CodeGenOpts.DisableLLVMPasses )
862
+ EarlyPerModulePasses.add (createOmpSsPass ());
863
+ }
864
+
866
865
legacy::PassManager PerModulePasses;
867
866
PerModulePasses.add (
868
867
createTargetTransformInfoWrapperPass (getTargetIRAnalysis ()));
@@ -936,6 +935,12 @@ void EmitAssemblyHelper::EmitAssembly(BackendAction Action,
936
935
// Run passes. For now we do all passes at once, but eventually we
937
936
// would like to have the option of streaming code generation.
938
937
938
+ {
939
+ PrettyStackTraceString CrashInfo (" Early per-module transformation" );
940
+ llvm::TimeTraceScope TimeScope (" EarlyPerModulePasses" );
941
+ EarlyPerModulePasses.run (*TheModule);
942
+ }
943
+
939
944
{
940
945
PrettyStackTraceString CrashInfo (" Per-function optimization" );
941
946
llvm::TimeTraceScope TimeScope (" PerFunctionPasses" );
0 commit comments