[ ] Note: TODO(TF-1030): This will eventually not be an error.
Test: test/AutoDiff/SILOptimizer/differentiation_diagnostics.swift (see hasImplicitlyDifferentiatedClosureDefaultArgument).
The same error was fixed for curry thunks in #77615
[ ] #54445
Note: FIXME(TF-1103): Derivative registration does not yet support @_alwaysEmitIntoClient original functions.
Test: AutoDiff/stdlib/simd.swift
[ ] #55690
Note: FIXME: Disabled due to test failure with -OTest: test/AutoDiff/validation-test/differentiable_protocol_requirements.swift
[ ] #54628
Note: TODO(TF-433): operator ?? lowers to an active try_apply.
Test: test/AutoDiff/validation-test/optional.swift
[ ] #55084
Note: TODO: Support modify accessors
Test: test/AutoDiff/validation-test/property_wrappers.swift
[ ] #77775
Note: TODO(TF-851): Uncomment the tests below after @differentiable function SILGen thunking is fixed.
Test: test/AutoDiff/SILOptimizer/generics.swift
[ ] Note: TODO: Re-enable the boolean-literal-folding pass and fix the test accordingly
Test: test/AutoDiff/SILOptimizer/activity_analysis.swift
[ ] Note: TODO(TF-956): Improve location of active enum non-differentiability errors
Test: test/AutoDiff/SILOptimizer/differentiation_control_flow_diagnostics.swift
[ ] Note: TODO(TF-788): Re-enable non-varied result warning.
Test: test/AutoDiff/SILOptimizer/differentiation_diagnostics.swift
[ ] Note: TODO(TF-482): Remove diagnostics when @differentiable attributes are also uniqued based on generic requirements.
Test: test/AutoDiff/Sema/differentiable_attr_type_checking.swift
[ ] Note: TODO(TF-650): It would be nice to diagnose protocol default implementation with missing @differentiable attribute.
Test: test/AutoDiff/Sema/differentiable_attr_type_checking.swift
[ ] Note: TODO(TF-632): Fix "'TangentVector' is not a member type of 'Self'" diagnostic. The underlying error should appear instead: "covariant 'Self' can only appear at the top level of method result type".
Test: test/AutoDiff/Sema/differentiable_attr_type_checking.swift
Marked as TODO/FIXME/etc but require discussion whether we want to address them:
Class-related:
Note: FIXME(rdar://74380324)
Test: test/AutoDiff/TBD/derivative_symbols.swift
FIXMEs are related to initializer and other special functions differentiation support
Note: TODO(TF-649): Enable @derivative to override derivatives for original declaration defined in superclass.
Test: test/AutoDiff/Sema/derivative_attr_type_checking.swift
Note: FIXME: Enable derivative registration for class property/subscript setters (https://github.com/apple/swift/issues/55542).
Test: test/AutoDiff/Sema/derivative_attr_type_checking.swift
This looks working for structs.
Note: FIXME(rdar://74380324)\
Test: test/AutoDiff/TBD/derivative_symbols.swift
The FIXME is related to the following crash:
1. Swift version 6.1-dev (LLVM 0f86f354a7bc883, Swift e6b4e0f9f171a51)
2. Compiling with effective version 4.1.50
3. While evaluating request ASTLoweringRequest(Lowering AST to SIL for module test)
6. While verifying SIL function "@$s4test5ClassCyACSfcfCTJVfSUpSr".test/AutoDiff/TBD/derivative_symbols.swift
Note: FIXME(TF-1175): Class operands should always be marked active.
Test: test/AutoDiff/validation-test/property_wrappers.swift
Forward-mode-related:
Note: TODO(TF-1254): Support forward-mode differentiation and test generated differentials.
Test: test/AutoDiff/SILOptimizer/semantic_member_accessors_sil.swift
Note: TODO(TF-1173): Move floating-point mutating operation tests to test/AutoDiff/stdlib/floating_point.swift.gyb when forward-mode differentiation supports inout parameter differentiation.
Test: test/AutoDiff/validation-test/inout_parameters.swift
Note: TODO(TF-1254): Support and test forward-mode differentiation.
Test: test/AutoDiff/validation-test/property_wrappers.swift
Note: FIXME(TF-1033): Fix forward-mode ownership error for tuple with non-active
Test: test/AutoDiff/validation-test/simple_math.swift
Linear functions related:
Note: TODO(TF-900, TF-902): Uncomment the following line to test loading a linear function from memory and direct calls to a linear function.
Test: test/AutoDiff/SILGen/differentiable_function.swift
Note: TODO: Add tests for @differentiable(_linear) functions.
Test: test/AutoDiff/IRGen/loadable_by_address.swift
Description
I've assigned preliminary priorities for the issues, but this should be revisited.
High priority:
[ ] #54214 Note: FIXME(TF-977): Fix incorrect derivative for array literal with
tuple_element_addr
elements. Test: test/AutoDiff/validation-test/array.swift[ ] Note: FIXME(TF-584): Investigate incorrect (too big) gradient values for repeat-while loops. Test: test/AutoDiff/validation-test/control_flow.swift
Medium priority:
[ ] Note: TODO(TF-1030): This will eventually not be an error. Test: test/AutoDiff/SILOptimizer/differentiation_diagnostics.swift (see
hasImplicitlyDifferentiatedClosureDefaultArgument
).The same error was fixed for curry thunks in #77615
[ ] Note: FIXME: missing reverse-mode differentiability witness for foo(_:) Test: test/AutoDiff/SILGen/has_symbol.swift
[ ] Note: FIXME(TF-1176): Some values are incorrectly not marked as active:
%16
, etc. Test: test/AutoDiff/SILOptimizer/activity_analysis.swiftThis is probably class-related, but need to ensure that for non-class cases the issue is not present.
[ ] #54231 Note: TODO(TF-982): Lift this restriction and add proper support. Test: test/AutoDiff/Sema/derivative_attr_type_checking.swift
[ ] Note: FIXME(TF-284): Fix unexpected diagnostic. Test: AutoDiff/Sema/differentiable_attr_type_checking.swift
[ ] #54445 Note: FIXME(TF-1103): Derivative registration does not yet support
@_alwaysEmitIntoClient
original functions. Test: AutoDiff/stdlib/simd.swift[ ] #55690 Note: FIXME: Disabled due to test failure with
-O
Test: test/AutoDiff/validation-test/differentiable_protocol_requirements.swift[ ] #54628 Note: TODO(TF-433): operator
??
lowers to an activetry_apply
. Test: test/AutoDiff/validation-test/optional.swift[ ] #55084 Note: TODO: Support
modify
accessors Test: test/AutoDiff/validation-test/property_wrappers.swiftLow priority:
[ ] #77762 Notes:
true
because it crashesfalse
because it crashesTests:
[ ] #77775 Note: TODO(TF-851): Uncomment the tests below after
@differentiable
function SILGen thunking is fixed. Test: test/AutoDiff/SILOptimizer/generics.swift[ ] Note: TODO: Re-enable the boolean-literal-folding pass and fix the test accordingly Test: test/AutoDiff/SILOptimizer/activity_analysis.swift
[ ] Note: TODO(TF-956): Improve location of active enum non-differentiability errors Test: test/AutoDiff/SILOptimizer/differentiation_control_flow_diagnostics.swift
[ ] Note: TODO(TF-957): Improve non-differentiability errors for for-in loops Test: test/AutoDiff/SILOptimizer/differentiation_control_flow_diagnostics.swift
[ ] Note: TODO(TF-788): Re-enable non-varied result warning. Test: test/AutoDiff/SILOptimizer/differentiation_diagnostics.swift
[ ] Note: TODO(TF-482): Remove diagnostics when
@differentiable
attributes are also uniqued based on generic requirements. Test: test/AutoDiff/Sema/differentiable_attr_type_checking.swift[ ] Note: TODO(TF-650): It would be nice to diagnose protocol default implementation with missing
@differentiable
attribute. Test: test/AutoDiff/Sema/differentiable_attr_type_checking.swift[ ] Note: TODO(TF-632): Fix "'TangentVector' is not a member type of 'Self'" diagnostic. The underlying error should appear instead: "covariant 'Self' can only appear at the top level of method result type". Test: test/AutoDiff/Sema/differentiable_attr_type_checking.swift
[ ] Note: FIXME: Enable test for all platforms after debugging (https://github.com/apple/swift/issues/55186). Test: test/AutoDiff/validation-test/control_flow.swift
[ ] Note: TODO(TF-1065): Consider disallowing qualified operators / operator names Tests:
Existing issues which require discussion about priorities, semantics, etc:
Class-related:
65012 and its sub-issues.
52130 and its sub-issues.
Forward-mode-related:
55906
55650
Entire tests which require discussion whether we want to address tech debt for them:
Class-related:
Forward-mode-related:
Marked as TODO/FIXME/etc but require discussion whether we want to address them:
Class-related:
modify
accessor derivative values. Test: test/AutoDiff/validation-test/inout_parameters.swift@derivative
to override derivatives for original declaration defined in superclass. Test: test/AutoDiff/Sema/derivative_attr_type_checking.swiftForward-mode-related:
test/AutoDiff/stdlib/floating_point.swift.gyb
when forward-mode differentiation supportsinout
parameter differentiation. Test: test/AutoDiff/validation-test/inout_parameters.swiftLinear functions related:
@differentiable(_linear)
functions. Test: test/AutoDiff/IRGen/loadable_by_address.swiftAdditional information
No response