add user data to EnzymeRegisterCallHandler #2223
Closed
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.
This adds two items to the C API:
void *data
arg toEnzymeRegisterCallHandler
so users can supply their own data to the callbacksEnzymeRegisterCallHandler
andEnzymeGradientUtilsNewFromOriginal
added to the C API headerMy particular motivation for 1. is that I need access to the LLVM module pointer in my reverse callback, so the data arg allows me to pass this in. I know the LLVM C++ API has
getParent
that can be used to get the module from the original call instruction, but I'm using the LLVM C API from rust, which as far as I can see does not have this functionality. In any case, I figure it would be generally useful for users to pass arbitrary data to these callbacks.