@@ -17,17 +17,17 @@ use crate::typetree::to_enzyme_typetree;
1717use crate :: LlvmCodegenBackend ;
1818use crate :: ModuleLlvm ;
1919use crate :: DiffTypeTree ;
20- use llvm:: {
20+ use llvm:: { LLVMRustGetEnumAttributeAtIndex , LLVMRustAddEnumAttributeAtIndex , LLVMRustRemoveEnumAttributeAtIndex ,
2121 enzyme_rust_forward_diff, enzyme_rust_reverse_diff, BasicBlock , CreateEnzymeLogic ,
2222 CreateTypeAnalysis , EnzymeLogicRef , EnzymeTypeAnalysisRef , LLVMAddFunction ,
2323 LLVMAppendBasicBlockInContext , LLVMBuildCall2 , LLVMBuildExtractValue , LLVMBuildRet ,
2424 LLVMCountParams , LLVMCountStructElementTypes , LLVMCreateBuilderInContext , LLVMDeleteFunction ,
2525 LLVMDisposeBuilder , LLVMGetBasicBlockTerminator , LLVMGetElementType , LLVMGetModuleContext ,
2626 LLVMGetParams , LLVMGetReturnType , LLVMPositionBuilderAtEnd , LLVMSetValueName2 , LLVMTypeOf ,
2727 LLVMVoidTypeInContext , LLVMGlobalGetValueType , LLVMGetStringAttributeAtIndex ,
28- LLVMIsStringAttribute , LLVMRemoveStringAttributeAtIndex , LLVMRemoveEnumAttributeAtIndex , AttributeKind ,
29- LLVMGetFirstFunction , LLVMGetNextFunction , LLVMGetEnumAttributeAtIndex , LLVMIsEnumAttribute ,
30- LLVMCreateStringAttribute , LLVMRustAddFunctionAttributes , LLVMCreateEnumAttribute , LLVMDumpModule ,
28+ LLVMIsStringAttribute , LLVMRemoveStringAttributeAtIndex , AttributeKind ,
29+ LLVMGetFirstFunction , LLVMGetNextFunction , LLVMIsEnumAttribute ,
30+ LLVMCreateStringAttribute , LLVMRustAddFunctionAttributes , LLVMDumpModule ,
3131 LLVMRustLLVMHasZlibCompressionForDebugSymbols , LLVMRustLLVMHasZstdCompressionForDebugSymbols ,
3232} ;
3333use rustc_codegen_ssa:: back:: link:: ensure_removed;
@@ -831,7 +831,7 @@ pub(crate) unsafe fn differentiate(
831831 if LLVMIsStringAttribute ( attr) {
832832 LLVMRemoveStringAttributeAtIndex ( lf, c_uint:: MAX , myhwattr. as_ptr ( ) as * const c_char , myhwattr. as_bytes ( ) . len ( ) as c_uint ) ;
833833 } else {
834- LLVMRemoveEnumAttributeAtIndex ( lf, c_uint:: MAX , AttributeKind :: SanitizeHWAddress ) ;
834+ LLVMRustRemoveEnumAttributeAtIndex ( lf, c_uint:: MAX , AttributeKind :: SanitizeHWAddress ) ;
835835 }
836836
837837
@@ -876,13 +876,12 @@ pub(crate) unsafe fn optimize(
876876 f = LLVMGetNextFunction ( lf) ;
877877 let myhwattr = "enzyme_hw" ;
878878 let myhwv = "" ;
879- let prevattr = LLVMGetEnumAttributeAtIndex ( lf, c_uint:: MAX , AttributeKind :: SanitizeHWAddress ) ;
879+ let prevattr = LLVMRustGetEnumAttributeAtIndex ( lf, c_uint:: MAX , AttributeKind :: SanitizeHWAddress ) ;
880880 if LLVMIsEnumAttribute ( prevattr) {
881881 let attr = LLVMCreateStringAttribute ( llcx, myhwattr. as_ptr ( ) as * const c_char , myhwattr. as_bytes ( ) . len ( ) as c_uint , myhwv. as_ptr ( ) as * const c_char , myhwv. as_bytes ( ) . len ( ) as c_uint ) ;
882882 LLVMRustAddFunctionAttributes ( lf, c_uint:: MAX , & attr, 1 ) ;
883883 } else {
884- let attr = LLVMCreateEnumAttribute ( llcx, AttributeKind :: SanitizeHWAddress , 0 ) ;
885- LLVMRustAddFunctionAttributes ( lf, c_uint:: MAX , & attr, 1 ) ;
884+ LLVMRustAddEnumAttributeAtIndex ( llcx, lf, c_uint:: MAX , AttributeKind :: SanitizeHWAddress ) ;
886885 }
887886
888887 } else {
0 commit comments