get tests to work without -Z/-C flags

This commit is contained in:
Manuel Drehwald 2025-02-07 01:58:48 -05:00
parent 70b9ba3d6e
commit 8f87e8095e
2 changed files with 13 additions and 3 deletions

View file

@ -688,6 +688,8 @@ struct LLVMRustSanitizerOptions {
bool SanitizeKernelAddressRecover;
};
extern "C" void registerEnzyme(llvm::PassBuilder &PB);
extern "C" LLVMRustResult LLVMRustOptimize(
LLVMModuleRef ModuleRef, LLVMTargetMachineRef TMRef,
LLVMRustPassBuilderOptLevel OptLevelRust, LLVMRustOptStage OptStage,
@ -1010,6 +1012,14 @@ extern "C" LLVMRustResult LLVMRustOptimize(
MPM.addPass(NameAnonGlobalPass());
}
// now load "-enzyme" pass:
registerEnzyme(PB);
if (auto Err = PB.parsePassPipeline(MPM, "enzyme")) {
std::string ErrMsg = toString(std::move(Err));
LLVMRustSetLastError(ErrMsg.c_str());
return LLVMRustResult::Failure;
}
// Upgrade all calls to old intrinsics first.
for (Module::iterator I = TheModule->begin(), E = TheModule->end(); I != E;)
UpgradeCallsToIntrinsic(&*I++); // must be post-increment, as we remove