Skip to content

Commit ceef97a

Browse files
committed
cleanup and fix Non-enzyme build
1 parent 5e8ac69 commit ceef97a

File tree

4 files changed

+10
-46
lines changed

4 files changed

+10
-46
lines changed

compiler/rustc_codegen_llvm/src/back/lto.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ use rustc_middle::bug;
1919
use rustc_middle::dep_graph::WorkProduct;
2020
use rustc_middle::middle::exported_symbols::{SymbolExportInfo, SymbolExportLevel};
2121
use rustc_session::config::{self, CrateType, Lto};
22-
use tracing::{debug, info, trace};
22+
use tracing::{debug, info};
2323

2424
use crate::back::write::{
2525
self, CodegenDiagnosticsStage, DiagnosticHandlers, bitcode_section_name, save_temp_bitcode,
@@ -606,7 +606,7 @@ pub(crate) fn run_pass_manager(
606606

607607
// If this rustc version was build with enzyme/autodiff enabled, and if users applied the
608608
// `#[autodiff]` macro at least once, then we will later call llvm_optimize a second time.
609-
trace!("running llvm pm opt pipeline");
609+
debug!("running llvm pm opt pipeline");
610610
unsafe {
611611
write::llvm_optimize(
612612
cgcx,
@@ -632,7 +632,7 @@ pub(crate) fn run_pass_manager(
632632
)?;
633633
}
634634
}
635-
trace!("lto done");
635+
debug!("lto done");
636636
Ok(())
637637
}
638638

compiler/rustc_codegen_llvm/src/builder/autodiff.rs

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,9 @@ use rustc_ast::expand::autodiff_attrs::{AutoDiffAttrs, AutoDiffItem, DiffActivit
44
use rustc_codegen_ssa::ModuleCodegen;
55
use rustc_codegen_ssa::back::write::ModuleConfig;
66
use rustc_errors::FatalError;
7-
use rustc_session::config::Lto;
87
use tracing::{debug, trace};
98

10-
use crate::back::write::{llvm_err, llvm_optimize};
9+
use crate::back::write::llvm_err;
1110
use crate::builder::SBuilder;
1211
use crate::context::SimpleCx;
1312
use crate::declare::declare_simple_fn;
@@ -153,7 +152,7 @@ fn generate_enzyme_call<'ll>(
153152
_ => {}
154153
}
155154

156-
trace!("matching autodiff arguments");
155+
debug!("matching autodiff arguments");
157156
// We now handle the issue that Rust level arguments not always match the llvm-ir level
158157
// arguments. A slice, `&[f32]`, for example, is represented as a pointer and a length on
159158
// llvm-ir level. The number of activities matches the number of Rust level arguments, so we
@@ -320,29 +319,6 @@ pub(crate) fn differentiate<'ll>(
320319

321320
// FIXME(ZuseZ4): support SanitizeHWAddress and prevent illegal/unsupported opts
322321

323-
//if let Some(opt_level) = config.opt_level {
324-
// let opt_stage = match cgcx.lto {
325-
// Lto::Fat => llvm::OptStage::PreLinkFatLTO,
326-
// Lto::Thin | Lto::ThinLocal => llvm::OptStage::PreLinkThinLTO,
327-
// _ if cgcx.opts.cg.linker_plugin_lto.enabled() => llvm::OptStage::PreLinkThinLTO,
328-
// _ => llvm::OptStage::PreLinkNoLTO,
329-
// };
330-
// // This is our second opt call, so now we run all opts,
331-
// // to make sure we get the best performance.
332-
// let skip_size_increasing_opts = false;
333-
// trace!("running Module Optimization after differentiation");
334-
// unsafe {
335-
// llvm_optimize(
336-
// cgcx,
337-
// diag_handler.handle(),
338-
// module,
339-
// config,
340-
// opt_level,
341-
// opt_stage,
342-
// skip_size_increasing_opts,
343-
// )?
344-
// };
345-
//}
346322
trace!("done with differentiate()");
347323

348324
Ok(())

compiler/rustc_llvm/build.rs

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -193,25 +193,10 @@ fn main() {
193193
cfg.define(&flag, None);
194194
}
195195

196-
// This doesn't work
197-
if tracked_env_var_os("llvm_enzyme").is_some() {
198-
// If we're just running `check`, there's no need for LLVM to be built.
199-
loop {
200-
println!("ENZYME!");
201-
}
202-
}
203-
204-
// This doesn't work either
205-
if cfg!(llvm_enzyme) {
206-
// Enzyme is a fork of LLVM, so we need to use a different build script.
207-
loop {
208-
println!("ENZYME!");
209-
}
196+
if tracked_env_var_os("LLVM_ENZYME").is_some() {
197+
cfg.define("ENZYME", None);
210198
}
211199

212-
// FIXME: Only enable it, if the user build rustc with autodiff support
213-
cfg.define("ENZYME", None);
214-
215200
if tracked_env_var_os("LLVM_RUSTLLVM").is_some() {
216201
cfg.define("LLVM_RUSTLLVM", None);
217202
}

src/bootstrap/src/core/build_steps/compile.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1234,6 +1234,9 @@ fn rustc_llvm_env(builder: &Builder<'_>, cargo: &mut Cargo, target: TargetSelect
12341234
if builder.is_rust_llvm(target) {
12351235
cargo.env("LLVM_RUSTLLVM", "1");
12361236
}
1237+
if builder.config.llvm_enzyme {
1238+
cargo.env("LLVM_ENZYME", "1");
1239+
}
12371240
let llvm::LlvmResult { llvm_config, .. } = builder.ensure(llvm::Llvm { target });
12381241
cargo.env("LLVM_CONFIG", &llvm_config);
12391242

0 commit comments

Comments
 (0)