swift
4a4fe830 - [AutoDiff] [IRGen] Lower `@differentiable(linear)` function types. (#27661)

Commit
5 years ago
[AutoDiff] [IRGen] Lower `@differentiable(linear)` function types. (#27661) This patch adds support for lowering `@differentiable(linear)` function types to LLVM IR. * Add `SILFunctionType` transpose type calculation utility: `SILFunctionType:: getAutoDiffTransposeFunctionType`. * Refactor `TypeClassifierBase` methods used for computing recursive properties of `@differentiable` function types and eliminated the need for repeatedly checking differentiability kind. * Add `LinearDifferentiableSILFunctionTypeLowering`. Rename the original `DifferentiableSILFunctionTypeLowering` to `NormalDifferentiableSILFunctionTypeLowering` to make clear it's not for linear functions. * Add `TypeConverter::convertLinearDifferentiableFunctionType`. Rename the original `TypeConverter::convertDifferentiableFunctionType` to `TypeConverter::convertNormalDifferentiableFunctionType` to make clear it's not for linear functions. Resolves [TF-902](https://bugs.swift.org/browse/TF-902).
Author
Parents
Loading