[AutoDiff] Add differentiability_witness_function
instruction.
#27719
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
differentiability_witness_function
looks up a differentiability witnessfunction (JVP, VJP, or transpose) for a referenced function using SIL
differentiability witnesses.
The differentiability witness function kind identifies the witness function to
look up:
[jvp]
,[vjp]
, or[transpose]
.The remaining components identify the SIL differentiability witness:
generic signature is combined with the original function's generic signature
to form the full witness generic signature.
Known caveats:
DifferentiabilityWitnessFunctionInst
to store aSILFunction *
pointer to the original function becauseSILFunction
has special reference counting logic: seeSILInstruction::dropAllReferences
.DifferentiabilityWitnessFunctionInst
to directly store aSILDifferentiabilityWitness *
pointer, or store the original function name and type. Deferring exploration until changes become necessary or the right design becomes evident.The TF-866 master issue tracks all retroactive derivative registration tasks.