Files
swift-mirror/test/AutoDiff/Serialization/differentiable_function.swift
Dan Zheng 1308fc69c5 [AutoDiff] Simplify conditions enabling differentiable programming. (#30765)
Previously, two conditions were necessary to enable differentiable programming:
- Using the `-enable-experimental-differentiable-programming` frontend flag.
- Importing the `_Differentiation` module.

Importing the `_Differentiation` module is the true condition because it
contains the required compiler-known `Differentiable` protocol. The frontend
flag is redundant and cumbersome.

Now, the frontend flag is removed.
Importing `_Differentiation` is the only condition.
2020-04-02 03:24:03 -07:00

18 lines
765 B
Swift

// RUN: %empty-directory(%t)
// RUN: %target-swift-frontend %s -emit-module -parse-as-library -o %t
// RUN: llvm-bcanalyzer %t/differentiable_function.swiftmodule | %FileCheck %s -check-prefix=BCANALYZER
// RUN: %target-sil-opt -disable-sil-linking -enable-sil-verify-all %t/differentiable_function.swiftmodule -o - | %FileCheck %s
// BCANALYZER-NOT: UnknownCode
import _Differentiation
func a(_ f: @differentiable (Float) -> Float) {}
// CHECK: func a(_ f: @differentiable (Float) -> Float)
func b(_ f: @differentiable(linear) (Float) -> Float) {}
// CHECK: func b(_ f: @differentiable(linear) (Float) -> Float)
func c(_ f: @differentiable (Float, @noDerivative Float) -> Float) {}
// CHECK: func c(_ f: @differentiable (Float, @noDerivative Float) -> Float)