File tree Expand file tree Collapse file tree 3 files changed +16
-5
lines changed
rustc_codegen_llvm/src/llvm Expand file tree Collapse file tree 3 files changed +16
-5
lines changed Original file line number Diff line number Diff line change @@ -127,7 +127,6 @@ pub(crate) mod Enzyme_AD {
127
127
) ;
128
128
pub ( crate ) fn EnzymeTypeTreeToString ( arg1 : CTypeTreeRef ) -> * const c_char ;
129
129
pub ( crate ) fn EnzymeTypeTreeToStringFree ( arg1 : * const c_char ) ;
130
- pub ( crate ) fn EnzymeGetMaxTypeDepth ( ) -> :: std:: os:: raw:: c_uint ;
131
130
}
132
131
133
132
unsafe extern "C" {
Original file line number Diff line number Diff line change @@ -1947,3 +1947,15 @@ extern "C" void LLVMRustSetNoSanitizeHWAddress(LLVMValueRef Global) {
1947
1947
MD.NoHWAddress = true ;
1948
1948
GV.setSanitizerMetadata (MD);
1949
1949
}
1950
+
1951
+ #ifdef ENZYME
1952
+ extern " C" {
1953
+ extern llvm::cl::opt<unsigned > EnzymeMaxTypeDepth;
1954
+ }
1955
+
1956
+ extern " C" size_t LLVMRustEnzymeGetMaxTypeDepth () { return EnzymeMaxTypeDepth; }
1957
+ #else
1958
+ extern " C" size_t LLVMRustEnzymeGetMaxTypeDepth () {
1959
+ return 6 ; // Default fallback depth
1960
+ }
1961
+ #endif
Original file line number Diff line number Diff line change @@ -2272,16 +2272,16 @@ fn typetree_from_ty_inner<'tcx>(
2272
2272
#[ cfg( llvm_enzyme) ]
2273
2273
{
2274
2274
unsafe extern "C" {
2275
- fn EnzymeGetMaxTypeDepth ( ) -> :: std :: os :: raw :: c_uint ;
2275
+ fn LLVMRustEnzymeGetMaxTypeDepth ( ) -> usize ;
2276
2276
}
2277
- let max_depth = unsafe { EnzymeGetMaxTypeDepth ( ) } as usize ;
2278
- if depth > max_depth {
2277
+ let max_depth = unsafe { LLVMRustEnzymeGetMaxTypeDepth ( ) } ;
2278
+ if depth >= max_depth {
2279
2279
return TypeTree :: new ( ) ;
2280
2280
}
2281
2281
}
2282
2282
2283
2283
#[ cfg( not( llvm_enzyme) ) ]
2284
- if depth > 6 {
2284
+ if depth >= 6 {
2285
2285
return TypeTree :: new ( ) ;
2286
2286
}
2287
2287
You can’t perform that action at this time.
0 commit comments