Skip to content

Commit 1308fc6

Browse files
authored
[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.
1 parent e94f01d commit 1308fc6

Some content is hidden

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

43 files changed

+133
-106
lines changed

include/swift/AST/DiagnosticsSema.def

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5019,9 +5019,10 @@ NOTE(function_builder_remove_returns, none,
50195019
//------------------------------------------------------------------------------
50205020
// MARK: differentiable programming diagnostics
50215021
//------------------------------------------------------------------------------
5022-
ERROR(experimental_differentiable_programming_disabled, none,
5023-
"differentiable programming is an experimental feature that is "
5024-
"currently disabled", ())
5022+
5023+
ERROR(differentiable_programming_attr_used_without_required_module, none,
5024+
"'@%0' attribute used without importing module %1",
5025+
(StringRef, Identifier))
50255026

50265027
#ifndef DIAG_NO_UNDEF
50275028
# if defined(DIAG)

include/swift/Option/Options.td

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -498,11 +498,6 @@ def disable_bridging_pch : Flag<["-"], "disable-bridging-pch">,
498498
HelpText<"Disable automatic generation of bridging PCH files">;
499499

500500
// Experimental feature options
501-
def enable_experimental_differentiable_programming :
502-
Flag<["-"], "enable-experimental-differentiable-programming">,
503-
Flags<[FrontendOption]>,
504-
HelpText<"Enable experimental differentiable programming features">;
505-
506501
def enable_experimental_additive_arithmetic_derivation :
507502
Flag<["-"], "enable-experimental-additive-arithmetic-derivation">,
508503
Flags<[FrontendOption]>,

lib/Frontend/CompilerInvocation.cpp

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -449,13 +449,6 @@ static bool ParseLangArgs(LangOptions &Opts, ArgList &Args,
449449
if (Args.hasArg(OPT_enable_experimental_additive_arithmetic_derivation))
450450
Opts.EnableExperimentalAdditiveArithmeticDerivedConformances = true;
451451

452-
if (Args.hasArg(OPT_enable_experimental_differentiable_programming)) {
453-
Opts.EnableExperimentalDifferentiableProgramming = true;
454-
// Differentiable programming implies `AdditiveArithmetic` derived
455-
// conformances.
456-
Opts.EnableExperimentalAdditiveArithmeticDerivedConformances = true;
457-
}
458-
459452
Opts.DebuggerSupport |= Args.hasArg(OPT_debugger_support);
460453
if (Opts.DebuggerSupport)
461454
Opts.EnableDollarIdentifiers = true;

lib/Sema/DerivedConformanceAdditiveArithmetic.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,9 @@ static StringRef getMathOperatorName(MathOperator op) {
5656
bool DerivedConformance::canDeriveAdditiveArithmetic(NominalTypeDecl *nominal,
5757
DeclContext *DC) {
5858
// Experimental `AdditiveArithmetic` derivation must be enabled.
59-
auto &ctx = nominal->getASTContext();
60-
if (!ctx.LangOpts.EnableExperimentalAdditiveArithmeticDerivedConformances)
61-
return false;
59+
if (auto *SF = DC->getParentSourceFile())
60+
if (!isAdditiveArithmeticConformanceDerivationEnabled(*SF))
61+
return false;
6262
// Nominal type must be a struct. (No stored properties is okay.)
6363
auto *structDecl = dyn_cast<StructDecl>(nominal);
6464
if (!structDecl)

lib/Sema/DerivedConformanceDifferentiable.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,9 +109,9 @@ static StructDecl *getTangentVectorStructDecl(DeclContext *DC) {
109109
bool DerivedConformance::canDeriveDifferentiable(NominalTypeDecl *nominal,
110110
DeclContext *DC) {
111111
// Experimental differentiable programming must be enabled.
112-
auto &ctx = nominal->getASTContext();
113-
if (!ctx.LangOpts.EnableExperimentalDifferentiableProgramming)
114-
return false;
112+
if (auto *SF = DC->getParentSourceFile())
113+
if (!isDifferentiableProgrammingEnabled(*SF))
114+
return false;
115115
// Nominal type must be a struct or class. (No stored properties is okay.)
116116
if (!isa<StructDecl>(nominal) && !isa<ClassDecl>(nominal))
117117
return false;

lib/Sema/TypeCheckAttr.cpp

Lines changed: 14 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3906,27 +3906,21 @@ bool resolveDifferentiableAttrDifferentiabilityParameters(
39063906

39073907
/// Checks whether differentiable programming is enabled for the given
39083908
/// differentiation-related attribute. Returns true on error.
3909-
bool checkIfDifferentiableProgrammingEnabled(
3910-
ASTContext &ctx, DeclAttribute *attr) {
3909+
bool checkIfDifferentiableProgrammingEnabled(ASTContext &ctx,
3910+
DeclAttribute *attr,
3911+
DeclContext *DC) {
39113912
auto &diags = ctx.Diags;
3912-
// The experimental differentiable programming flag must be enabled.
3913-
if (!ctx.LangOpts.EnableExperimentalDifferentiableProgramming) {
3914-
diags
3915-
.diagnose(attr->getLocation(),
3916-
diag::experimental_differentiable_programming_disabled)
3917-
.highlight(attr->getRangeWithAt());
3918-
return true;
3919-
}
3913+
auto *SF = DC->getParentSourceFile();
3914+
assert(SF && "Source file not found");
39203915
// The `Differentiable` protocol must be available.
39213916
// If unavailable, the `_Differentiation` module should be imported.
3922-
if (!ctx.getProtocol(KnownProtocolKind::Differentiable)) {
3923-
diags
3924-
.diagnose(attr->getLocation(), diag::attr_used_without_required_module,
3925-
attr, ctx.Id_Differentiation)
3926-
.highlight(attr->getRangeWithAt());
3927-
return true;
3928-
}
3929-
return false;
3917+
if (isDifferentiableProgrammingEnabled(*SF))
3918+
return false;
3919+
diags
3920+
.diagnose(attr->getLocation(), diag::attr_used_without_required_module,
3921+
attr, ctx.Id_Differentiation)
3922+
.highlight(attr->getRangeWithAt());
3923+
return true;
39303924
}
39313925

39323926
IndexSubset *DifferentiableAttributeTypeCheckRequest::evaluate(
@@ -3945,7 +3939,7 @@ IndexSubset *DifferentiableAttributeTypeCheckRequest::evaluate(
39453939
auto &diags = ctx.Diags;
39463940
// `@differentiable` attribute requires experimental differentiable
39473941
// programming to be enabled.
3948-
if (checkIfDifferentiableProgrammingEnabled(ctx, attr))
3942+
if (checkIfDifferentiableProgrammingEnabled(ctx, attr, D->getDeclContext()))
39493943
return nullptr;
39503944

39513945
// Resolve the original `AbstractFunctionDecl`.
@@ -4111,7 +4105,7 @@ static bool typeCheckDerivativeAttr(ASTContext &Ctx, Decl *D,
41114105
auto &diags = Ctx.Diags;
41124106
// `@derivative` attribute requires experimental differentiable programming
41134107
// to be enabled.
4114-
if (checkIfDifferentiableProgrammingEnabled(Ctx, attr))
4108+
if (checkIfDifferentiableProgrammingEnabled(Ctx, attr, D->getDeclContext()))
41154109
return true;
41164110
auto *derivative = cast<FuncDecl>(D);
41174111
auto lookupConformance =

lib/Sema/TypeCheckType.cpp

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2263,13 +2263,17 @@ Type TypeResolver::resolveAttributedType(TypeAttributes &attrs,
22632263

22642264
DifferentiabilityKind diffKind = DifferentiabilityKind::NonDifferentiable;
22652265
if (attrs.has(TAK_differentiable)) {
2266-
if (Context.LangOpts.EnableExperimentalDifferentiableProgramming) {
2266+
auto *SF = DC->getParentSourceFile();
2267+
if (SF && isDifferentiableProgrammingEnabled(*SF)) {
22672268
diffKind = attrs.linear ? DifferentiabilityKind::Linear
22682269
: DifferentiabilityKind::Normal;
22692270
} else {
22702271
diagnoseInvalid(
22712272
repr, attrs.getLoc(TAK_differentiable),
2272-
diag::experimental_differentiable_programming_disabled);
2273+
diag::
2274+
differentiable_programming_attr_used_without_required_module,
2275+
TypeAttributes::getAttrName(TAK_differentiable),
2276+
Context.Id_Differentiation);
22732277
}
22742278
}
22752279

@@ -2311,13 +2315,17 @@ Type TypeResolver::resolveAttributedType(TypeAttributes &attrs,
23112315

23122316
DifferentiabilityKind diffKind = DifferentiabilityKind::NonDifferentiable;
23132317
if (attrs.has(TAK_differentiable)) {
2314-
if (Context.LangOpts.EnableExperimentalDifferentiableProgramming) {
2318+
auto *SF = DC->getParentSourceFile();
2319+
if (SF && isDifferentiableProgrammingEnabled(*SF)) {
23152320
diffKind = attrs.linear ? DifferentiabilityKind::Linear
23162321
: DifferentiabilityKind::Normal;
23172322
} else {
23182323
diagnoseInvalid(
23192324
repr, attrs.getLoc(TAK_differentiable),
2320-
diag::experimental_differentiable_programming_disabled);
2325+
diag::
2326+
differentiable_programming_attr_used_without_required_module,
2327+
TypeAttributes::getAttrName(TAK_differentiable),
2328+
Context.Id_Differentiation);
23212329
}
23222330
}
23232331

@@ -2440,9 +2448,13 @@ Type TypeResolver::resolveAttributedType(TypeAttributes &attrs,
24402448
}
24412449

24422450
if (attrs.has(TAK_noDerivative)) {
2443-
if (!Context.LangOpts.EnableExperimentalDifferentiableProgramming) {
2444-
diagnose(attrs.getLoc(TAK_noDerivative),
2445-
diag::experimental_differentiable_programming_disabled);
2451+
auto *SF = DC->getParentSourceFile();
2452+
if (SF && !isDifferentiableProgrammingEnabled(*SF)) {
2453+
diagnose(
2454+
attrs.getLoc(TAK_noDerivative),
2455+
diag::differentiable_programming_attr_used_without_required_module,
2456+
TypeAttributes::getAttrName(TAK_noDerivative),
2457+
Context.Id_Differentiation);
24462458
} else if (!isParam) {
24472459
// @noDerivative is only valid on parameters.
24482460
diagnose(attrs.getLoc(TAK_noDerivative),
@@ -2577,7 +2589,7 @@ bool TypeResolver::resolveASTFunctionTypeParams(
25772589
if (auto *attrTypeRepr = dyn_cast<AttributedTypeRepr>(eltTypeRepr)) {
25782590
if (attrTypeRepr->getAttrs().has(TAK_noDerivative)) {
25792591
if (diffKind == DifferentiabilityKind::NonDifferentiable &&
2580-
Context.LangOpts.EnableExperimentalDifferentiableProgramming)
2592+
isDifferentiableProgrammingEnabled(*DC->getParentSourceFile()))
25812593
diagnose(eltTypeRepr->getLoc(),
25822594
diag::attr_only_on_parameters_of_differentiable,
25832595
"@noDerivative")

lib/Sema/TypeChecker.cpp

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -415,6 +415,35 @@ void swift::performWholeModuleTypeChecking(SourceFile &SF) {
415415
#endif
416416
}
417417

418+
bool swift::isDifferentiableProgrammingEnabled(SourceFile &SF) {
419+
auto &ctx = SF.getASTContext();
420+
// Return true if differentiable programming is explicitly enabled.
421+
if (ctx.LangOpts.EnableExperimentalDifferentiableProgramming)
422+
return true;
423+
// Otherwise, return true iff the `_Differentiation` module is imported in
424+
// the given source file.
425+
bool importsDifferentiationModule = false;
426+
for (auto import : namelookup::getAllImports(&SF)) {
427+
if (import.second->getName() == ctx.Id_Differentiation) {
428+
importsDifferentiationModule = true;
429+
break;
430+
}
431+
}
432+
return importsDifferentiationModule;
433+
}
434+
435+
bool swift::isAdditiveArithmeticConformanceDerivationEnabled(SourceFile &SF) {
436+
auto &ctx = SF.getASTContext();
437+
// Return true if `AdditiveArithmetic` derived conformances are explicitly
438+
// enabled.
439+
if (ctx.LangOpts.EnableExperimentalAdditiveArithmeticDerivedConformances)
440+
return true;
441+
// Otherwise, return true iff differentiable programming is enabled.
442+
// Differentiable programming depends on `AdditiveArithmetic` derived
443+
// conformances.
444+
return isDifferentiableProgrammingEnabled(SF);
445+
}
446+
418447
void swift::checkInconsistentImplementationOnlyImports(ModuleDecl *MainModule) {
419448
bool hasAnyImplementationOnlyImports =
420449
llvm::any_of(MainModule->getFiles(), [](const FileUnit *F) -> bool {

lib/Sema/TypeChecker.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1520,6 +1520,12 @@ bool isMemberOperator(FuncDecl *decl, Type type);
15201520
/// Complain if @objc or dynamic is used without importing Foundation.
15211521
void diagnoseAttrsRequiringFoundation(SourceFile &SF);
15221522

1523+
/// Returns `true` iff differentiable programming is enabled.
1524+
bool isDifferentiableProgrammingEnabled(SourceFile &SF);
1525+
1526+
/// Returns `true` iff `AdditiveArithmetic` derived conformances are enabled.
1527+
bool isAdditiveArithmeticConformanceDerivationEnabled(SourceFile &SF);
1528+
15231529
/// Diagnose any Objective-C method overrides that aren't reflected
15241530
/// as overrides in Swift.
15251531
bool diagnoseUnintendedObjCMethodOverrides(SourceFile &sf);

stdlib/public/Differentiation/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,5 @@ add_swift_target_library(swift_Differentiation ${SWIFT_STDLIB_LIBRARY_BUILD_TYPE
1818
SWIFT_COMPILE_FLAGS
1919
${SWIFT_STANDARD_LIBRARY_SWIFT_FLAGS}
2020
-parse-stdlib
21-
-Xfrontend -enable-experimental-differentiable-programming
2221
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
2322
INSTALL_IN_COMPONENT stdlib)

test/AutoDiff/IRGen/differentiable_function.sil

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-swift-frontend -enable-experimental-differentiable-programming -emit-ir %s | %FileCheck %s
1+
// RUN: %target-swift-frontend -emit-ir %s | %FileCheck %s
22

33
sil_stage raw
44

test/AutoDiff/IRGen/differentiable_function_type.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-swift-frontend -enable-experimental-differentiable-programming -emit-ir -g %s
1+
// RUN: %target-swift-frontend -emit-ir -g %s
22

33
// TF-1225: IRGenDebugInfo crash when reconstructing `@differentiable` and
44
// `@differentiable(linear)` function types.

test/AutoDiff/ModuleInterface/differentiation.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-swift-frontend -typecheck -emit-module-interface-path %t.swiftinterface -enable-library-evolution -enable-experimental-differentiable-programming %s
1+
// RUN: %target-swift-frontend -typecheck -emit-module-interface-path %t.swiftinterface -enable-library-evolution %s
22
// RUN: %FileCheck %s < %t.swiftinterface
33

44
import _Differentiation

test/AutoDiff/SIL/Parse/sildeclref.sil

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-sil-opt -enable-experimental-differentiable-programming %s -module-name=sildeclref_parse | %target-sil-opt -enable-experimental-differentiable-programming -module-name=sildeclref_parse | %FileCheck %s
1+
// RUN: %target-sil-opt %s -module-name=sildeclref_parse | %target-sil-opt -module-name=sildeclref_parse | %FileCheck %s
22

33
// Parse AutoDiff derivative SILDeclRefs via `witness_method` and `class_method` instructions.
44

test/AutoDiff/SIL/Serialization/differentiable_function.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
// RUN: %empty-directory(%t)
2-
// RUN: %target-sil-opt -enable-experimental-differentiable-programming %s -emit-sib -o %t/tmp.sib -module-name main
3-
// RUN: %target-sil-opt -enable-experimental-differentiable-programming %t/tmp.sib -o %t/tmp.sil -module-name main
2+
// RUN: %target-sil-opt %s -emit-sib -o %t/tmp.sib -module-name main
3+
// RUN: %target-sil-opt %t/tmp.sib -o %t/tmp.sil -module-name main
44
// NOTE(SR-12090): Workaround because import declarations are not preserved in .sib files.
55
// RUN: sed -e 's/import Swift$/import Swift; import _Differentiation/' %t/tmp.sil > %t/tmp_fixed.sil
6-
// RUN: %target-sil-opt -enable-experimental-differentiable-programming %t/tmp_fixed.sil -module-name main -emit-sorted-sil | %FileCheck %s
6+
// RUN: %target-sil-opt %t/tmp_fixed.sil -module-name main -emit-sorted-sil | %FileCheck %s
77

88
// NOTE(SR-12090): `shell` is required only to run `sed` as a SR-12090 workaround.
99
// REQUIRES: shell

test/AutoDiff/SIL/differentiable_function_inst.sil

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
// Round-trip parsing/printing test.
22

3-
// RUN: %target-sil-opt -enable-experimental-differentiable-programming %s -emit-sorted-sil | %FileCheck %s --check-prefix=CHECK-SIL
3+
// RUN: %target-sil-opt %s -emit-sorted-sil | %FileCheck %s --check-prefix=CHECK-SIL
44

55
// Round-trip serialization-deserialization test.
66

77
// RUN: %empty-directory(%t)
8-
// RUN: %target-sil-opt -enable-experimental-differentiable-programming %s -emit-sib -o %t/tmp.sib -module-name main
9-
// RUN: %target-sil-opt -enable-experimental-differentiable-programming %t/tmp.sib -o %t/tmp.sil -module-name main
8+
// RUN: %target-sil-opt %s -emit-sib -o %t/tmp.sib -module-name main
9+
// RUN: %target-sil-opt %t/tmp.sib -o %t/tmp.sil -module-name main
1010
// NOTE(SR-12090): Workaround because import declarations are not preserved in .sib files.
1111
// RUN: sed -e 's/import Swift$/import Swift; import _Differentiation/' %t/tmp.sil > %t/tmp_fixed.sil
12-
// RUN: %target-sil-opt -enable-experimental-differentiable-programming %t/tmp_fixed.sil -module-name main -emit-sorted-sil | %FileCheck %s --check-prefix=CHECK-SIL
12+
// RUN: %target-sil-opt %t/tmp_fixed.sil -module-name main -emit-sorted-sil | %FileCheck %s --check-prefix=CHECK-SIL
1313

1414
// IRGen test.
1515

16-
// RUN: %target-swift-frontend -enable-experimental-differentiable-programming -emit-ir %s | %FileCheck %s --check-prefix=CHECK-IRGEN
16+
// RUN: %target-swift-frontend -emit-ir %s | %FileCheck %s --check-prefix=CHECK-IRGEN
1717

1818
// NOTE(SR-12090): `shell` is required only to run `sed` as a SR-12090 workaround.
1919
// REQUIRES: shell

test/AutoDiff/SIL/linear_function_inst.sil

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
// Round-trip parsing/printing test.
22

3-
// RUN: %target-sil-opt -enable-experimental-differentiable-programming %s -emit-sorted-sil | %FileCheck %s --check-prefix=CHECK-SIL
3+
// RUN: %target-sil-opt %s -emit-sorted-sil | %FileCheck %s --check-prefix=CHECK-SIL
44

55
// Round-trip serialization-deserialization test.
66

77
// RUN: %empty-directory(%t)
8-
// RUN: %target-sil-opt -enable-experimental-differentiable-programming %s -emit-sib -o %t/tmp.sib -module-name main
9-
// RUN: %target-sil-opt -enable-experimental-differentiable-programming %t/tmp.sib -o %t/tmp.sil -module-name main
8+
// RUN: %target-sil-opt %s -emit-sib -o %t/tmp.sib -module-name main
9+
// RUN: %target-sil-opt %t/tmp.sib -o %t/tmp.sil -module-name main
1010
// NOTE(SR-12090): Workaround because import declarations are not preserved in .sib files.
1111
// RUN: sed -e 's/import Swift$/import Swift; import _Differentiation/' %t/tmp.sil > %t/tmp_fixed.sil
12-
// RUN: %target-sil-opt -enable-experimental-differentiable-programming %t/tmp_fixed.sil -module-name main -emit-sorted-sil | %FileCheck %s --check-prefix=CHECK-SIL
12+
// RUN: %target-sil-opt %t/tmp_fixed.sil -module-name main -emit-sorted-sil | %FileCheck %s --check-prefix=CHECK-SIL
1313

1414

1515
sil_stage raw

test/AutoDiff/SILGen/autodiff_builtins.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-swift-frontend -parse-stdlib -emit-silgen -enable-experimental-differentiable-programming %s | %FileCheck %s
1+
// RUN: %target-swift-frontend -parse-stdlib -emit-silgen %s | %FileCheck %s
22

33
import _Differentiation
44
import Swift

test/AutoDiff/SILGen/differentiable_function.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-swift-frontend -emit-silgen -enable-experimental-differentiable-programming %s | %FileCheck %s
1+
// RUN: %target-swift-frontend -emit-silgen %s | %FileCheck %s
22

33
// Test SILGen for `@differentiable` function typed values.
44

test/AutoDiff/SILGen/mangling.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-swift-frontend -enable-experimental-differentiable-programming -module-name mangling -Xllvm -sil-full-demangle %s -emit-silgen | %FileCheck %s
1+
// RUN: %target-swift-frontend -module-name mangling -Xllvm -sil-full-demangle %s -emit-silgen | %FileCheck %s
22

33
// Note: adapted from test/SILGen/mangling.swift.
44

test/AutoDiff/SILGen/noderivative_attr.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-swift-frontend -enable-experimental-differentiable-programming -emit-silgen -verify %s | %FileCheck %s
1+
// RUN: %target-swift-frontend -emit-silgen -verify %s | %FileCheck %s
22
// REQUIRES: asserts
33

44
import _Differentiation

test/AutoDiff/SILGen/noderivative_attr_cross_file.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-swift-frontend -enable-experimental-differentiable-programming -emit-silgen %S/Inputs/noderivative_attr_other_file.swift %s | %FileCheck %s
1+
// RUN: %target-swift-frontend -emit-silgen %S/Inputs/noderivative_attr_other_file.swift %s | %FileCheck %s
22

33
import _Differentiation
44

test/AutoDiff/SILGen/reabstraction.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-swift-frontend -emit-silgen -enable-experimental-differentiable-programming %s | %FileCheck %s
1+
// RUN: %target-swift-frontend -emit-silgen %s | %FileCheck %s
22

33
import _Differentiation
44

test/AutoDiff/SILGen/sil_differentiability_witness.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-swift-frontend -emit-silgen -enable-experimental-differentiable-programming %s | %target-sil-opt -enable-experimental-differentiable-programming | %FileCheck %s
1+
// RUN: %target-swift-frontend -emit-silgen %s | %target-sil-opt | %FileCheck %s
22

33
// Test SIL differentiability witness SIL generation.
44

test/AutoDiff/SILGen/vtable.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-swift-frontend -enable-experimental-differentiable-programming -emit-silgen %s | %FileCheck %s
1+
// RUN: %target-swift-frontend -emit-silgen %s | %FileCheck %s
22

33
// Test derivative function vtable entries for `@differentiable` class members:
44
// - Methods.

test/AutoDiff/SILGen/witness_table.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-swift-frontend -enable-experimental-differentiable-programming -emit-silgen %s | %FileCheck %s
1+
// RUN: %target-swift-frontend -emit-silgen %s | %FileCheck %s
22

33
// Test derivative function witness table entries for `@differentiable` protocol requirements.
44

test/AutoDiff/Sema/DerivedConformances/class_differentiable.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-swift-frontend -enable-experimental-differentiable-programming -typecheck -verify -primary-file %s %S/Inputs/class_differentiable_other_module.swift
1+
// RUN: %target-swift-frontend -typecheck -verify -primary-file %s %S/Inputs/class_differentiable_other_module.swift
22

33
import _Differentiation
44

test/AutoDiff/Sema/DerivedConformances/derived_differentiable.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-swift-frontend -enable-experimental-differentiable-programming -print-ast %s | %FileCheck %s --check-prefix=CHECK-AST
1+
// RUN: %target-swift-frontend -print-ast %s | %FileCheck %s --check-prefix=CHECK-AST
22

33
import _Differentiation
44

test/AutoDiff/Sema/DerivedConformances/struct_additive_arithmetic.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-swift-frontend -enable-experimental-differentiable-programming -typecheck -verify -primary-file %s %S/Inputs/struct_additive_arithmetic_other_module.swift
1+
// RUN: %target-swift-frontend -typecheck -verify -primary-file %s %S/Inputs/struct_additive_arithmetic_other_module.swift
22

33
import _Differentiation
44

0 commit comments

Comments
 (0)