diff options
| author | Matthias Krüger <476013+matthiaskrgr@users.noreply.github.com> | 2025-07-19 08:55:34 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-07-19 08:55:34 +0200 |
| commit | 44ee51de0b053a3cd56db91982e95eb0c8f3132e (patch) | |
| tree | 6e7f6950701d105f5dd2636ce79eaa45059c0b07 /compiler/rustc_llvm/llvm-wrapper | |
| parent | fff53f1dbbceffb8f017eb555b04ee056a246097 (diff) | |
| parent | 80224c3e888bf14ddca14700e79363b25eda93ce (diff) | |
| download | rust-44ee51de0b053a3cd56db91982e95eb0c8f3132e.tar.gz rust-44ee51de0b053a3cd56db91982e95eb0c8f3132e.zip | |
Rollup merge of #142444 - KMJ-007:autodiff-codegen-test, r=ZuseZ4
adding run-make test to autodiff r? `@ZuseZ4`
Diffstat (limited to 'compiler/rustc_llvm/llvm-wrapper')
| -rw-r--r-- | compiler/rustc_llvm/llvm-wrapper/PassWrapper.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/compiler/rustc_llvm/llvm-wrapper/PassWrapper.cpp b/compiler/rustc_llvm/llvm-wrapper/PassWrapper.cpp index cc33764e485..a69057145f1 100644 --- a/compiler/rustc_llvm/llvm-wrapper/PassWrapper.cpp +++ b/compiler/rustc_llvm/llvm-wrapper/PassWrapper.cpp @@ -700,6 +700,10 @@ struct LLVMRustSanitizerOptions { #ifdef ENZYME extern "C" void registerEnzymeAndPassPipeline(llvm::PassBuilder &PB, /* augmentPassBuilder */ bool); + +extern "C" { +extern llvm::cl::opt<std::string> EnzymeFunctionToAnalyze; +} #endif extern "C" LLVMRustResult LLVMRustOptimize( @@ -1069,6 +1073,15 @@ extern "C" LLVMRustResult LLVMRustOptimize( return LLVMRustResult::Failure; } + // Check if PrintTAFn was used and add type analysis pass if needed + if (!EnzymeFunctionToAnalyze.empty()) { + if (auto Err = PB.parsePassPipeline(MPM, "print-type-analysis")) { + std::string ErrMsg = toString(std::move(Err)); + LLVMRustSetLastError(ErrMsg.c_str()); + return LLVMRustResult::Failure; + } + } + if (PrintAfterEnzyme) { // Handle the Rust flag `-Zautodiff=PrintModAfter`. std::string Banner = "Module after EnzymeNewPM"; |
