Skip to content

Commit 38711c6

Browse files
authored
Merge pull request #83367 from eeckstein/context-refactor
SwiftCompilerSources: move the `Context` and `MutatingContext` protocols from the Optimizer to the SIL module
2 parents 6ca4895 + 3bbba99 commit 38711c6

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+2562
-2375
lines changed

SwiftCompilerSources/Sources/Optimizer/Analysis/AliasAnalysis.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import SIL
1515

1616
extension FunctionPassContext {
1717
var aliasAnalysis: AliasAnalysis {
18-
let bridgedAA = _bridged.getAliasAnalysis()
18+
let bridgedAA = bridgedPassContext.getAliasAnalysis()
1919
return AliasAnalysis(bridged: bridgedAA, context: self)
2020
}
2121
}
@@ -113,15 +113,15 @@ struct AliasAnalysis {
113113
bridgedAliasAnalysis.mutableCachePointer.assumingMemoryBound(to: Cache.self).deinitialize(count: 1)
114114
},
115115
// getMemEffectsFn
116-
{ (bridgedCtxt: BridgedPassContext,
116+
{ (bridgedCtxt: BridgedContext,
117117
bridgedAliasAnalysis: BridgedAliasAnalysis,
118118
bridgedAddr: BridgedValue,
119119
bridgedInst: BridgedInstruction) -> BridgedMemoryBehavior in
120120
let aa = AliasAnalysis(bridged: bridgedAliasAnalysis, context: FunctionPassContext(_bridged: bridgedCtxt))
121121
return aa.getMemoryEffect(of: bridgedInst.instruction, on: bridgedAddr.value).bridged
122122
},
123123
// isObjReleasedFn
124-
{ (bridgedCtxt: BridgedPassContext,
124+
{ (bridgedCtxt: BridgedContext,
125125
bridgedAliasAnalysis: BridgedAliasAnalysis,
126126
bridgedObj: BridgedValue,
127127
bridgedInst: BridgedInstruction) -> Bool in
@@ -142,7 +142,7 @@ struct AliasAnalysis {
142142
},
143143

144144
// isAddrVisibleFromObj
145-
{ (bridgedCtxt: BridgedPassContext,
145+
{ (bridgedCtxt: BridgedContext,
146146
bridgedAliasAnalysis: BridgedAliasAnalysis,
147147
bridgedAddr: BridgedValue,
148148
bridgedObj: BridgedValue) -> Bool in
@@ -159,7 +159,7 @@ struct AliasAnalysis {
159159
},
160160

161161
// mayAliasFn
162-
{ (bridgedCtxt: BridgedPassContext,
162+
{ (bridgedCtxt: BridgedContext,
163163
bridgedAliasAnalysis: BridgedAliasAnalysis,
164164
bridgedLhs: BridgedValue,
165165
bridgedRhs: BridgedValue) -> Bool in

SwiftCompilerSources/Sources/Optimizer/DataStructures/CMakeLists.txt

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,6 @@
77
# See http://swift.org/CONTRIBUTORS.txt for Swift project authors
88

99
swift_compiler_sources(Optimizer
10-
BasicBlockRange.swift
1110
DeadEndBlocks.swift
1211
FunctionUses.swift
13-
InstructionRange.swift
14-
ReachableBlocks.swift
15-
Set.swift
16-
Stack.swift
17-
Worklist.swift)
12+
ReachableBlocks.swift)

SwiftCompilerSources/Sources/Optimizer/FunctionPasses/AllocBoxToStack.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ private func tryConvertBoxesToStack(in function: Function, _ context: FunctionPa
102102
hoistMarkUnresolvedInsts(stackAddress: stack, checkKind: .consumableAndAssignable, context)
103103
}
104104
if !promotableBoxes.isEmpty {
105-
function.fixStackNesting(context)
105+
context.fixStackNesting(in: function)
106106
}
107107

108108
return functionsToSpecialize

SwiftCompilerSources/Sources/Optimizer/FunctionPasses/ClosureSpecialization.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ let autodiffClosureSpecialization = FunctionPass(name: "autodiff-closure-special
158158
}
159159

160160
if context.needFixStackNesting {
161-
function.fixStackNesting(context)
161+
context.fixStackNesting(in: function)
162162
}
163163

164164
remainingSpecializationRounds -= 1
@@ -836,7 +836,7 @@ private extension SpecializationCloner {
836836
}
837837

838838
if (self.context.needFixStackNesting) {
839-
self.cloned.fixStackNesting(self.context)
839+
self.context.fixStackNesting(in: self.cloned)
840840
}
841841
}
842842
}

SwiftCompilerSources/Sources/Optimizer/FunctionPasses/ComputeEscapeEffects.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ let computeEscapeEffects = FunctionPass(name: "compute-escape-effects") {
7272
return
7373
}
7474

75-
context.modifyEffects(in: function) { (effects: inout FunctionEffects) in
75+
function.modifyEffects(context) { (effects: inout FunctionEffects) in
7676
effects.escapeEffects.arguments = newEffects
7777
}
7878
}

SwiftCompilerSources/Sources/Optimizer/FunctionPasses/ComputeSideEffects.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ let computeSideEffects = FunctionPass(name: "compute-side-effects") {
6969
}
7070

7171
// Finally replace the function's side effects.
72-
context.modifyEffects(in: function) { (effects: inout FunctionEffects) in
72+
function.modifyEffects(context) { (effects: inout FunctionEffects) in
7373
let globalEffects = function.isProgramTerminationPoint ?
7474
collectedEffects.globalEffects.forProgramTerminationPoints
7575
: collectedEffects.globalEffects

SwiftCompilerSources/Sources/Optimizer/FunctionPasses/SimplificationPasses.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ func runSimplification(on function: Function, _ context: FunctionPassContext,
110110
} while !worklist.isEmpty
111111

112112
if context.needFixStackNesting {
113-
function.fixStackNesting(context)
113+
context.fixStackNesting(in: function)
114114
}
115115

116116
return changed

SwiftCompilerSources/Sources/Optimizer/FunctionPasses/StackPromotion.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ let stackPromotion = FunctionPass(name: "stack-promotion") {
5757
}
5858
if needFixStackNesting {
5959
// Make sure that all stack allocating instructions are nested correctly.
60-
function.fixStackNesting(context)
60+
context.fixStackNesting(in: function)
6161
}
6262
}
6363

SwiftCompilerSources/Sources/Optimizer/InstructionSimplification/SimplifyBuiltin.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ extension BuiltinInst : OnoneSimplifiable, SILCombineSimplifiable {
5656
case .Xor:
5757
simplifyNegation(context)
5858
default:
59-
if let literal = constantFold(context) {
59+
if let literal = context.constantFold(builtin: self) {
6060
uses.replaceAll(with: literal, context)
6161
}
6262
}
@@ -240,7 +240,7 @@ private extension BuiltinInst {
240240
if constantFoldStringNullPointerCheck(isEqual: isEqual, context) {
241241
return
242242
}
243-
if let literal = constantFold(context) {
243+
if let literal = context.constantFold(builtin: self) {
244244
uses.replaceAll(with: literal, context)
245245
}
246246
}

SwiftCompilerSources/Sources/Optimizer/ModulePasses/StackProtection.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ private struct StackProtectionOptimization {
113113
process(instruction: inst, in: function, mustFixStackNesting: &mustFixStackNesting, context)
114114
}
115115
if mustFixStackNesting {
116-
function.fixStackNesting(context)
116+
context.fixStackNesting(in: function)
117117
}
118118
}
119119

0 commit comments

Comments
 (0)