From 686a7bbb245096ce47ae11a79db05e25658fdfa8 Mon Sep 17 00:00:00 2001 From: William Moses Date: Mon, 18 Dec 2023 11:06:36 -0600 Subject: [PATCH] Better error messages for invalid erasure (#1592) --- enzyme/Enzyme/CacheUtility.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/enzyme/Enzyme/CacheUtility.cpp b/enzyme/Enzyme/CacheUtility.cpp index a2e6df84e9b9..fd34be6c1146 100644 --- a/enzyme/Enzyme/CacheUtility.cpp +++ b/enzyme/Enzyme/CacheUtility.cpp @@ -69,19 +69,19 @@ void CacheUtility::erase(Instruction *I) { SE.eraseValueFromMap(I); if (!I->use_empty()) { + std::string str; + raw_string_ostream ss(str); + ss << "Erased value with a use:\n"; + ss << *newFunc->getParent() << "\n"; + ss << *newFunc << "\n"; + ss << *I << "\n"; if (CustomErrorHandler) { - std::string str; - raw_string_ostream ss(str); - ss << "Erased value with a use:\n"; - ss << *newFunc->getParent() << "\n"; - ss << *newFunc << "\n"; - ss << *I << "\n"; CustomErrorHandler(str.c_str(), wrap(I), ErrorType::InternalError, nullptr, nullptr, nullptr); + } else { + EmitFailure("GetIndexError", I->getDebugLoc(), I, ss.str()); } - llvm::errs() << *newFunc->getParent() << "\n"; - llvm::errs() << *newFunc << "\n"; - llvm::errs() << *I << "\n"; + I->replaceAllUsesWith(UndefValue::get(I->getType())); } assert(I->use_empty()); I->eraseFromParent();