diff --git a/enzyme/Enzyme/Utils.cpp b/enzyme/Enzyme/Utils.cpp index 90e0b30a4ff9..3fb4534b6396 100644 --- a/enzyme/Enzyme/Utils.cpp +++ b/enzyme/Enzyme/Utils.cpp @@ -640,7 +640,7 @@ void callMemcpyStridedBlas(llvm::IRBuilder<> &B, llvm::Module &M, BlasInfo blas, llvm::ArrayRef args, llvm::Type *copy_retty, llvm::ArrayRef bundles) { - std::string copy_name = blas.prefix + blas.floatType + "copy" + blas.suffix; + auto copy_name = Twine(blas.prefix) + blas.floatType + "copy" + blas.suffix; SmallVector tys; for (auto arg : args) @@ -655,7 +655,7 @@ void callMemcpyStridedBlas(llvm::IRBuilder<> &B, llvm::Module &M, BlasInfo blas, void callMemcpyStridedLapack(llvm::IRBuilder<> &B, llvm::Module &M, BlasInfo blas, llvm::ArrayRef args, llvm::ArrayRef bundles) { - std::string copy_name = blas.prefix + blas.floatType + "lacpy" + blas.suffix; + auto copy_name = Twine(blas.prefix) + blas.floatType + "lacpy" + blas.suffix; SmallVector tys; for (auto arg : args) @@ -674,7 +674,7 @@ void callSPMVDiagUpdate(IRBuilder<> &B, Module &M, BlasInfo blas, ArrayRef bundles, bool byRef, bool julia_decl) { // add spmv diag update call if not already present - std::string fnc_name = "__enzyme_spmv_diag" + blas.floatType + blas.suffix; + auto fnc_name = Twine("__enzyme_spmv_diag") + blas.floatType + blas.suffix; // spmvDiagHelper(uplo, n, alpha, x, incx, ya, incy, APa) auto FDiagUpdateT = FunctionType::get( diff --git a/enzyme/test/Integration/blasinfra.h b/enzyme/test/Integration/blasinfra.h index fd23490acd3f..6d3840fa8d5d 100644 --- a/enzyme/test/Integration/blasinfra.h +++ b/enzyme/test/Integration/blasinfra.h @@ -1022,6 +1022,7 @@ BlasInfo pointer_to_index(void *v, BlasInfo inputs[6]) { for (int i = 3; i < 6; i++) if (inputs[i].ptr == v) return inputs[i]; + printty(v); assert(0 && " illegal pointer to invert"); } @@ -1152,8 +1153,6 @@ void checkMemory(BlasCall rcall, BlasInfo inputs[6], std::string test, auto alpha = rcall.farg1; - auto cualpha = pointer_to_index(rcall.pin_arg2, inputs); - auto N = rcall.iarg1; auto incX = rcall.iarg4; auto incY = rcall.iarg5; @@ -1162,6 +1161,7 @@ void checkMemory(BlasCall rcall, BlasInfo inputs[6], std::string test, checkVector(Y, "Y", /*len=*/N, /*inc=*/incY, test, rcall, trace); if (rcall.abi == ABIType::CUBLAS) { + auto cualpha = pointer_to_index(rcall.pin_arg2, inputs); checkVector(cualpha, "alpha", /*len=*/1, /*inc=*/1, test, rcall, trace); } return; diff --git a/enzyme/tools/enzyme-tblgen/blasDiffUseUpdater.h b/enzyme/tools/enzyme-tblgen/blasDiffUseUpdater.h index 2bf78bc49ac2..2e28e8c76c6d 100644 --- a/enzyme/tools/enzyme-tblgen/blasDiffUseUpdater.h +++ b/enzyme/tools/enzyme-tblgen/blasDiffUseUpdater.h @@ -69,7 +69,6 @@ void emit_BLASDiffUse(TGPattern &pattern, llvm::raw_ostream &os) { for (size_t argPos = (lv23 ? 1 : 0); argPos < typeMap.size(); argPos++) { auto users = argUsers.lookup(argPos); auto name = nameVec[argPos]; - size_t i = (lv23 ? argPos - 1 : argPos); os << " if (val == arg_" << name << " && need_" << name << " && !cache_" << name << ")\n" << " return true;\n";