mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Revert "Revert "Optimizer: improve the load-copy-to-borrow optimization and implement it in swift""
This reverts commit 0666c446ec.
This commit is contained in:
@@ -517,6 +517,7 @@ void addFunctionPasses(SILPassPipelinePlan &P,
|
||||
P.addCopyPropagation();
|
||||
}
|
||||
P.addSemanticARCOpts();
|
||||
P.addLoadCopyToBorrowOptimization();
|
||||
|
||||
if (!P.getOptions().EnableOSSAModules) {
|
||||
if (P.getOptions().StopOptimizationBeforeLoweringOwnership)
|
||||
@@ -546,6 +547,7 @@ void addFunctionPasses(SILPassPipelinePlan &P,
|
||||
P.addCopyPropagation();
|
||||
}
|
||||
P.addSemanticARCOpts();
|
||||
P.addLoadCopyToBorrowOptimization();
|
||||
}
|
||||
|
||||
// Promote stack allocations to values and eliminate redundant
|
||||
@@ -574,6 +576,7 @@ void addFunctionPasses(SILPassPipelinePlan &P,
|
||||
}
|
||||
// Optimize copies created during RLE.
|
||||
P.addSemanticARCOpts();
|
||||
P.addLoadCopyToBorrowOptimization();
|
||||
|
||||
P.addCOWOpts();
|
||||
P.addPerformanceConstantPropagation();
|
||||
@@ -611,6 +614,7 @@ void addFunctionPasses(SILPassPipelinePlan &P,
|
||||
P.addCopyPropagation();
|
||||
}
|
||||
P.addSemanticARCOpts();
|
||||
P.addLoadCopyToBorrowOptimization();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -648,6 +652,7 @@ static void addPerfEarlyModulePassPipeline(SILPassPipelinePlan &P) {
|
||||
P.addCopyPropagation();
|
||||
}
|
||||
P.addSemanticARCOpts();
|
||||
P.addLoadCopyToBorrowOptimization();
|
||||
|
||||
// Devirtualizes differentiability witnesses into functions that reference them.
|
||||
// This unblocks many other passes' optimizations (e.g. inlining) and this is
|
||||
@@ -994,6 +999,7 @@ SILPassPipelinePlan::getPerformancePassPipeline(const SILOptions &Options) {
|
||||
P.addCopyPropagation();
|
||||
}
|
||||
P.addSemanticARCOpts();
|
||||
P.addLoadCopyToBorrowOptimization();
|
||||
}
|
||||
|
||||
P.addCrossModuleOptimization();
|
||||
|
||||
Reference in New Issue
Block a user