Skip to content

Commit 25cbe77

Browse files
authored
Merge pull request #78068 from eeckstein/copy-to-borrow-optimization
Optimizer: add an optimization to remove `copy_value` of a borrowed value.
2 parents acb2a44 + dd78dc7 commit 25cbe77

File tree

10 files changed

+474
-306
lines changed

10 files changed

+474
-306
lines changed

SwiftCompilerSources/Sources/Optimizer/DataStructures/InstructionRange.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,11 @@ struct InstructionRange : CustomStringConvertible, NoReflectionChildren {
5959
self.inExclusiveRange.insert(beginInst)
6060
}
6161

62+
init<S: Sequence>(begin beginInst: Instruction, ends: S, _ context: some Context) where S.Element: Instruction {
63+
self = InstructionRange(begin: beginInst, context)
64+
insert(contentsOf: ends)
65+
}
66+
6267
init(for value: Value, _ context: some Context) {
6368
self = InstructionRange(begin: InstructionRange.beginningInstruction(for: value), context)
6469
}

SwiftCompilerSources/Sources/Optimizer/FunctionPasses/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@ swift_compiler_sources(Optimizer
1515
ClosureSpecialization.swift
1616
ComputeEscapeEffects.swift
1717
ComputeSideEffects.swift
18+
CopyToBorrowOptimization.swift
1819
DeadStoreElimination.swift
1920
DeinitDevirtualizer.swift
2021
InitializeStaticGlobals.swift
2122
LetPropertyLowering.swift
2223
LifetimeDependenceDiagnostics.swift
2324
LifetimeDependenceInsertion.swift
2425
LifetimeDependenceScopeFixup.swift
25-
LoadCopyToBorrowOptimization.swift
2626
ObjectOutliner.swift
2727
ObjCBridgingOptimization.swift
2828
MergeCondFails.swift

0 commit comments

Comments
 (0)