@@ -673,12 +673,16 @@ pub(crate) unsafe fn enzyme_ad(
673
673
CreateTypeAnalysis ( logic_ref, std:: ptr:: null_mut ( ) , std:: ptr:: null_mut ( ) , 0 ) ;
674
674
675
675
llvm:: EnzymeSetCLBool ( std:: ptr:: addr_of_mut!( llvm:: EnzymeStrictAliasing ) , 0 ) ;
676
+
676
677
if std:: env:: var ( "ENZYME_PRINT_TA" ) . is_ok ( ) {
677
678
llvm:: EnzymeSetCLBool ( std:: ptr:: addr_of_mut!( llvm:: EnzymePrintType ) , 1 ) ;
678
679
}
679
680
if std:: env:: var ( "ENZYME_PRINT_AA" ) . is_ok ( ) {
680
681
llvm:: EnzymeSetCLBool ( std:: ptr:: addr_of_mut!( llvm:: EnzymePrintActivity ) , 1 ) ;
681
682
}
683
+ if std:: env:: var ( "ENZYME_PRINT_PERF" ) . is_ok ( ) {
684
+ llvm:: EnzymeSetCLBool ( std:: ptr:: addr_of_mut!( llvm:: EnzymePrintPerf ) , 1 ) ;
685
+ }
682
686
if std:: env:: var ( "ENZYME_PRINT" ) . is_ok ( ) {
683
687
llvm:: EnzymeSetCLBool ( std:: ptr:: addr_of_mut!( llvm:: EnzymePrint ) , 1 ) ;
684
688
}
@@ -733,22 +737,29 @@ pub(crate) unsafe fn differentiate(
733
737
_cgcx : & CodegenContext < LlvmCodegenBackend > ,
734
738
diff_items : Vec < AutoDiffItem > ,
735
739
_typetrees : FxHashMap < String , DiffTypeTree > ,
736
- config : & ModuleConfig ,
740
+ _config : & ModuleConfig ,
737
741
) -> Result < ( ) , FatalError > {
738
742
let llmod = module. module_llvm . llmod ( ) ;
739
743
let llcx = & module. module_llvm . llcx ;
740
744
741
- if config. enzyme_print_activity {
742
- llvm:: EnzymeSetCLBool ( std:: ptr:: addr_of_mut!( llvm:: EnzymePrintActivity ) , 1 ) ;
743
- llvm:: EnzymeSetCLBool ( std:: ptr:: addr_of_mut!( llvm:: EnzymePrintType ) , 1 ) ;
744
- llvm:: EnzymeSetCLBool ( std:: ptr:: addr_of_mut!( llvm:: EnzymePrint ) , 1 ) ;
745
- }
746
-
747
745
llvm:: EnzymeSetCLBool ( std:: ptr:: addr_of_mut!( llvm:: EnzymeStrictAliasing ) , 0 ) ;
748
746
749
747
if std:: env:: var ( "ENZYME_PRINT_MOD" ) . is_ok ( ) {
750
748
unsafe { LLVMDumpModule ( llmod) ; }
751
749
}
750
+ if std:: env:: var ( "ENZYME_TT_DEPTH" ) . is_ok ( ) {
751
+ let depth = std:: env:: var ( "ENZYME_TT_DEPTH" ) . unwrap ( ) ;
752
+ let depth = depth. parse :: < i64 > ( ) . unwrap ( ) ;
753
+ assert ! ( depth >= 1 ) ;
754
+ llvm:: EnzymeSetCLInteger ( std:: ptr:: addr_of_mut!( llvm:: EnzymeMaxTypeDepth ) , depth) ;
755
+ }
756
+ if std:: env:: var ( "ENZYME_TT_WIDTH" ) . is_ok ( ) {
757
+ let width = std:: env:: var ( "ENZYME_TT_WIDTH" ) . unwrap ( ) ;
758
+ let width = width. parse :: < i64 > ( ) . unwrap ( ) ;
759
+ assert ! ( width >= 1 ) ;
760
+ llvm:: EnzymeSetCLInteger ( std:: ptr:: addr_of_mut!( llvm:: MaxTypeOffset ) , width) ;
761
+ }
762
+
752
763
for item in diff_items {
753
764
let res = enzyme_ad ( llmod, llcx, item) ;
754
765
assert ! ( res. is_ok( ) ) ;
0 commit comments