@@ -551,6 +551,8 @@ template <typename DerivedT, typename TargetMachineT> class CodeGenPassBuilder {
551551 // / Add standard basic block placement passes.
552552 void addBlockPlacement (AddMachinePass &) const ;
553553
554+ void addPostBBSections (AddMachinePass &) const {}
555+
554556 using CreateMCStreamer =
555557 std::function<Expected<std::unique_ptr<MCStreamer>>(MCContext &)>;
556558 void addAsmPrinter (AddMachinePass &, CreateMCStreamer) const {
@@ -805,7 +807,6 @@ void CodeGenPassBuilder<Derived, TargetMachineT>::addIRPasses(
805807 // TODO: add a pass insertion point here
806808 addPass (GCLoweringPass ());
807809 addPass (ShadowStackGCLoweringPass ());
808- addPass (LowerConstantIntrinsicsPass ());
809810
810811 // Make sure that no unreachable blocks are instruction selected.
811812 addPass (UnreachableBlockElimPass ());
@@ -1111,6 +1112,8 @@ Error CodeGenPassBuilder<Derived, TargetMachineT>::addMachinePasses(
11111112 addPass (MachineOutlinerPass (Opt.EnableMachineOutliner ));
11121113 }
11131114
1115+ derived ().addPostBBSections (addPass);
1116+
11141117 addPass (StackFrameLayoutAnalysisPass ());
11151118
11161119 // Add passes that directly emit MI after all other MI passes.
@@ -1297,6 +1300,7 @@ void CodeGenPassBuilder<Derived, TargetMachineT>::addOptimizedRegAlloc(
12971300 // addRegAssignmentOptimized did not add a reg alloc pass, so do nothing.
12981301 return ;
12991302 }
1303+ addPass (StackSlotColoringPass ());
13001304 // Allow targets to expand pseudo instructions depending on the choice of
13011305 // registers before MachineCopyPropagation.
13021306 derived ().addPostRewrite (addPass);
@@ -1319,6 +1323,7 @@ void CodeGenPassBuilder<Derived, TargetMachineT>::addOptimizedRegAlloc(
13191323template <typename Derived, typename TargetMachineT>
13201324void CodeGenPassBuilder<Derived, TargetMachineT>::addMachineLateOptimization(
13211325 AddMachinePass &addPass) const {
1326+ addPass (MachineLateInstrsCleanupPass ());
13221327 // Branch folding must be run after regalloc and prolog/epilog insertion.
13231328 addPass (BranchFolderPass (Opt.EnableTailMerge ));
13241329
@@ -1329,9 +1334,6 @@ void CodeGenPassBuilder<Derived, TargetMachineT>::addMachineLateOptimization(
13291334 if (!TM.requiresStructuredCFG ())
13301335 addPass (TailDuplicatePass ());
13311336
1332- // Cleanup of redundant (identical) address/immediate loads.
1333- addPass (MachineLateInstrsCleanupPass ());
1334-
13351337 // Copy propagation.
13361338 addPass (MachineCopyPropagationPass ());
13371339}
0 commit comments