From 19ad3dd913c285778bc7e9746c063975fe42607c Mon Sep 17 00:00:00 2001 From: William Moses Date: Sat, 29 Jan 2022 02:11:38 -0500 Subject: [PATCH] Custom error for unknown shadow (#456) --- enzyme/Enzyme/GradientUtils.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/enzyme/Enzyme/GradientUtils.cpp b/enzyme/Enzyme/GradientUtils.cpp index 69dd5496809ca..35dc931429a58 100644 --- a/enzyme/Enzyme/GradientUtils.cpp +++ b/enzyme/Enzyme/GradientUtils.cpp @@ -94,6 +94,7 @@ llvm::cl::opt EnzymeFreeInternalAllocations( "enzyme-free-internal-allocations", cl::init(true), cl::Hidden, cl::desc("Always free internal allocations (disable if allocation needs " "access outside)")); +extern void (*CustomErrorHandler)(const char *); } Value *GradientUtils::unwrapM(Value *const val, IRBuilder<> &BuilderM, @@ -3417,6 +3418,13 @@ end:; assert(BuilderM.GetInsertBlock()->getParent()); assert(oval); + if (CustomErrorHandler && isa(oval)) { + std::string str; + raw_string_ostream ss(str); + ss << "cannot find shadow for " << *oval; + CustomErrorHandler(str.c_str()); + } + llvm::errs() << *newFunc->getParent() << "\n"; llvm::errs() << "fn:" << *newFunc << "\noval=" << *oval << " icv=" << isConstantValue(oval) << "\n";