Skip to content

Commit 2de98a2

Browse files
committed
Implement fallback to optionally not link and build Enzyme
1 parent a06caa7 commit 2de98a2

File tree

3 files changed

+409
-216
lines changed

3 files changed

+409
-216
lines changed

compiler/rustc_codegen_llvm/src/back/write.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -760,19 +760,19 @@ pub(crate) unsafe fn enzyme_ad(
760760
let type_analysis: EnzymeTypeAnalysisRef =
761761
CreateTypeAnalysis(logic_ref, std::ptr::null_mut(), std::ptr::null_mut(), 0);
762762

763-
llvm::EnzymeSetCLBool(std::ptr::addr_of_mut!(llvm::EnzymeStrictAliasing), 0);
763+
llvm::set_strict_aliasing(false);
764764

765765
if std::env::var("ENZYME_PRINT_TA").is_ok() {
766-
llvm::EnzymeSetCLBool(std::ptr::addr_of_mut!(llvm::EnzymePrintType), 1);
766+
llvm::set_print_type(true);
767767
}
768768
if std::env::var("ENZYME_PRINT_AA").is_ok() {
769-
llvm::EnzymeSetCLBool(std::ptr::addr_of_mut!(llvm::EnzymePrintActivity), 1);
769+
llvm::set_print_activity(true);
770770
}
771771
if std::env::var("ENZYME_PRINT_PERF").is_ok() {
772-
llvm::EnzymeSetCLBool(std::ptr::addr_of_mut!(llvm::EnzymePrintPerf), 1);
772+
llvm::set_print_perf(true);
773773
}
774774
if std::env::var("ENZYME_PRINT").is_ok() {
775-
llvm::EnzymeSetCLBool(std::ptr::addr_of_mut!(llvm::EnzymePrint), 1);
775+
llvm::set_print(true);
776776
}
777777

778778
let mut res: &Value = match item.attrs.mode {
@@ -826,7 +826,7 @@ pub(crate) unsafe fn differentiate(
826826
let llcx = &module.module_llvm.llcx;
827827
let diag_handler = cgcx.create_dcx();
828828

829-
llvm::EnzymeSetCLBool(std::ptr::addr_of_mut!(llvm::EnzymeStrictAliasing), 0);
829+
llvm::set_strict_aliasing(false);
830830

831831
if std::env::var("ENZYME_PRINT_MOD").is_ok() {
832832
unsafe {
@@ -835,15 +835,15 @@ pub(crate) unsafe fn differentiate(
835835
}
836836
if std::env::var("ENZYME_TT_DEPTH").is_ok() {
837837
let depth = std::env::var("ENZYME_TT_DEPTH").unwrap();
838-
let depth = depth.parse::<i64>().unwrap();
838+
let depth = depth.parse::<u64>().unwrap();
839839
assert!(depth >= 1);
840-
llvm::EnzymeSetCLInteger(std::ptr::addr_of_mut!(llvm::EnzymeMaxTypeDepth), depth);
840+
llvm::set_max_int_offset(depth);
841841
}
842842
if std::env::var("ENZYME_TT_WIDTH").is_ok() {
843843
let width = std::env::var("ENZYME_TT_WIDTH").unwrap();
844-
let width = width.parse::<i64>().unwrap();
844+
let width = width.parse::<u64>().unwrap();
845845
assert!(width >= 1);
846-
llvm::EnzymeSetCLInteger(std::ptr::addr_of_mut!(llvm::MaxTypeOffset), width);
846+
llvm::set_max_type_offset(width);
847847
}
848848

849849
for item in diff_items {

0 commit comments

Comments
 (0)