Skip to content

Commit 930fbea

Browse files
authored
Merge branch 'tensorflow' into tensorflow-merge
2 parents a674688 + 06a93b8 commit 930fbea

File tree

4 files changed

+27
-19
lines changed

4 files changed

+27
-19
lines changed

lib/SILOptimizer/Mandatory/Differentiation.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3828,6 +3828,12 @@ class AdjointEmitter final : public SILInstructionVisitor<AdjointEmitter> {
38283828
type.getCategory());
38293829
}
38303830

3831+
/// Substitutes all replacement types of the given substitution map using the
3832+
/// adjoint function's substitution map.
3833+
SubstitutionMap remapSubstitutionMap(SubstitutionMap substMap) {
3834+
return substMap.subst(getAdjoint().getForwardingSubstitutionMap());
3835+
}
3836+
38313837
//--------------------------------------------------------------------------//
38323838
// Managed value mapping
38333839
//--------------------------------------------------------------------------//
@@ -4654,7 +4660,8 @@ class AdjointEmitter final : public SILInstructionVisitor<AdjointEmitter> {
46544660
pullbackType, *applyInfo.originalPullbackType);
46554661
auto *thunkRef = builder.createFunctionRef(loc, thunk);
46564662
pullback = builder.createPartialApply(
4657-
loc, thunkRef, thunk->getForwardingSubstitutionMap(),
4663+
loc, thunkRef,
4664+
remapSubstitutionMap(thunk->getForwardingSubstitutionMap()),
46584665
{pullback}, pullbackType->getCalleeConvention());
46594666
}
46604667
args.push_back(seed);

test/AutoDiff/autodiff_diagnostics.swift

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -170,23 +170,6 @@ struct TF_305 : Differentiable {
170170
}
171171
}
172172

173-
protocol TF_534_Layer : Differentiable {
174-
associatedtype Input : Differentiable
175-
associatedtype Output : Differentiable
176-
177-
@differentiable
178-
func callAsFunction(_ input: Input) -> Output
179-
}
180-
struct TF_534_Tensor<Scalar> : Differentiable {}
181-
182-
func TF_534<Model: TF_534_Layer>(
183-
_ model: inout Model, inputs: Model.Input
184-
) -> TF_534_Tensor<Float> where Model.Output == TF_534_Tensor<Float> {
185-
return valueWithPullback(at: model) { model -> Model.Output in
186-
return model(inputs)
187-
}.0
188-
}
189-
190173
//===----------------------------------------------------------------------===//
191174
// Classes and existentials (not yet supported)
192175
//===----------------------------------------------------------------------===//

test/AutoDiff/generics.swift

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,4 +151,22 @@ func TF_523_f(_ x: TF_523_Struct) -> Float {
151151
return x.a * 2
152152
}
153153

154+
// TF_534: Thunk substitution map remapping.
155+
protocol TF_534_Layer : Differentiable {
156+
associatedtype Input : Differentiable
157+
associatedtype Output : Differentiable
158+
159+
@differentiable
160+
func callAsFunction(_ input: Input) -> Output
161+
}
162+
struct TF_534_Tensor<Scalar> : Differentiable {}
163+
164+
func TF_534<Model: TF_534_Layer>(
165+
_ model: inout Model, inputs: Model.Input
166+
) -> TF_534_Tensor<Float> where Model.Output == TF_534_Tensor<Float> {
167+
return valueWithPullback(at: model) { model -> Model.Output in
168+
return model(inputs)
169+
}.0
170+
}
171+
154172
// TODO: add more tests.

utils/update_checkout/update-checkout-config.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -401,7 +401,7 @@
401401
"clang-tools-extra": "swift-DEVELOPMENT-SNAPSHOT-2019-06-23-a",
402402
"libcxx": "swift-DEVELOPMENT-SNAPSHOT-2019-06-23-a",
403403
"tensorflow": "ebc41609e27dcf0998d8970e77a2e1f53e13ac86",
404-
"tensorflow-swift-apis": "6045403998c155382466ece924a60b4cfe9cd466",
404+
"tensorflow-swift-apis": "380a95c3689bcd2d55df00a28b4640a7a4937c17",
405405
"indexstore-db": "swift-DEVELOPMENT-SNAPSHOT-2019-06-23-a",
406406
"sourcekit-lsp": "swift-DEVELOPMENT-SNAPSHOT-2019-06-23-a"
407407
}

0 commit comments

Comments
 (0)