Skip to content

Commit f940df8

Browse files
authored
shadow alloc rewriter (#1583)
1 parent 7284903 commit f940df8

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

enzyme/Enzyme/CallDerivatives.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@
2828

2929
using namespace llvm;
3030

31+
extern "C" {
32+
void (*EnzymeShadowAllocRewrite)(LLVMValueRef) = nullptr;
33+
}
34+
3135
template <class T>
3236
void AdjointGenerator<T>::handleMPI(llvm::CallInst &call,
3337
llvm::Function *called,
@@ -2979,6 +2983,12 @@ bool AdjointGenerator<T>::handleKnownCallDerivatives(
29792983
#endif
29802984
}
29812985
}
2986+
if (funcName == "julia.gc_alloc_obj" ||
2987+
funcName == "jl_gc_alloc_typed" ||
2988+
funcName == "ijl_gc_alloc_typed") {
2989+
if (EnzymeShadowAllocRewrite)
2990+
EnzymeShadowAllocRewrite(wrap(anti));
2991+
}
29822992
if (Mode == DerivativeMode::ReverseModeCombined ||
29832993
(Mode == DerivativeMode::ReverseModePrimal &&
29842994
forwardsShadow) ||

0 commit comments

Comments
 (0)