mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
[AutoDiff upstream] [SIL] Add differentiable function instructions.
Add `differentiable_function` and `differentiable_function_extract` instructions. `differentiable_function` creates a `@differentiable` function-typed value from an original function operand and derivative function operands (optional). `differentiable_function_extract` extracts either the original or derivative function value from a `@differentiable` function. The differentiation transform canonicalizes `differentiable_function` instructions, filling in derivative function operands if missing. Resolves TF-1139 and TF-1140.
This commit is contained in:
@@ -875,6 +875,8 @@ InlineCost swift::instructionInlineCost(SILInstruction &I) {
|
||||
case SILInstructionKind::SelectValueInst:
|
||||
case SILInstructionKind::KeyPathInst:
|
||||
case SILInstructionKind::GlobalValueInst:
|
||||
case SILInstructionKind::DifferentiableFunctionInst:
|
||||
case SILInstructionKind::DifferentiableFunctionExtractInst:
|
||||
case SILInstructionKind::DifferentiabilityWitnessFunctionInst:
|
||||
#define COMMON_ALWAYS_OR_SOMETIMES_LOADABLE_CHECKED_REF_STORAGE(Name) \
|
||||
case SILInstructionKind::Name##ToRefInst: \
|
||||
|
||||
Reference in New Issue
Block a user